Как бы вы читали анимацию из файла .fbx? Я использую для этого Java с OpenGL, но это не слишком актуально для этого вопроса. Я просмотрел несколько разных источников и не могу найти никакой информации о форматировании файлов .FBX.
Мой загрузчик модели в настоящее время загружает имена, индексы, вершины, нормали, имена костей, веса костей и матрицы костей. Но у меня проблемы с пониманием того, как читать анимацию отсюда.
Я могу предположить, что это раздел анимации файла.
;Takes and animation section
;----------------------------------------------------
Takes: {
Current: "ArmatureAction"
Take: "ArmatureAction" {
FileName: "ArmatureAction.tak"
LocalTime: -1924423249,105843278750
ReferenceTime: -1924423249,105843278750
;Models animation
;----------------------------------------------------
Model: "Model::body" {
Version: 1.1
Channel: "Transform" {
Channel: "T" {
Channel: "X" {
Default: 0.000000000000000
KeyVer: 4005
KeyCount: 1
Key:
1924423250,0.000000000000000,L
Color: 1,0,0
}
Channel: "Y" {
Default: 0.000000000000000
KeyVer: 4005
KeyCount: 1
Key:
1924423250,0.000000000000000,L
Color: 0,1,0
}
Channel: "Z" {
Default: 0.000000000000000
KeyVer: 4005
KeyCount: 1
Key:
1924423250,0.000000000000000,L
Color: 0,0,1
}
LayerType: 1
}
Channel: "R" {
Channel: "X" {
Default: 90.000002504348856
KeyVer: 4005
KeyCount: 1
Key:
1924423250,90.000002504348856,L
Color: 1,0,0
}
Channel: "Y" {
Default: -89.999995674159678
KeyVer: 4005
KeyCount: 1
Key:
1924423250,-89.999995674159678,L
Color: 0,1,0
}
Channel: "Z" {
Default: 0.000000000000000
KeyVer: 4005
KeyCount: 1
Key:
1924423250,0.000000000000000,L
Color: 0,0,1
}
LayerType: 2
}
Channel: "S" {
Channel: "X" {
Default: 1.000000000000000
KeyVer: 4005
KeyCount: 1
Key:
1924423250,1.000000000000000,L
Color: 1,0,0
}
Channel: "Y" {
Default: 1.000000000000000
KeyVer: 4005
KeyCount: 1
Key:
1924423250,1.000000000000000,L
Color: 0,1,0
}
Channel: "Z" {
Default: 1.000000000000000
KeyVer: 4005
KeyCount: 1
Key:
1924423250,1.000000000000000,L
Color: 0,0,1
}
LayerType: 3
}
}
}
Model: "Model::head" {
Version: 1.1
Channel: "Transform" {
Channel: "T" {
Channel: "X" {...............................
Не могла бы добрая душа объяснить, как это форматируется? Помощь приветствуется!