HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0719
YNO3Dgameでカメラがうまく回りません1未解決


YNO

リンク

2006/7/19(Wed) 14:15:43|NO.1426

初心者のYNOですまたお世話になります。

dim px,16 :dim pz,16 ;ここにはモデル読み込み ;モデル制御が入っています ;カメラは自機目標固定です po(1)=-po(1) selcint :objsetfv po selang oi :objgetfv an fvdir an,0.0f,-60.0f,0.0f fvadd an,po.0,po.1,po.2 px.ti=an.0 :py.ti=an.1 :ti=ti-1/16 ;どうも座標系がおかしく tw=ti-16 :if tw<0 :tw+=16 ;py←pzで動かしてます selcpos :objsetf3 px.tw,-py.tw,-48.0f
以前教えていただいたところは問題なく動作するのですが
そのころよりあったカメラの(床から垂直をY軸として)Z軸回転が発生します
また、自機が時計回り中にはなぜか?カメラは逆回転で追いかけます



この記事に返信する


Drip

リンク

2006/7/19(Wed) 20:16:29|NO.1438

Dripです。

 YNOさん、こんにちは。3Dゲームのオブジェクト回転系は戸惑いやすい分野のひとつだと思います。
hgimg3の回転系では、Y軸が地球で言う自転軸にあたり、Z軸を傾かせた状態で回転させると
波打つような回転になります。
(つまり、カメラのZ軸を傾けただけでは、常にZ軸が傾いた表示を行えません。
 Z軸を傾けた状態でY軸を回転させた場合、
 Y軸が1.5708rad度傾いた状態ではZ軸角度がそのままX軸角度になったような表示に、
 Y軸が3.1416rad度傾いた状態ではZ軸角度が反転したような表示になります。)

//このサンプルも参考にしてみてください。 #include "hgimg3.as" #define max 32 screen 0,640,480,0,10,10 hgini addbox box,5,5 repeat max regobj tmp,box setpos tmp,sin(6.2832/max*cnt)*50,0,cos(6.2832/max*cnt)*50 loop setpos HGOBJ_CAMERA,0,0,0 selang HGOBJ_CAMERA:objset1 2,0.4 hgdraw hgsync dialog "この表示状態をよく覚えておいてください。" repeat 157 objadd1 1,0.01 hgdraw hgsync 15 loop dialog "Y軸が1.5708rad度傾いた状態ではZ軸角度がそのままX軸角度になったような表示に見えます。" repeat 157 objadd1 1,0.01 hgdraw hgsync 15 loop dialog "Y軸が3.1416rad度傾いた状態ではZ軸角度が反転したような表示に見えます。" hgbye end
少しわかりにくいかもしれませんが、じっくり考えてみてください。
また、以前hgimg3の回転系について交わされた記事がありますので、よろしければご覧下さい。
http://hsp.tv/play/pforum.php?mode=all&num=1090

尚、hgimg3には注視点座標のY座標が反転する不具合が含まれているバージョンがありますので、
最新版をご使用ください。



ONION software Copyright 1997-2021(c) All rights reserved.