2012-05-11 6 views
3

私が書いたコラージュのために私自身のローダーを使って静的ジオメトリを読み込むことができました。しかし、次のステップはアニメーションを追加することです。私が抱えている問題は、instance_controllerに複数のスケルトンがある場合にどうなるかです。私の現在のモデルでは、私はすべての関節を参照している掘削されているすべてのノードをロードしようとしています。たとえば、複数の骨格を持つコラージュアニメーション

<instance_controller url="#geom-Cylinder018-skin1"> 
<skeleton>#node-Bone024</skeleton> 
<skeleton>#node-Bone020</skeleton> 
<skeleton>#node-Bone016</skeleton> 
<skeleton>#node-Bone009</skeleton> 
<skeleton>#node-Bone005</skeleton> 
<skeleton>#node-Bone001</skeleton> 
<skeleton>#node-Bone025</skeleton> 

私はこれと何をすると思いますか?現時点では、それらをすべてvisual_sceneの正しいノードにリンクしています。しかし、モデルのすべてのノードはあなたが上記のものを行います!実際にレンダリングされ、うまく動作するかどうかを確認するために、AssimpViewを使用してロードしました。上記の状況で私が何をしているのか誰にでも私に説明することができます。おかげ

COLLADA spec

答えて

6

、それは言うこと<skeleton><instance_controller>下:皮膚コントローラは、それはそう

を必要とする共同 ノードの検索を開始する場所

は複数を有することを示しinstance_controller内のスケルトンポインタは、指されたノードがすべて正しいジョイントノードを検索されるべきであることを意味します。 <controller>自体は、ジョイントにどのノードを使用すべきかを示します。 <skeleton>ポイントは各関節名前のsidを持つノードで検索する必要がありますしていること

<library_controllers> 
    <controller id="skin"> 
    <skin source="#base_mesh"> 
     <source id="Joints"> 
     <Name_array count="4"> Root Spine1 Spine2 Head </Name_array> 
     ... 
     </source> 
     ... 
    </controller> 
</library_controllers> 

<node>:それはこのようになりますソースを持っています。例えば、上記コントローラに、ノードがこのようなルックスを指摘:

<node id="Skeleton1" sid="Root"> 
    <node sid="Spine1"> 
    <node sid="Spine2"> 
     <node sid="Head"/> 
    </node> 
    </node> 
</node> 

コントローラにおける各関節の名前は、そのSID値を持つノードに対応します。複数のスケルトンタグを持っている場合は、与えられたsidのためにさらに多くのノードを検索する必要があることを意味します。

+0

ありがとうございました!私はこれを他のいくつかのウェブサイトに掲載しました。 –

+0

問題なし、幸運! – jterrace

関連する問題