EasyFAQ/104

Last-modified: 2009-12-17 (木) 16:33:44

カメラの上方向ベクトル

投稿者
重要度
状態
カテゴリ
HSPバージョン
E3Dバージョン
回答

ここから下を自由に編集してください。
上の投稿情報は安易に編集するとFAQリストのリストアップに支障が出るものもあります。
よく分からない方は分かる人に聞いてみてください。
カメラの上方向のベクトル指定で質問です。
E3DSetCameraTargetに渡すカメラの上方向のベクトルは(0.1.0)を指定すると、常に水平な状態で表示されます。
これは平らな地面を歩行したりするだけであれば問題がないと思います。
たとえばジェットコースターに乗った時の主観視点を表現する場合は、
カメラも一緒に斜めになったり上下に傾いたりしなければいけないのですが
この場合はどのように設をするのが一般的なのでしょうか。
考えた限りでは、
(カメラ位置X-キャラクタ位置X,カメラ位置Y-キャラクタ位置Y,カメラ位置Z-キャラクタ位置Z)
という感じと思ったのですがうまくいかないようです。
またFPSなどの場合は注視点がカメラの周りを公転するので、このときの傾きも考慮しなければいけないと思うのですが、うまい方法が思いつきません。
基本的なところだと思うのですが、ご教示ください。 -- らいと? 2009-12-15 (火) 16:36:31

  • ちょっと試してませんがたぶん2回外積を行うと取得できると思います。まずカメラの向き(target posからcamera posを引いたもの)と(0, 1, 0)との外積をE3DCrossで行います。得られたベクトルとカメラの向きのベクトルでもう一度外積を行います。これが求める上ベクトルです。E3DCrossに渡すベクトルの順番で向きが反対になったりしますが、どの順番で渡すかはちょっと忘れました。試してみてください。 -- おちゃっこ? 2009-12-15 (火) 17:52:35
  • ありがとうございます。うまくいくか試してみます。 -- らいと? 2009-12-17 (木) 16:26:28