|
|
2013/8/8(Thu) 07:08:46|NO.56205
hgimg3 を使ってますが
OBJ_XFRONT でY軸回転しないようです
不具合ですか
|
|
2013/8/8(Thu) 07:50:53|NO.56206
どうやって使っているのか分からないと、あなたのミスなのか判断
出来ないんだよね。
|
|
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スプライトを作ったんですが
上下から見ると正面を向きましたが
左右からでは向かないようです
|
|
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軸も正面を向く

| |
|
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軸回転させたら画面の中心を軸に回転はしない
|
|
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

| |
|
2013/8/11(Sun) 20:25:20|NO.56284
いなえさんのサイトなら前に目を通しました
結局、個々のオブジェクトにカメラと同じ角度を設定するしかないということですね
もう解決しましたので
皆さんどうもありがとうございました
|
|