Самоучитель по 3dsmax 7

         

Каждому объекту присваивается его порядковый номер при следовании в файле, поле parent выставляется...


Каждому объекту присваивается его порядковый номер при следовании в файле, поле parent выставляется в -1, если у данного объекта нет родителя. Вот пример. объект | номер | parent --------+-------+-------- A | 0 | -1 B | 1 | 0 A C | 2 | 1 +---------+----+ D | 3 | 2 B K N E | 4 | 1 +----+----+ + + F | 5 | 4 C E H L O G | 6 | 5 + + + + + H | 7 | 1 D F I M P I | 8 | 7 + + J | 9 | 8 G J K | 10 | 0 L | 11 | 10 M | 12 | 11 N | 13 | 0 O | 14 | 13 P | 15 | 14

Насколько я понял, дерево используется следующим образом: если к какому-то узлу дерева применяется преобразование, то оно же автоматически применяется и ко всем узлам, "растущим" из этого. То есть, если объект B в нашем примере есть рука, а объекты C, D, E, F, G, H, I, J - пальцы, то при повороте руки пальцы должны повернуться автоматически, вместе с рукой. В результате блок CHUNK_TRACKROTATE для пальцев может быть пустым, а пальцы будут вращаться вместе с рукой.

Блок: CHUNK_TRACKPIVOT

Данные: координаты центра вращения объекта

Формат: vector pivotpoint; // координаты центра вращения

Центр вращения - это как раз та точка "начального" объекта, через которую надо будет провести ось вращения, задающуюся в блоке CHUNK_TRACKROTATE.

Блок: CHUNK_TRACKPOS

Данные: траектория объекта, заданная ключевыми значениями положения объекта

Формат: word flags; // флаги byte unknown[8]; // dword num; // число ключевых значений struct { // dword frame; // кадр данного ключевого значения word splineflags; // флаги сплайна float[] splineinfo; // параметры сплайна (кол-во и тип // зависит от значения splineflags) vector pos; // положение объекта } keys[num]; // собственно ключевые значения

Блок: CHUNK_TRACKROTATE

Данные: траектория вращения объекта, заданная ключевыми значениями вектора направления оси вращения и угла поворота относительно этой оси

Формат: word flags; // флаги byte unknown[8]; // dword num; // число ключевых значений struct { // dword frame; // кадр данного ключевого значения word splineflags; // флаги сплайна float[] splineinfo; // параметры сплайна (кол-во и тип // зависят от значения splineflags) float angle; // угол поворота (в радианах) vector rotaxis; // ось вращения } keys[num]; // собственно ключевые значения

Только самое первое ключевое значение задает абсолютный поворот.



Содержание раздела