9

現在、three.js で骨格アニメーションのテストに取り組んでいます。ブレンダーでうまくアニメーションする単純なモデルがあります。基本的には、3 つの積み重ねられた曲がった立方体で構成されています。

Blender V2.64 で Blender Export プラグインを使用して Blender ファイルを three.js にエクスポートすると、webGl コンテキストのアニメーションがスキンの重み付けが間違っているかのように異なって表示されます。

WebGL デモ: http://rainbowrangers.de/threejs/animation_test01/

Blender ファイル: http://rainbowrangers.de/threejs/animation_test01/model/animation_test01.blend

three.jsで正しい結果を得るにはどうすればよいですか?

4

3 に答える 3

10

私はあなたが github の議論から引用した人物です。私は最近、このパイプライン (つまり、Blender のボーン アニメーションを threejs に変換する) を試しており、毎回機能する信頼できるプロセスを見つけるのは非常に難しいことがわかりました。

私のブログでは、いくつかの機会に成功を収めるための「ヒント」のリストをまとめました。

http://dev.mothteeth.com/2012/10/threejs-blender-exporting-skeletal-animations/

要約すると、私が見つけた最も重要なことは次のとおりです。

エクスポートする前にアーマチュア モディファイアを削除してください。そうしないと、アニメーションが台無しになります。

頂点グループがボーンに適切に割り当てられていることを確認してください。( Blender では、自動ボーン ウェイトを使用できます。)

アニメーションの最初と最後のフレームですべてのボーンにキーを設定します。(あなたが発見したように、変更したボーンのキーしか持っていない場合、ThreeJS は他のボーンについて何も推測せず、問題が発生します。)

これらのガイドラインに従っても、一貫して動作させることができず、ライブラリがもう少し成熟するまでモーフ ターゲットの使用を検討しています。モーフ ターゲットのファイル サイズははるかに大きくなりますが、私の経験では、現時点ではより信頼性の高いオプションのようです。

于 2012-11-25T06:58:23.347 に答える
3

多くの掘り下げの後、three.js github ディスカッションの 1 つで最終的に答えを見つけました。

「アニメーションの最初と最後にあるすべてのボーンに完全なキーフレームを挿入します。最初のキーフレームがないと、アニメーションが微妙に歪んでしまい、最後のキーフレームがないと、アニメーションの一部が最後に失われることがわかりました。 ."

ソース: https://github.com/mrdoob/three.js/issues/2106

それがまさに私たちのレンダリングに起こったことです。変化するボーンに対してのみキーフレームを設定し、静的なボーンに対しては設定しません。

于 2012-11-24T14:25:17.080 に答える
2

また、エクスポートされたモデルを正しく動作させるには、Blender のフレーム 0 でエクスポートを行う必要があることもわかりました。

私が遭遇した問題を解決したもう 1 つのことは、エクスポート後にモデルをスケーリングしないことでした。これは、モデルを JSON ファイルで、おそらくコードで直接スケーリングできないことを意味します。

three.js r56 の使用

于 2013-02-26T20:32:30.507 に答える