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というクラスを書いてたら、そういえば同じ名前のベースクラスがあった気がするなぁ、あれ、というか実装してくれたりするんじゃね?と思って調べた事によるもの。
たったこれだけの事を調べるのに一日無駄にすることだった。
でもこれで間接片付いたし、光明見えてきた気がするなぁ。