メッシュを骨に取り付ける方法はありますか?たとえば、アニメーション化された.jsキャラクタを読み込み、手に武器をつけたいとします。Three.jsが骨にオブジェクトをつける
9
A
答えて
11
BoneおよびObject3Dのプロトタイプで簡単なハックを使用することは可能です。ボーンはObject3Dから継承されるので、それらは子を持つ可能性があるので、メッシュを任意のボーンに簡単に追加()することができます。
ただし、SkinnedMeshはBone以外の子のみupdateMatrixWorld()を呼び出し、Boneの子はupdate()を呼び出します。さらに、ボーンはその子のそれぞれについてupdate()を呼び出します(ボーンであるかどうかにかかわらず)。次のスニペットではその動作が変更されています。
// modify bone update function to also update its world matrix
// possibly do this only to skeletons you need it for, not for all bones
var update = THREE.Bone.prototype.update;
THREE.Bone.prototype.update = function(parentSkinMatrix, forceUpdate) {
update.call(this, parentSkinMatrix, forceUpdate);
this.updateMatrixWorld(true);
};
// add noop update function to Object3D prototype
// so any Object3D may be a child of a Bone
THREE.Object3D.prototype.update = function() {};
// create buffalo ...
// create a mesh and add it to some bone
var mesh = new THREE.Mesh(new THREE.SphereGeometry(20), new THREE.MeshNormalMaterial());
var bone = buffalo.bones[5];
bone.add(mesh);
8
Three.jsバージョン68はこれをそのまま使用しますが、少し異なります。 内部機能の変更は必要ありません。
それは今、このように動作します:
ボーン階層は、現在SkinnedMeshの子どもたちに発見されました。
は、子どもたちのリストに骨を見つけ、単にそれにオブジェクトを添付:
player.children[0].add(testObj);
注:(エクスポートブレンダーモデルで例えば)骨の階層構造を持っている場合、これは3で表されます。 jsも。骨を対象とする場合は、親骨があります。
player.children[0].children[1].add(testObj);
関連する問題
- 1. Three.JS影をつける
- 2. Three.jsオブジェクトがターゲットに移動
- 3. Three.js Crosswalk Cordovaぼやけたオブジェクト
- 4. three.jsオブジェクトに続くオブジェクト
- 5. Blenderで骨格アニメーションを作成してthree.jsで再生する方法
- 6. 配列にThree.jsオブジェクト
- 7. three.js - オブジェクトをマウスで見る
- 8. 脊椎動物 - マウスの腕に骨をぶつけてください
- 9. three.jsオブジェクトから光が漏れる
- 10. 複数の骨格を持つコラージュアニメーション
- 11. three.js:作るテクスチャ現在three.jsで3つのラッピングモードがある
- 12. THREE.JSのオブジェクトboolean/intersection
- 13. jSONオブジェクトのthree.jsテクスチャ
- 14. THREE.jsにイメージテクスチャを持つオブジェクトに透明な穴を作るには?
- 15. オブジェクトがドラッグ中にカーソルを移動する(EventsControls + three.js)
- 16. three.jsレイヤのメンバーを見つける方法は?
- 17. 骨を計算する
- 18. THREE.js - オブジェクトの表面に浮かぶオブジェクトを移動する
- 19. Three.jsで3Dオブジェクトをマウスに回転
- 20. three.js JSONオブジェクトにテクスチャを追加
- 21. エラーカルコゲノフルバレン骨格データベース
- 22. OpenGL骨格アニメーションロジック
- 23. Three.js:モバイルデバイスのオブジェクトを回転する
- 24. three.jsオブジェクトのmatrixWorldプロパティを設定する
- 25. Three.js複数のオブジェクトを作成する
- 26. Three.js TubeGeometryオブジェクトのメッシュを更新する
- 27. three.jsでのオブジェクトのスケーリング
- 28. Three.JS - 異なるオブジェクトの異なるシェーダ
- 29. バウンディングボックスを持つオブジェクトを見つける
- 30. three.jsメッシュの最短経路を見つけますか?
wowのようになります。そのような答え。非常に助けてください。大変ありがとうございます。ワオ。 – Gugis