Xangle/Yangle 03 - 視野角を測ろう
MUGENでは視野角があらかじめ設定されており、焦点距離が500、視野角が104°くらいです。(ただし、DEFファイルにあるlocalcoordが320,240の場合。)
大事なのは視野角よりも焦点距離で、500という結果が分かっていればそれでいいのですが、一応測り方をメモしておきます。
計算しやすいように角度は30°で固定し、縦幅bを上辺が(a/2)となるように変化させれば、焦点距離は b*cos(30°) = (√3/2)*b となります
具体的には、
大きさ(100×100)の正方形と(50×1)の長方形を用意
MUGEN上に長方形を表示、縦に画面いっぱいまで拡大
正方形を重ねて表示し、xangle = 60°とする
(xangleはy軸からの角度なので90 - 30 = 60°)
正方形を縦に拡大していく
長方形の横幅とぴったり重なったら、100*拡大率がbの大きさとなる
焦点距離 = (√3/2)*b
一番上の画像より、
tan(視野角/2) = [(1/2)*スクリーン幅]/焦点距離
MUGEN1.1のスクリーン幅は(1280×720)、、、ですよね。変えたらどうなるのかは知りません
大きい方(1280)で計算します。まあ大事なのは焦点距離の方なので、、、
これで測れますが、とても測りにくいです。しかも目測なので正確な値は分かりません。私の場合はb = 580となり、焦点距離≒502.3≒500、視野角≒104°となりました。
測る際は歪みに注意です。ちなみに私が測定した際は歪みを全く考慮していなかったので正確ではないと思います。でも今のところ問題はないので多分あってる。多分
以上はDEFファイルにあるlocalcoordが320,240(D0キャラ)の場合の話です。D4キャラなら2倍、HDキャラなら4倍になるようです。まだよく分かっていません。
localcoordを大きくすると焦点距離も大きくなるので、localcoordを大きくしておいて測定した方が精度は高いでしょうね
焦点距離が決まっているということは、奥方向に行くほど小さくなる遠近法の程度も決まっているということです。安易にscaleを小さくして奥行きを表現することは出来ず、カメラの位置を原点とすれば、
scale = (500/z)
としなければなりません。
さらにカメラの位置を動かそうとすればワールド座標だのビュー座標だのどんどんややこしくなっていきます。まあ格ゲー作るならそんなことする必要はないですね