私はGLTFとThree.jsを試していますが、アニメーションを動かそうとしている悪魔がいます。私の最終目標は、Blenderでキーフレームのアニメーションメッシュを作成し、GLTFにエクスポートし、AframeベースのWebVRシーンで使用することです。しかし、現時点では、単純なThree.jsテストハーネスページにロードしてアニメートするようにしています。Blender ExporterのGLTFを使用したThree.jsのアニメーション
私はこの動作を得るための非常に基本的なテストを行っています。私はBlenderのデフォルトのキューブシーンを取り、カメラとライトを削除し、キューブをZ軸の周りに360度回転させるためのキーフレームアニメーションを作成しました。そのキューブをGLTFにエクスポートしました。まず、GLTFのエクスポートを試してみた後、Colladaにエクスポートし、セシウムのツールを使ってGLTFに変換しようとしました。両方のバージョンのGLTFファイルは、キューブを適切に読み込んでレンダリングしますが、キューブはアニメーション化されません。
私はこの同じブレンドファイルを使用して、Blender用の独自のJSONエクスポートアドオンを使用してJSONにエクスポートできました。すべてがうまく動作します。だから、私はJavascriptで何か愚かなことをしているに違いないと感じるか、GLTFに関するものがあります。
誰でも私がここで間違っていることを教えてもらえますか?私はここで髪をヤンクする時間になっている。
ここで私は(特にセシウムのツールからバイナリバージョン)GLTFバージョン用に使用しようとしているJavascriptがあります:
var scene = null;
var camera = null;
var renderer = null;
var mixer = null;
var clock = new THREE.Clock();
function init3D() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var ambientLight = new THREE.AmbientLight(0x080818);
scene.add(ambientLight);
var pointLight = new THREE.PointLight(0xffffff, 1, 100);
pointLight.position.set(-5, 1, 5);
scene.add(pointLight);
camera.position.z = 5;
camera.position.y = 1.5;
}
function loadScene() {
// Instantiate a loader
var loader = new THREE.GLTFLoader();
// Load a glTF resource
loader.load('gltf/SpinCube.glb',
function (gltf) {
var model = gltf.scene;
scene.add(model);
mixer = new THREE.AnimationMixer(model);
mixer.clipAction(gltf.animations[0]).play();
render();
});
}
function render() {
requestAnimationFrame(render);
var delta = clock.getDelta();
if (mixer != null) {
mixer.update(delta);
};
renderer.render(scene, camera);
}
init3D();
loadScene();
どの輸出業者を使用していますか?最新のhttps://github.com/KhronosGroup/glTF-Blender-Exporter/は、あなたが望むだろう。しかし、glTF2.0をエクスポートするので、THREE.GLTF2Loaderも使用する必要があります。 –
私は1つをhttps://github.com/Kupoman/blendergltfで使っていました。これはGLTF 1.0をエクスポートしているようです。私はそれを取るKhronosグループの下のものは公式なものですか?私はその1つを試して、GLTF2Loaderに切り替えました。どちらもアニメーション化されていません...また、私が適用した素材も失ってしまいました。この時点で、私はGLTFへの3つの異なる経路を試しました。だから、私の疑問は私のJavaScriptで何か間違っているということです。私は、私がBlenderでアニメーションをやっているやり方が間違っているかもしれないと思うが、ThreeのJSONエクスポータはうまく動作する。 – loraan
クロノスグループの拡張機能は、現在アクティブな作業が行われているところです。アイロンをかけるのに問題がある可能性は非常に高いです。 GitHub(理想的には '.blend'ファイル)に問題を提出できますか?ファイルを見ることなく、アニメーションが '.gltf'内に存在するかどうかはわかりません。私はBlenderの専門家ではありませんが、Extensionの著者はそうです。 –