仕様では、animations.samplers.input
プロパティを次のように説明しています。
時間などのキーフレーム入力値を含むアクセサーのインデックス。そのアクセサーには componentType FLOAT が必要です。値は、time[0] >= 0.0 の秒単位の時間を表し、厳密に増加する値、つまり、time[n + 1] > time[n] です。
ただし、デモ リポジトリの最初の基本的な例であるAnimated Triangleから、これを理解するのに少し苦労しています。
具体的には、animation.bin からアニメーションに関連するバイナリ データを取得し、それを にデコードするとFloat32Array
、次の値のリストが得られます。
[0, 0.25, 0.5, 0.75, 1, 0, 0, 0, 1, 0, 0, 0.7070000171661377, 0.7070000171661377, 0, 0, 1, 0, 0, 0, 0.7070000171661377, -0.7070000171661377, 0, 0, 0, 1]
もちろん、これは「厳密に値を増やす」という観点からは意味がありません。
ここで私は何を誤解していますか?output
これらの値は、時間の経過とともにローテーションを更新するために( と組み合わせて) どのように使用されるのですか?
animation.bin は、input
サンプラーから参照されるビューであることに注意してください。つまり、gltfから
- 入力 == アクセサ 2
- アクセサ 2 == bufferView 2
- bufferView 2 == バッファ 1 からのバイト (0-100)
- バッファ 1 == animation.bin