2

3dsmax で作成したプリミティブ キャラクタをレンダリングしようとしましたが、エクスポートした DAE ファイルに問題があるか、ColladaLoader が正しく処理できないようです。

シーンは、アニメートされた Biped スケルトン、Physique モディファイヤを使用した単純なリギング キャラクタ、1 つの静的ボックス、およびアニメートされたボックスで構成されます。

これが私のコードです:

<script src="three.js" type="text/javascript"></script>
<script src="ColladaLoader.js" type="text/javascript"></script>
<script type="text/javascript">
  var size_width = window.innerWidth;
  var size_height = window.innerHeight;
  var player;
  var scene = new THREE.Scene();
  var camera = new THREE.PerspectiveCamera(75, size_width/size_height, 0.1, 1000);
  var renderer = new THREE.WebGLRenderer();
  renderer.setSize(size_width, size_height);
  document.body.appendChild(renderer.domElement);

  camera.position.x = 100;
  camera.position.y = -50;
  camera.position.z = 7;

  camera.rotation.x = 1.4;

  var player_loader = new THREE.ColladaLoader();

  player_loader.load( "running_babe.dae", function(collada) {
    player = collada.scene;
    init();
  });

  function init() {
    scene.add(player);
    render();
  }

  function render() {
    requestAnimationFrame(render);
    renderer.render(scene, camera);
  }
</script>

しかし、私が得るのはこれら2つのボックスとエラーだけです:

ColladaLoader: Could not find the skeleton for the skin.

これが私が使用するエクスポートされたDAEファイルです - http://touhou.ru/upload/ff72eb0b40adf5c97286a1bcb164e1f0.DAE

助言がありますか?


更新: スキン モディファイアを使用してキャラクターをリギングした後、同じ結果になりました。スキンのスケルトンが見つかりませんでした。

スキン修飾子を使用してエクスポートされた dae へのリンクは次のとおりです - http://touhou.ru/upload/af6ba52b7bff5fa2b0f6ba3f704a3b77.dae

4

2 に答える 2

3

私は同じ問題を抱えていて、threejs colladaloader のソースを読み始めてそれを理解する前に、エクスポーターの設定をいじって何日も過ごしました。まだ解決していない場合は、次のことを行う必要があります。

最初に: モデルを max からエクスポートするときは、シーン内の要素がファイル名と同じ名前を持っていないことを確認してください (そうしないと、DAE ファイルで生成された ID と関係があるジオメトリが表示されません)。

現在、3DSMax はどういうわけかノードのエクスポートを無視しているため、手動で追加する必要があります。

  1. テキスト エディタで running_babe.dae ファイルを開きます
  2. <instance_controller url="...."/> ノードを探して、次のように書き換えます。
<instance_controller url="....">
    <skeleton>#xxxxx</skeleton>
</instance_controller>

ここで、「xxxxx」は、スケルトン階層のルート要素である ID (=3dsmax の要素/ボーン名) です。先頭の「ハッシュ」を忘れないでください。:)

それがあなたのためにそれを解決することを願っています. 私はまだアニメーションを試していませんが、これから試してみます。このソリューションに欠けているものがある場合はお知らせください。

編集: 気にしないでください、どうやら私は巨大なフリギング氷山の先端の表面を引っかいたようです.. (3dsmax 2013 から) collada を取得するようです + スキン化されたアニメーションの作業は面倒です.. 新しい json エクスポーターの作成を見ていきます. 形式は簡単で、十分に文書化されているように見えます。さらに、github からの古い .ms ファイルから開始することもできます。頑張って!あなたが何かを見つけたら、あなたの方法をここに投稿してください。:)

于 2013-02-19T17:18:42.250 に答える