備忘録: Three.jsで軸方向を変える(注意点あり)

Three.jsでは座標軸の垂直方向がBlenderのz軸とは異なりy軸になっています。
それに伴い、LookAtメソッドなどで視点を変えるとy軸を垂直方向として回転などは計算されます。
これは

THREE.Object3D.DEFAULT_UP = new THREE.Vector3(0, 0, 1);

などをしてObject3D.DEFAULT_UPプロパティの値を変えればだいたいのオブジェクトについては動作します。
ただし、Three.js派生のアドオンなど(FirstPersonControlsとか)は内部的にy軸を垂直方向とした計算をしているようなので、特段の事情がない限りはy軸を垂直方向として各種設定をするのが無難のようです。

これを調べるに至ったのは、過去のFirstPersonControlsにてlon, latプロパティを設定して見ている方向変えられるようだったのですが、いつの間にか廃止されていたためコード読んで色々調べたところ、カメラ方向計算がLookAtメソッド依存、ただそのほかにも操作系のコード見るとポインタ位置に対する操作軸がどうにも固定そうだったのでこのような結論に至りました。