| 1 |
^ Addings |
| 2 |
a) We can combine two the same nodes via Math:modulo |
| 3 |
** Lesson 4 |
| 4 |
* Node Bitmap, Result, Bounding Box |
| 5 |
^ Node Bitmap |
| 6 |
a) New Node > Xpresso > General > Bitmap |
| 7 |
b) Gives information about pixel image |
| 8 |
c) Input Ports |
| 9 |
- Filename: shows a path to an image |
| 10 |
- X and Y: coordinates |
| 11 |
d) Output Ports |
| 12 |
- Color: gives information about pixel of the image in vector |
| 13 |
' for showing result we have to use a node Result, here in vector |
| 14 |
- Height: gives information about height of the image |
| 15 |
' A node Result in integer |
| 16 |
- Width: the same but about width in integer |
| 17 |
^ Node Result |
| 18 |
a) New Node > XPresso > General > Result |
| 19 |
b) A simple node for demonstration results of output ports |
| 20 |
c) Has only input port |
| 21 |
d) Properties: only Data Type |
| 22 |
^ Node Bounding Box |
| 23 |
a) New Node > XPresso > General > Bounding Box |
| 24 |
b) For determining coordinates of a dimensional object which consists of around a polygonal object |
| 25 |
c) Input port |
| 26 |
- only Object |
| 27 |
d) Output port |
| 28 |
- Box minimum |
| 29 |
- Box maximum |
| 30 |
- Box size |
| 31 |
- Moreover, Box points from 1 to 8 |
| 32 |
e) Added 8 points we can connect to nulls nodes (input position) |
| 33 |
- via tracer + Extrude |
| 34 |
f) Node Properties |
| 35 |
- Matrix Mode: default Global |
| 36 |
' Local: for changing position only polygonal object if it has a parent |
| 37 |
- Use deformer points: (default tick) |
| 38 |
' For including deformation via deformers |
| 39 |
** Lesson 5 |
| 40 |
* Object Node; Relatives Links |
| 41 |
^ Object Node |
| 42 |
a) It's the most important node in C4d where we need to work |
| 43 |
b) Object Node -- is a node which represents itself any inserted object from Attribute Manager, Material or Tag |
| 44 |
- The most interested is from Attribute Manager, because of accessibility |
| 45 |
^ Object Node (part 2) > Reference Node |
| 46 |
a) Absolute Reference (default) |
| 47 |
- it means that a node strictly fixed to the defined object in manager of objects |
| 48 |
b) Relative Reference |
| 49 |
- it means that a node is assigned to that object where the tag Xpresso is |
| 50 |
- Here's we have an interesting parameter 'Path': we can point out the way via big 4 LETTERS |
| 51 |
' U ~ up in hierarchy |
| 52 |
' D ~ down hierarchy |
| 53 |
' N ~ next of the same level |
| 54 |
' P ~ previous of the same level |
| 55 |
c) Use Start Position |
| 56 |
- it means that count goes from the object where the tag Xpresso is |
| 57 |
- We can change representing of an object via Start Position |
| 58 |
' This Object (default) |
| 59 |
' Up in Hierarchy: the node will be assigned to the parent object of the Tag XPresso |
| 60 |
' Down in Hierarchy: the node will be assigned to the daughter object of the Tag XPresso |
| 61 |
' Successor on this Level: the node will be assigned to the next object on the same Level |
| 62 |
' Predecessor on this Level: the node will be assigned to the previous object on the same Level |
| 63 |
' First on this Level: the node will be assigned to the first object on the same Level |
| 64 |
' Last on this Level: the node will be assigned to the last object on the same Level |
| 65 |
' First in Project: the node will be assigned to the highest level of the first object in Project |
| 66 |
' Last in Project: the node will be assigned to the highest level of the last object in Project |
| 67 |
^ Finally, we should copy all necessities into main User Data Interface |
| 68 |
a) Unfortunately, we can't save tags in our version, but we can save XGroup |
| 69 |
** Lesson 6 |
| 70 |
* Color Temperature; Constant; Result; Freeze; Flip Flop, Link List, Memory, Mono Flop |
| 71 |
^ Color Temperature |
| 72 |
a) Demonstrates color according to temperature |
| 73 |
b) It's interesting with a source of light |
| 74 |
- Just connecting Color Temperature (output port: color) with a Light (input port: color) |
| 75 |
' If we tick "use temperature", it doesn't work |
| 76 |
^ Constant |
| 77 |
a) Constant is for setting a determined definition of any data type. |
| 78 |
- Easy node |
| 79 |
^ FlipFlop |
| 80 |
a) FlipFlop switch on/off definitions |
| 81 |
b) FlipFlop works with Boole data type |
| 82 |
c) Input ports: on; switch; off |
| 83 |
- So, we always have to tick On > Value and Off > Value |
| 84 |
- Switch will decide when we need true or false via Value |
| 85 |
- It's very well with three nodes Constant |
| 86 |
^ Freeze |
| 87 |
a) Node 'Freeze' for fixing that definition which was before a certain moment |
| 88 |
- Example, Time --- value Freeze --- Result |
| 89 |
' in Freeze > Switch if we tick, we freeze a current time |
| 90 |
- Another example, (Time --- value Freeze; Constant > Boole --- switch Freeze) --- Result |
| 91 |
' in Constant, when we tick Value, it freezes, otherwise not |
| 92 |
b) Freeze is very handy node which allows to fix a certain result in a certain moment of time (for animation) |
| 93 |
^ Link List |
| 94 |
a) Link List allows to work with a list of objects |
| 95 |
b) Example, we want to assign color to other lights |
| 96 |
- Insert all lights into Link List of Attribute |
| 97 |
- Link List output link --- input object Light |
| 98 |
- Constant output Color (change necessary color in attribute) --- input color Light |
| 99 |
- Link List Attribute > index. If we increase a number from 0, other lights become with the same color as in Constant |
| 100 |
c) structure of Link List |
| 101 |
- Input port |
| 102 |
' Index |
| 103 |
- Output port |
| 104 |
' Link |
| 105 |
' Count (can be added) |
| 106 |
d) We can quickly choose objects in Clone just connecting Link List with Properties Object Properties:: Object |
| 107 |
^ Memory |
| 108 |
a) Memory allows to save determined definitions of input nodes from others which changed during time |
| 109 |
b) Structure |
| 110 |
- Input port |
| 111 |
' History Level |
| 112 |
' Input |
| 113 |
- Output port |
| 114 |
' Output |
| 115 |
c) Example |
| 116 |
- Light output position --- input input Memory; Memory output output --- Result |
| 117 |
- Light output position --- Result |
| 118 |
- When we change history depth and history level in attribute, definitions through Memory will be with delayed |
| 119 |
- Two different definitions we can compare via a tag 'Compare' |
| 120 |
d) Via 'Memory' we can catch fact of changing of some parameter |
| 121 |
^ Memory (Part 2) |
| 122 |
a) Via a node 'Memory' we can make a pick whip, but a daughter will be free (like in AE) |
| 123 |
b) Add a node 'Memory' between them |
| 124 |
c) First, we need to catch a moment of movement |
| 125 |
- We do it via tags 'Compare' + 'Result' |
| 126 |
- 1 subject output positionX (example) --- input input Memory; Memory output output --- input positionX 2 subject |
| 127 |
- 1 subject output positionX --- input input1 Compare |Function !=|; Compare output output --- input Result |Boole| False (when moving, it's changed into true) |
| 128 |
- Memory output output --- input input2 Compare |Function !=| |
| 129 |
d) Then, we need to switch on connection only at that moment when we're moving the first one |
| 130 |
- Via a node 'Spy' |
| 131 |
- Remove connection Memory output output --- input positionX 2 subject |
| 132 |
- Create directly connection 1 subject output output --- input Spy; Spy output --- input 2 subject: we'll see numbers on Spy |
| 133 |
- Spy (take out gear) |
| 134 |
- Compare --- input Enabled Gear Spy: instead of Result |
| 135 |
^ MonoFlop |
| 136 |
a) MonoFlop can catch determined switching of boole definition via |
| 137 |
input Trigger |
| 138 |
** |
| 139 |
* Time |
| 140 |
^ Time |
| 141 |
a) Node 'Time' shows a current definition of time and other parameters which connected with time |
| 142 |
b) If we connect Time with Result and switch on playback, we can see other definitions in result (30 frames = 1) |
| 143 |
^ Spy |
| 144 |
a) Node 'Spy' is an adapter which shows moving definitions at the time |
| 145 |
b) a Node 'Spy' has a parameter 'enabled' (default tick) |
| 146 |
- if we switch it off, a dependent object doesn't follow the main one |
| 147 |
** Lesson 8 |
| 148 |
* Noise, Random, Point, Polygon, Ray Collision, Reference, Spline |
| 149 |
^ Noise |
| 150 |
a) a node 'Noise' generates a set of random numbers |
| 151 |
b) Noise is similar to another node 'Random' |
| 152 |
c) Random numbers are attached to determined feature of noise |
| 153 |
d) Structure |
| 154 |
- Input port |
| 155 |
' Amplitude |
| 156 |
' Frequency |
| 157 |
' Octave |
| 158 |
' Scale |
| 159 |
' Seed |
| 160 |
' Time |
| 161 |
' Vector |
| 162 |
' X Coordinate |
| 163 |
' Y Coordinate |
| 164 |
' Z Coordinate |
| 165 |
- Output port |
| 166 |
' Noise |
| 167 |
e) Noise > Properties |
| 168 |
- Noise Type |
| 169 |
' Noise |
| 170 |
' Turbulence |
| 171 |
' Wavy Turbulence |
| 172 |
' Fractal Brown Movement |
| 173 |
- Positive Only (default not tick) |
| 174 |
- Parameter |
| 175 |
' Octaves |
| 176 |
' Scale: it's for scale of noise |
| 177 |
' Frequency: the higher definitions the quickly will be changed ones |
| 178 |
' Amplitude: shows definitions between minimum negative and maximum positive (example, 5: -5 - +5) |
| 179 |
' Seed: for avoiding the same definitions |
| 180 |
f) Noise is more flexible than Random |
| 181 |
g) Settings of Noise is similar to mograph > effector 'Random' |
| 182 |
^ Random |
| 183 |
a) a node 'Random' generates a simple random number |
| 184 |
b) Gives different types of data |
| 185 |
c) Structure |
| 186 |
- Input Port |
| 187 |
' Random |
| 188 |
- Output port |
| 189 |
' Boole |
| 190 |
' Integer |
| 191 |
' Real |
| 192 |
' Normal |
| 193 |
' Vector |
| 194 |
d) Just connect sth from output port into a node 'Result', we'll get a random definition |
| 195 |
e) Random > Properties |
| 196 |
- Time -- gives a random definition according to a determined frame |
| 197 |
- Free |
| 198 |
- Positive Only (default not tick): understandable |
| 199 |
- Random Seed (can be changed) |
| 200 |
' For avoiding the same random numbers |
| 201 |
^ Point |
| 202 |
a) Shows information of a determined point of a polygonal object or a spline |
| 203 |
b) Structure |
| 204 |
- Input port |
| 205 |
' Object |
| 206 |
' Point Index |
| 207 |
' Point Position |
| 208 |
- Output port |
| 209 |
' Point Count: shows common number of points |
| 210 |
' Point Position: shows coordinates of a point (we can find information from a necessary point via 'Point Index') |
| 211 |
| Numbers of point index are shown in Structure Manager (Shift + F9) |
| 212 |
' Point Normal |
| 213 |
c) Via Point Position we can attach other objects to any point through Position, also vice versa |
| 214 |
- we can make some pick whip to points and other |
| 215 |
^ Polygon |
| 216 |
a) a node 'Polygon' is similar to a node 'Point'. Here's we work with polygons |
| 217 |
b) Structure |
| 218 |
- Input port |
| 219 |
' Object |
| 220 |
' Polygon Index |
| 221 |
- Output port |
| 222 |
' Polygon Count: allows to learn a number of polygons |
| 223 |
' Polygon Center: to learn a coordinate of center |
| 224 |
' Index Point 1: for getting information via connecting with a node "Point" |
| 225 |
' Index Point 2: the same |
| 226 |
' Index Point 3: the same |
| 227 |
' Index Point 4: the same |
| 228 |
' Polygon Normal |
| 229 |
^ Ray Collision |
| 230 |
a) With this node we can find a place of intersection an object and ray which prolongs from the first object to the second one. |
| 231 |
b) Works only with polygonal objects |
| 232 |
c) Structure |
| 233 |
- Input port |
| 234 |
' Object: it's an object which will be intersected. Port must be with polygonal object port Object |
| 235 |
' Ray Point 1: with the port, as usual position, of the first object port Position |
| 236 |
' Ray Point 2: connect the port with the second object port Position |
| 237 |
- Output port |
| 238 |
' Collision: it's connected with a node 'Result' Boole for showing of intersecting or not |
| 239 |
' Distance: we can learn distance between start and end. It work if we switch off Ray Collision > Properties > Test Only |
| 240 |
' Face Index: shows an index of polygonal object |
| 241 |
' Face Normal: shows direction of coordinates in Normal |
| 242 |
' Hit Position: useful, shows a point of intersection on polygonal object |
| 243 |
' Is Backface |
| 244 |
' Phong Normal |
| 245 |
d) Ray Collision > Properties |
| 246 |
- Test only (default tick): for switching on addings ouput ports such as 'Distance' we have to switch it off |
| 247 |
- Global Coordinates (default tick) |
| 248 |
^ Reference |
| 249 |
a) a node 'Reference' helps to address to other objects due to a certain link; very convenient |
| 250 |
b) Structure |
| 251 |
- Input port |
| 252 |
' Instance |
| 253 |
' Path |
| 254 |
- Output port |
| 255 |
' Instance |
| 256 |
c) It's similar to Relative Reference > Path (NPDU) |
| 257 |
^ Spline |
| 258 |
a) Spline node is similar to a tag 'Align to spline' |
| 259 |
b) Structure |
| 260 |
- Input port |
| 261 |
' Object |
| 262 |
' Offset |
| 263 |
' Segment: we can choose segments if use a spline mask with several splines in it |
| 264 |
- Output port |
| 265 |
' Position |
| 266 |
' Tangent |
| 267 |
' Closed |
| 268 |
' Length |
| 269 |
' Segments |
| 270 |
' Tangent |
| 271 |
** |
| 272 |
* Lesson 8 |
| 273 |
^ Remark |
| 274 |
a) The simples node for making comments |
| 275 |
^ Result |
| 276 |
a) understandable |
| 277 |
^ Spy |
| 278 |
a) It's similar to 'Result', but it shows definition besides input and output |
| 279 |
b) Don't use too often, because 'Spy' takes energy from processor |
| 280 |
c) Developers recommend to remove 'Spy' and 'Result' after finishing |
| 281 |
^ Time |
| 282 |
a) A simple node 'Time' shows time in seconds and settings of time which connected with a project |
| 283 |
b) Structure |
| 284 |
- Input Port |
| 285 |
' Nothing |
| 286 |
- Output Port |
| 287 |
' Delta: shows the time of 1 frame (1/fps) |
| 288 |
' End: shows the end of time project |
| 289 |
' Frame: shows the current frame where the playback is |
| 290 |
' Frames per second: shows the frequency frames per second |
| 291 |
' Loop end: |
| 292 |
' Loop start |
| 293 |
' Previous |
| 294 |
' Real |
| 295 |
' Start: shows the start of time project |
| 296 |
' Time |
| 297 |
^ a Group 'Adapter' |
| 298 |
a) Contains 5 nodes |
| 299 |
- Matrix2Vectors: allows to divide matrix into vectors |
| 300 |
- Vectors2Matrix: allows to collect vectors into martix |
| 301 |
- Universal: for converting from one type of data into another. |
| 302 |
- Vector2Reals |
| 303 |
- Reals2Vector |
| 304 |
b) One use nodes for getting information from matrix or vector, after that we can combine it. |
| 305 |
^ a Group 'Boole' |
| 306 |
a) Contains 3 nodes |
| 307 |
- Boole: a useful node which allows to include lots of input ports |
| 308 |
' It can produce input results and give one definition depending on function |
| 309 |
- Not: for opposite definitions which 'Not' accepts into Input port |
| 310 |
- Switch: has only output port Output which gives whether false or true |
| 311 |
' Switch is similar to "Constant", but unlikely Switch works only with Boole type of data |
| 312 |
b) They work in the mode of logical operations |
| 313 |
^ a Group 'Boole' > 'Boole' |
| 314 |
a) AND: when all definitions have the same condition 'True' |
| 315 |
b) OR: if at least one of all ports hase 'True', we get true |
| 316 |
c) XOR: if odd number of ports have definition 'True', it works |
| 317 |
d) NAND: it's an opposite of AND |
| 318 |
e) NOR: it's an opposite of OR |
| 319 |
f) NXOR: it's an opposite of XOR |
| 320 |
* Lesson 9 |
| 321 |
^ a Group of 'Calculate' |
| 322 |
a) In a group of 'Calculate' are contained nodes which convert from one type of dat into another |
| 323 |
b) also contains different mathematical nodes |
| 324 |
c) a node 'Absolute' |
| 325 |
- a simple node which converts negative numbers into positive ones |
| 326 |
- Absolute Properties has Real or Integer |
| 327 |
d) a node 'Clamp' |
| 328 |
- make limit between minimal and maximum definition |
| 329 |
- Structure |
| 330 |
' Input ports |
| 331 |
| Min |
| 332 |
| Max |
| 333 |
| Value |
| 334 |
' Output ports |
| 335 |
| Output |
| 336 |
- Connect via value, then make restricts between min and max |
| 337 |
- Handy for rigging a personage |
| 338 |
e) a node 'Colorspace' |
| 339 |
- Converts modes of color space (from rgb to hsv, etc.) |
| 340 |
f) a node 'Cross Product' |
| 341 |
- a specific node which is used for work with vector math |
| 342 |
- we can get a normal vector |
| 343 |
g) Dot Product |
| 344 |
- a specific node which is used for work with vector math |
| 345 |
- creates a projection of one vector onto another |
| 346 |
^ a Group of 'Calculate' (part 2) |
| 347 |
a) Degree |
| 348 |
- for converting degree to radians and vice versa |
| 349 |
- be default an object is rotated in Radians |
| 350 |
b) Distance |
| 351 |
- for learning distance between objects |
| 352 |
- we can make dependence (opening doors and etc.) |
| 353 |
c) FloatFuncExp |
| 354 |
- For mathematical functions, such as ln10, sqrt etc. |
| 355 |
d) Math:Add |
| 356 |
- We can do simple mathematical operations |
| 357 |
- Very convenient for getting result of text spline |
| 358 |
- Can work with lots of input definitions |
| 359 |
e) FloatMath:Add |
| 360 |
- It's similar to 'Math:Add', but works only with Float value |
| 361 |
- It's kind of for more strong operations |
| 362 |
- Can work only with 2 definitions and that's all |
| 363 |
f) Formula |
| 364 |
- Can replace 'Math:Add' and 'FloatMath:Add', but can work only with numbers |
| 365 |
- do operations in Properties > Formula |
| 366 |
' For addressing to input objects we name $1, $2, etc. ($1 + $2) |
| 367 |
' We can do it with port names (have to tick 'use port names') |
| 368 |
- we can see different operations in Show help: Appendix > Formula cos(a) |
| 369 |
g) Invert |
| 370 |
- for inversion of definitions: 5 will get 1/5 |
| 371 |
^ a Group of 'Calculate' (part 3) |
| 372 |
a) Matrix2HPB |
| 373 |
- allows from data of matrix gives definitions or rotation |
| 374 |
b) Mix |
| 375 |
- It allows to mix certain definitions in proportion |
| 376 |
- It can be useful for learning percentage of control of city |
| 377 |
c) Negate |
| 378 |
- invert definitions and work with different type of data |
| 379 |
- we can make 2 objects nearer and farther |
| 380 |
d) Range Mapper |
| 381 |
- It's very important node which do transformation from one range to another |
| 382 |
- We can do it shifting with adding Null:User Data: Float Slider |
| 383 |
- Properties |
| 384 |
' Clamp Lower and Clamp Upper (default not tick) |
| 385 |
' Reverse (default not tick): for changing start and end position |
| 386 |
' Parameter: here's the main setting with input lower, input upper, output lower, output upper |
| 387 |
' Use spline: for changing interpolation |
| 388 |
' Input Range (default User Defined) can change into, example, degree. So, it's useful for rotation |
| 389 |
' Modulo: allows to make cycle animation |
| 390 |
e) Trigonometric |
| 391 |
- Via this node we can convert numbers with trigonometric functions |
| 392 |
- GIves other Results |
| 393 |
* Lesson 10 |
| 394 |
^ A group of Script |
| 395 |
a) In this group we can use some scripts, if you know a program language Python |
| 396 |
- can replace totally XPresso |
| 397 |
- we can also create plugins |
| 398 |
^ A group of Logic |
| 399 |
a) Compare |
| 400 |
- Here we always compare 2 definitions |
| 401 |
b) Condition |
| 402 |
- very useful node with switching |
| 403 |
- count of switch starts from 0 (0 = input 1; 1 = input 2 etc.) |
| 404 |
- Lots of Types of data |
| 405 |
- can switch colors, positions of object and so on |
| 406 |
c) Equal; is Null; Order |
| 407 |
- These nodes duplicate definitions of function of a node 'Compare' |
| 408 |
- Equal gives only 2 definitions True or false; 1 or 0 |
| 409 |
' Unlikely "compare", it has more types of data |
| 410 |
- Is Null determines whether it equals to 0 or not |
| 411 |
- Order: compares 2 definitions of inputs, which is rather than or not |
| 412 |
' Usually in integer |
| 413 |
' If the first definition is rather than the second one, we get 1; if equals -- 0, or else -- -1 |
| 414 |
^ a Group of 'Iterator' |
| 415 |
a) Hierarchy |
| 416 |
- Structure |
| 417 |
' Input ports |
| 418 |
| Maximum Iterators |
| 419 |
| Object |
| 420 |
| On |
| 421 |
' Output Porst |
| 422 |
| Object |
| 423 |
| Count |
| 424 |
b) Iteration |
| 425 |
- This node creates simple cycles |
| 426 |
- Very useful when we want to work with a huge stream of iterators |
| 427 |
^ a Node 'Condition' of a group of 'Logic' |
| 428 |
a) a node 'Condition' is very useful for making daughters |
| 429 |
b) Example task -- make several objects daughters to controllers which have tags Vibrate for movement |
| 430 |
- All 8 objects into Xpresso Editor with output 'Object' |
| 431 |
- They connect with into input input 2 nodes 'Condition'::Object |
| 432 |
- output connect with 2 new nodes 'Object' |
| 433 |
' daughters objects connect with the lower input Object Object |
| 434 |
' Parents objects connect with the higher Object throw object, then the high object connects with the low one via Global Position |
| 435 |
- 2 Objects must be selected, then increase parameters Switch in properties |
| 436 |
- For all proper animation we have to add a node 'Iteration' where in parameters we put a number in Iteration End (if 4 objects, we put 3, and so on) |
| 437 |
- 'Iteration' Connect with input ports Switch of 2 nodes 'Condition' |
| 438 |
c) The same example task, but with the more convenient solution |
| 439 |
- Use Link List |
| 440 |
- so Iteration + 2 Link Lists + 2 objects, like above |
| 441 |
^ a node 'Object List' |
| 442 |
a) the node 'Object List' represents combining of 2 nodes 'Iteration' + 'Link List' |
| 443 |
b) Structure |
| 444 |
- Input ports |
| 445 |
' Iteration List |
| 446 |
' On |
| 447 |
- Output ports |
| 448 |
' Instance |
| 449 |
' Count |
| 450 |
c) Usually node 'Object List' works with 'Object Index' |
| 451 |
- 'Object Index' for getting index |
| 452 |
d) example with parents and daughters of global position |
| 453 |
- Object List output Instance --- input Instance Object Index output Instance --- input Object Object |
| 454 |
- Object Index output Index --- input Index Parents Link List output Link --- input Object Object (the other) output Global Position --- input Global Position Object |
| 455 |
^ Hierarchy |
| 456 |
a) Hierarchy is similar to Object List and Link List. Unlikely, it takes objects for processing in cycle from hierarchy |
| 457 |
b) Structure |
| 458 |
- Input Port |
| 459 |
' Maximum Iterations |
| 460 |
' Object |
| 461 |
' On |
| 462 |
- Output Port |
| 463 |
' Object |
| 464 |
' Count |
| 465 |
c) So we have to group needed objects as daughters |
| 466 |
- Connections like in Object list. |
| 467 |
d) We have to tick On |
| 468 |
e) We can exclude some objects |
| 469 |
- It's more convenient |
| 470 |
f) Don't forget about 'Reference'. Here's we insert a link of the parent group |
| 471 |
g) Object List is convenient when we choose objects from other groups |
Комментарии