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 |
Комментарии