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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0808
saracenaOBJ_XFRONT10解決


saracena

リンク

2013/8/8(Thu) 07:08:46|NO.56205

hgimg3 を使ってますが
OBJ_XFRONT でY軸回転しないようです
不具合ですか



この記事に返信する


KA

リンク

2013/8/8(Thu) 07:50:53|NO.56206

どうやって使っているのか分からないと、あなたのミスなのか判断
出来ないんだよね。



saracena

リンク

2013/8/8(Thu) 14:59:27|NO.56214

texload "test.bmp"
addplate m,1, 10,10, 0,0, 100,100, stat
regobj o, m , OBJ_XFRONT

こんな感じで3Dスプライトを作ったんですが
上下から見ると正面を向きましたが
左右からでは向かないようです



KA

リンク

2013/8/8(Thu) 18:34:24|NO.56215

感で答えると、X軸を中心に動いているから問題ないと思います。



暇人

リンク

2013/8/8(Thu) 23:10:12|NO.56225

実際に問題を再現できるスクリプトが無いと意味無い

#include "hgimg3.as" randomize screen 0,640,480,0 cls 4 chdir dir_exe+"\\sample\\hgimg3" *boot hgini addxfile m_xmodel,"font_a.x" ; モデルを読み込む repeat 5 regobj xobj, m_xmodel ; オブジェクトの登録 setpos xobj, rnd(100)-50, rnd(100)-50, rnd(100)-50 ; 初期座標を設定 setefx xobj, $80 loop texload2 "chrome.bmp" addplate m_plate,1,5,5,0,0,256,256,stat repeat 200 regobj obj, m_plate ,OBJ_XFRONT ; オブジェクトの登録 setpos obj, rnd(100)-50, rnd(100)-50, rnd(100)-50 ; 初期座標を設定 setang obj,0,0.5 loop clscolor $80 ; 背景色の設定 setpos HGOBJ_CAMERA, 0,0,0 ; カメラ位置の設定 *main stick key,15+64 if key&128 : end ; カメラをカーソルキーで動かす if key&64 {//CtrlとカーソルキーでXY移動 if key&2 : addpos HGOBJ_CAMERA,0.0, 0.2 if key&8 : addpos HGOBJ_CAMERA,0.0, -0.2 if key&1 : addpos HGOBJ_CAMERA,-0.2 if key&4 : addpos HGOBJ_CAMERA,0.2 } else {//カーソルキーでXY回転 if key&4 : addang HGOBJ_CAMERA,0.0,-0.02 if key&1 : addang HGOBJ_CAMERA,0.0,0.02 if key&2 : addang HGOBJ_CAMERA,0.02 if key&8 : addang HGOBJ_CAMERA,-0.02 } hgdraw ; 描画 hgsync 15 ; 時間待ち goto *main *owari end
自分の環境では問題なくY軸も正面を向く



saracena

リンク

2013/8/9(Fri) 12:56:50|NO.56242

どうやらカメラがZ回転している状態で起こるようです

addang HGOBJ_CAMERA, , , 0.005

と加えてやってみました



暇人

リンク

2013/8/9(Fri) 21:58:26|NO.56250

>どうやらカメラがZ回転している状態で起こるようです
不具合ではなく仕様
plateオブジェクトの見た目が回転しなくて良いなら
回転後のカメラZ軸角度をplateオブジェクトのZ軸の回転にセットすれば良い

//マウスホイール回転でZ軸回転 addang HGOBJ_CAMERA, , , 0.001*mousew getang HGOBJ_CAMERA,crx,cry,crz repeat 200 setang obj-cnt,,,crz loop
これをNO.56225のhgdrawの手前辺りに配置


カメラのZ軸回転に合った角度でオブジェクトを傾けたいなら
任意軸の回転が必要で、全て自前でやるしかない

そもそもカメラがローカル軸の回転じゃないから
そこから考えないとダメかも・・・
X、Y軸回転させてからZ軸回転させたら画面の中心を軸に回転はしない



saracena

リンク

2013/8/10(Sat) 21:00:03|NO.56269

仕様なら、しようがないです
皆さん、お手数おかけしてすみません



 

リンク

2013/8/11(Sun) 00:06:55|NO.56272

いなえの鉛筆っていうサイトに
hgimg3でのローカル軸の回転とかのサンプルがあったよ。



暇人

リンク

2013/8/11(Sun) 02:32:42|NO.56275

オブジェクトのローカルZ軸を回転させるサンプル

objrotfv.hspはNO.56272で紹介されてるサイトにある

#include "hgimg3.as" #include "objrotfv.hsp" randomize screen 0,640,480,0 cls 4 chdir dir_exe+"\\sample\\hgimg3" *boot hgini addxfile m_xmodel,"font_a.x" ; モデルを読み込む repeat 5 regobj xobj, m_xmodel ; オブジェクトの登録 setpos xobj, rnd(100)-50, rnd(100)-50, rnd(100)-50 ; 初期座標を設定 setefx xobj, $80 loop texload2 "chrome.bmp" addplate m_plate,1,5,5,0,0,256,256,stat repeat 200 regobj obj, m_plate //OBJ_XFRONTは不要 setpos obj, rnd(100)-50, rnd(100)-50, rnd(100)-50 ; 初期座標を設定 setang obj,0,0.5 loop clscolor $80 ; 背景色の設定 setpos HGOBJ_CAMERA, 0,0,0 ; カメラ位置の設定 *main stick ky,15+64 if ky&128 : end addang HGOBJ_CAMERA, , , 0.001*mousew//マウスホイール回転でZ軸回転 if ky&64 {//CtrlとカーソルキーでXY移動 if ky&2 : addpos HGOBJ_CAMERA,0.0, 0.2 if ky&8 : addpos HGOBJ_CAMERA,0.0, -0.2 if ky&1 : addpos HGOBJ_CAMERA,-0.2 if ky&4 : addpos HGOBJ_CAMERA,0.2 } else {//カーソルキーでXY回転 if ky&4 : addang HGOBJ_CAMERA,0.0,-0.02 if ky&1 : addang HGOBJ_CAMERA,0.0,0.02 if ky&2 : addang HGOBJ_CAMERA,0.02 if ky&8 : addang HGOBJ_CAMERA,-0.02 } getang HGOJB_CAMERA,crx,cry,crz //現在のカメラ角度(これにcfvを各軸に加算) repeat 200 setang obj-cnt ,crx,cry,crz //とりあえずカメラの角度に合わせる fvset z_axis,crx,-cry,crz //オブジェ角度をセット fvdir z_axis,0.0 ,0.0 ,1.0 //Z軸を指定(上で設定した角度にローカル軸が設定される) selang obj-cnt //操作オブジェ指定 objrotfv z_axis,-crz //オブジェクトのローカルZ軸のカメラ回転分を引く(先にカメラと同じ角度にしてるのでカメラからの基準でオブジェZ軸は回転してない事になる) loop hgdraw ; 描画 hgsync 15 ; 時間待ち goto *main *owari end



saracena

リンク

2013/8/11(Sun) 20:25:20|NO.56284

いなえさんのサイトなら前に目を通しました

結局、個々のオブジェクトにカメラと同じ角度を設定するしかないということですね
もう解決しましたので
皆さんどうもありがとうございました



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