non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

ようやくJavaScriptで物理エンジンつかってオリジナルのコードが動かせつつある

この記事は@kjunichiの2017年パーソナルアドベントカレンダーの13日目の記事です 。

ammo.jsでやってる

WASM版もあるので、古くてあたらいい感じのするammo.js

この記事の話は、ammo.jsの車のサンプルコードをベースにしている。

github.com

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;

f:id:kjw_junichi:20171213230007p:plain

関連記事

13年前の記事

12年前の記事

5年前の記事

3年前の記事

2年前の記事

1年前の記事