この記事は@kjunichiの2017年パーソナルアドベントカレンダーの13日目の記事です 。
ammo.jsでやってる
WASM版もあるので、古くてあたらいい感じのするammo.js
この記事の話は、ammo.jsの車のサンプルコードをベースにしている。
Tips
JSONで読み込んだモデルの複製
geom,materialを保持して起き、 オブジェクトごとにnew THREE.Meshする必要がある。 これ、Three.jsネタかw
function createChassisMesh(w, l, h) { const mesh = new THREE.Mesh(bodyGeom, bodyMat); mesh.rotation.y=Math.PI; const root = new THREE.Object3D(); mesh.scale.x=1.5; mesh.scale.y=1.5; mesh.scale.z=1.5; root.add(mesh); scene.add(root); return root; }
前後のホイールベースやトレッド調整
ammo.jsのRaycast Vehicleのパラメータの調整のはなし。
以下のパラメータを調整することで、サイズを合わせたタイヤ&ホイールがいい感じに 配置された。
const wheelAxisPositionBack = -1.70; const wheelAxisFrontPosition = 1.5; const wheelHalfTrackBack = 1.1; const wheelHalfTrackFront = 1;
関連記事
- Three.jsでexamplesの高級車たちをblenderにExportしたが残念な結果に
- gopherくんのjsonデータがthree.jsのr85以降表示されなくてはまったjsonデータがthree.jsのr85以降表示されなくてはまった
- Ammo.jsのbtRaycastVehicleを基準にしたThree.jsのカメラの指定ではまった件