|
|
2023/7/1(Sat) 20:15:57|NO.99660
hgimg4で、オブジェクトの背面からカメラを映すようなことを、させてみたいみたいのですが、
動くキャラに後ろから、カメラがくるようなことを実現できません。fvdirを使ってしてもうまく
うまくいきません。fv系の命令を組み合わせたのですが、どうしても実現できませんgetposで
キャラの位置を取得して、setposでカメラを設定すれば簡単にカメラが付いてきますが、
真後ろにカメラを、設定したいのです。スクリプトコードを示してくれる人がいたら助かります。
tamaneモデルで後ろにカメラが付いてくるようなスクリプトで、お願いします。
|
|
2023/7/1(Sat) 21:34:01|NO.99662
テキトーやけど、、、こんな感じかな?
実はあたしもよくわかってないけど、ごめんね、、
もしかしたらもっといい方法があるかも。。
#include "hgimg4.as"
gpreset
setcls CLSMODE_SOLID, $000000 ; 画面クリア設定
gpload id_tamane,"res/tamane" ;たまね
setscale id_tamane,0.05,0.05,0.05
gpbox id_box,100,$FF0000 ;床
setpos id_box,0,-50,0
*main
redraw 0
addpos id_tamane,0,0,0.1 ;勝手に進む
stick keys,1+4
if keys&1{addang id_tamane,0, 0.01,0}
if keys&4{addang id_tamane,0,-0.01,0}
getang id_tamane,x,y,z
ddim fv,3
fv=-x,-y,-z
fvdir fv,0,15,-30 ;ローカル座標
getpos id_tamane,x,y,z
setpos GPOBJ_CAMERA,x+fv.0,y+fv.1,z+fv.2;ローカル座標⇒ワールド座標
gplookat GPOBJ_CAMERA,x,y+15,z ;注視点
gpdraw
redraw 1
await 1000/60
goto *main
|
|
2023/7/2(Sun) 15:46:34|NO.99671
ありがとうございますさっそくスクリプトを打ち込んでみます
|
|
2023/7/3(Mon) 20:54:43|NO.99677
スクリプトを打ち込んでみましたが、左右のキーをおしながら
前進させても回転方向にキャラが進まずカメラも後ろからの視点に、
なりませんでした。
引き続きスクリプトを示してくれる方がいましたら助かります
お願いします
|
|
2023/7/3(Mon) 21:43:24|NO.99678
ん?後ろからの視点にならない?
おかしいな
うちはなるけど、なんかおかしいかな
|
|
2023/7/3(Mon) 22:46:46|NO.99679
buhioさんのスクリプトでカメラは後ろになっていると思うけど、
回転方向にキャラは進まないので、床が赤いからそう見えてしまってるだけなのか?
(z軸に進むので)
#include "hgimg4.as"
chdir dir_exe+"\\sample\\hgimg4"
gpreset
setcls CLSMODE_SOLID, $000000 ; 画面クリア設定
gpload id_tamane,"res/tamane" ;たまね
setscale id_tamane,0.05,0.05,0.05
gpbox id_box,100,$FF0000 ;床
setpos id_box,0,-50,0
*main
redraw 0
; addpos id_tamane,0,0,0.1 ;勝手に進む ここはコメントアウト
stick keys,1+4
if keys&1{addang id_tamane,0, 0.01,0}
if keys&4{addang id_tamane,0,-0.01,0}
getang id_tamane,x,y,z
; 足した 進む --------------------
fv=-x,-y,-z
fvdir fv,0,0,0.1
addpos id_tamane,fv.0,fv.1,fv.2
; ここまで-----------------------
fv=-x,-y,-z
fvdir fv,0,15,-30 ;ローカル座標
getpos id_tamane,x,y,z
setpos GPOBJ_CAMERA,x+fv.0,y+fv.1,z+fv.2;ローカル座標⇒ワールド座標
gplookat GPOBJ_CAMERA,x,y+15,z ;注視点
gpdraw
redraw 1
await 1000/60
goto *main
これで違ったら、何か後ろ違いなのかもですね。
|
|
2023/7/6(Thu) 14:50:28|NO.99691
ぶたさんusagiさんありがとうございます。スクリプト打ち込んでみます。
|
|
2023/7/6(Thu) 14:52:22|NO.99692
ぶたさんusagiさんありがとうございます。スクリプト打ち込んでみます。
|
|
2023/7/9(Sun) 00:28:58|NO.99704
親子関係にしてみたらどう。
動かすキャラを親にして、カメラをその子にする。
そうすれば自動的に子が親に追随してくるんじゃ。
具体的には、objchildだっけ?
unityだとカメラをDrag&DropでOKだけど。
|
|
2023/7/9(Sun) 10:11:19|NO.99707
>>羊さん、うしさん
残念ながら、hgimg4にobjchildは無いのです。
なので、基本的には上記のfvdirを使った親子関係を使うことになります。
必要な処理を関数化するなどすれば、かなり応用できると思います。
なお、クオータニオンを使えばもっと自由にオブジェクトを動かせるようになりますが、標準命令には無いので自作関数で用意する必要があります。
いろんな方がクオータニオン関数をすでに公開されておりますが、
わたくしは、偶然見つけた https://hakuhin.jp/as/quaternion.html
こちらのアクションスクリプトを、HSPに翻訳しながら勉強いたしました。
(生まれて初めて数学の本も買った^^)
(かなり苦しんだので、ドMの自称プログラマーの方は挑戦してみましょう!)
クオータニオン、、、
共役クオータニオン、、、
ベクトル、、内積、、、外積、、、、、、
でもジンバルロックるオイラーが好き、、
数学から逃げ続けたおっさんのたわごとです^^
|
|
2023/7/11(Tue) 10:55:54|NO.99713
>>GENKIさん
軸モデルいただきます。
Quat関数群、ごちそうさまでした。
|
|
2023/7/13(Thu) 15:32:35|NO.99729
usagiさんの、スクリプト打ち込んでみたら床が赤でちょっと見にくかったけど、
コードからして回転して進んでる様です。buhioさんのスクリプトも僕のもと
作ってたスクリプトと合わせて作ったから出来なかったのかもしれません。
ありがとうございました。
|
|
2023/7/16(Sun) 15:12:17|NO.99747
解決の欄にチェックいれるの忘れてました
|
|