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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0614
ジャッキーサンプルの中の「e3dhsp3_toolscamera.hsp」について8解決


ジャッキー

リンク

2012/6/14(Thu) 17:46:10|NO.47264

自分のゲームの中で「e3dhsp3_toolscamera.hsp」を使ってカメラ回転をやってみようとしましたが、うまくいきません。
カメラを回転させようとすると、8の字で回ってしまいます。
前から使っているカメラは「HSP+Easy3Dで作る3Dアクションゲーム」で紹介されている、3Dモデルの座標を取得して、カメラの注視点とカメラの座標に代入する方法です。
カメラ以外もあまりいじくっていません。初心者なので優しく教えていただけると幸いです。



この記事に返信する


とおりすがり

リンク

2012/6/14(Thu) 22:49:49|NO.47266

8の字とな?
…注視点のまわりを回りながら 近づいたり遠ざかったりしてるのでしょうか…
とりあえず、今作っているカメラのルーチンを見せてもらえますか?



kino

リンク

2012/6/15(Fri) 13:44:49|NO.47267

>自分のゲームの中で「e3dhsp3_toolscamera.hsp」を使ってカメラ回転をやってみようとしましたが、うまくいきません。

カメラをツイスト(ロール)することだったら

E3DSetCameraTwist文で出来そうですね

上下回転のところを以下に変更してみましたー


//上下回転 if k&2 : camdegyaaa += deg if k&8 : camdegyaaa -= deg if( camdegyaaa >= 90.0 ){ camdegyaaa = 89.0 } if( camdegyaaa <= -90.0 ){ camdegyaaa = -89.0 } E3DSetCameraTwist camdegyaaa



ジャッキー

リンク

2012/6/15(Fri) 16:55:12|NO.47268

今、使っているやつはこれです。
カメラ移動は横だけにしようと思っています。

*MoveCamera	
;カメラを作成 ;主人公の座標をカメラ座標とカメラの注視点にセットして ;カメラ座標を微調整し整ます。 E3DGetPos hsid1, saveposx, saveposy, saveposz backposx = saveposx backposy = saveposy + 5000;カメラの位置をY座標+5000増加 backposz = saveposz - 7000;カメラの位置をZ座標7000減少 ;カメラの位置を設定 E3DSetCameraPos backposx, backposy , backposz ;カメラの注視点を設定 E3DSetCameraTarget saveposx, saveposy , saveposz, 0.0, 1.0, 0.0 return



とおりすがり

リンク

2012/6/15(Fri) 19:07:58|NO.47269

カメラ移動は横だけに…というとつまり、主人公の周りをを回るように移動させたい、という意味でしょうか?
kino さんが書いてくれたスクリプトでは思っていたのと違ったのですね?

toolscamera のソースから必要と思われる所を抜き出して、合体させてみました。

*Movecamera k = 0 if keybuf.`X` = 1 : k += 1;Xキーでカメラを右に移動 if keybuf.`Z` = 1 : k += 4;Zキーでカメラを左に移動 E3DGetPos hsid1, saveposx, saveposy, saveposz deg = 2.0 if k&1 : camdegxz += deg if k&4 : camdegxz -= deg if ( camdegxz > 360.0) { camdegxz -= 360.0 } if ( camdegxz < 0.0) { camdegxz += 360.0 } ;三角関数を使ってカメラの位置を計算 E3DSin camdegxz, sinxz E3DCos camdegxz, cosxz backposx = saveposx + sinxz * 7000.0 backposy = saveposy + 5000.0 backposz = saveposz - cosxz * 7000.0 ;カメラの位置を設定 E3DSetCameraPos backposx, backposy , backposz ;カメラの注視点を設定 E3DSetCameraTarget saveposx, saveposy , saveposz, 0.0, 1.0, 0.0 return
こうしたい、ここがわからない、といったことは、相手が正確に分かるように書きかたを工夫すると
回答してもらえやすくなりますし、時間も無駄にせずにすみますね。



ジャッキー

リンク

2012/6/15(Fri) 23:24:40|NO.47271

回りません。



暇人

リンク

2012/6/16(Sat) 02:00:23|NO.47277

>if keybuf.`X` = 1 : k += 1;Xキーでカメラを右に移動
>if keybuf.`Z` = 1 : k += 4;Zキーでカメラを左に移動
`X`じゃ無くて'X'
`と'の違い



ジャッキー

リンク

2012/6/16(Sat) 10:22:23|NO.47283

出来ました!
みなさんありがとうございました。



とおりすがり

リンク

2012/6/16(Sat) 11:11:25|NO.47284

暇人さん、訂正ありがとうございます。
スマホのフォントでは見分けがつきませんでした。
以後気を付けたいと思います。
ありがとうございました。



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