私は自分のシーンのアニメーション書き出しスクリプトを作成しています。シーンの一部のオブジェクトのアニメーションキーが表示されているフレームだけを検出する必要があります。私はすべてのアニメーションの一部(時間間隔)だけをエクスポートする必要があります。 インターバル内のすべてのアニメーションフレームを効果的に取得する
は現在、私はすべてのオブジェクトのすべてのキーを収集するために、次のコードkeys = #()
for o in objects do
(
join keys o.position.controller.keys
join keys o.rotation.controller.keys
join keys o.scale.controller.keys
)
を使用していますし、その後
timeValues = (for k in keys where k.time >= animationRange.start and k.time <= animationRange.end collect k.time) as array
timeValues = makeUniqueArray timeValues
は、重複を時間間隔を選択し、ドロップします。
しかし問題は、私のシーンには位置、回転、スケールキーを持つ多くの異なるアニメーションオブジェクトが合計で約3000フレーム含まれていることです。だから私のコレクションの "キー"にはキーが何度も複製されています - 合計で約1,000,000のキーがあります。
小さな時間間隔(約50フレーム)でキーを選択する必要がありますが、コレクションが非常に大きいので、目的のキーを選択して複製をドロップするのに時間がかかりました(約1分)。
指定した時間間隔のアニメーションキーを含むすべてのフレームをより効果的に取得する方法はありますか?