Все последующие задают "добавочный" поворот, который надо добавить ко всем, уже сделанным. То есть, во второй ключевой позиции мы последовательно применяем повороты, заданные первым и вторым ключом, в третьей - первым, вторым и третьим, и так далее.
Блок: | CHUNK_TRACKCAMERA |
Данные: | траектория камеры, заданная ключевыми значениями положения, угла зрения, ориентации камеры |
Формат: |
Состоит из подблоков CHUNK_TRACKOBJNAME, CHUNK_TRACKPOS, CHUNK_TRACKFOV, CHUNK_TRACKROLL и некоторых других, которые можно безболезненно игнорировать. |
Блок: | CHUNK_TRACKFOV |
Данные: | поведение FOV (угла зрения) камеры, заданное ключевыми значениями |
Формат: | word flags; // флаги byte unknown[8]; // dword num; // число ключевых значений struct { // dword frame; // кадр данного ключевого значения word splineflags; // флаги сплайна float[] splineinfo; // параметры сплайна (кол-во и тип // зависят от значения splineflags) float FOV; // значение FOV } keys[num]; // собственно ключевые значения |
Блок: | CHUNK_TRACKROLL |
Данные: | поведение roll (угла наклона) камеры, заданное ключевыми значениями |
Формат: | word flags; // флаги byte unknown[8]; // dword num; // число ключевых значений struct { // dword frame; // кадр данного ключевого значения word splineflags; // флаги сплайна float[] splineinfo; // параметры сплайна (кол-во и тип // зависят от значения splineflags) float roll; // значение roll } keys[num]; // собственно ключевые значения |
Блок: | CHUNK_TRACKCAMTGT |
Данные: | траектория "цели" камеры (точки, куда камера смотрит), заданная ключевыми значениями положения |
Формат: |
Состоит из подблоков CHUNK_TRACKOBJNAME, CHUNK_TRACKPOS и некоторых других, которые можно безболезненно игнорировать. |
Теперь к вопросу о сплайнах и их параметрах.