Three.jsでの間接

自力実装の方向ですごい調べて損した気がするけど、Three.jsにはオブジェクトの親子関係を表現するための機構があるんだね。
Object3Dというクラスにparent、childrenというプロパティがあって、それに対応するaddとかremoveとかもある。


だから、ここでいうような体があって、腕があって〜みたいな親子関係を作ろうと思ったら、
http://www.c3.club.kyutech.ac.jp/gamewiki/index.php?%A5%E2%A1%BC%A5%B7%A5%E7%A5%F3
単純にこうやればいい。

var geometry = new THREE.CubeGeometry( 4, 6, 4);
var material = new THREE.MeshLambertMaterial( { color: 0xff0000 } );
var body = new THREE.Mesh( geometry, material );
geometry = new THREE.CubeGeometry( 4, 1.2, 1.2);
material = new THREE.MeshLambertMaterial( { color: 0xff0000 } );
var lhand = new THREE.Mesh( geometry, material );
body.add(lhand);
scene.add(body);


setPositionとかは普通にしてねということで。
sceneに追加するのは親だけでよくて、後は親のrotationとかを変えると子供も勝手に動く。


ちなみに気づいたきっかけは、自力実装の方向でObject3Dというクラスを書いてたら、そういえば同じ名前のベースクラスがあった気がするなぁ、あれ、というか実装してくれたりするんじゃね?と思って調べた事によるもの。
たったこれだけの事を調べるのに一日無駄にすることだった。
でもこれで間接片付いたし、光明見えてきた気がするなぁ。