Ogre3dで、方向を設定し、カメラビューに「法線」のベクトル(目の前を指す矢印として)とカメラを回転させる角度(頭を傾けるなど)を指定します。私はそれをこのトリックで動作させることができます:
float angle = 10; /* tilt my head 10 degrees to right */
Vector3 vector(0, 0, 1); /* z axis pointing forward */
Vector3 target = camera->getPosition() + vector;
camera->lookAt(target);
camera->roll(Degree(angle));
これがすべての値で機能するかどうかはわかりませんが、ハッキーのようです。クォータニオンやを使用するなど、より正確なものを探していますOgre::Camera::setOrientation()
。
この例は機能しません:
Quaternion orientation(Degree(angle), vector);
camera->setOrientation(orientation);
カメラがにangle
沿って回転するためvector
です。