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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
0701
hgimg4でモデルの後ろからカメラがついてくる。13解決


リンク

2023/7/1(Sat) 20:15:57|NO.99660

hgimg4で、オブジェクトの背面からカメラを映すようなことを、させてみたいみたいのですが、
動くキャラに後ろから、カメラがくるようなことを実現できません。fvdirを使ってしてもうまく
うまくいきません。fv系の命令を組み合わせたのですが、どうしても実現できませんgetposで
キャラの位置を取得して、setposでカメラを設定すれば簡単にカメラが付いてきますが、
真後ろにカメラを、設定したいのです。スクリプトコードを示してくれる人がいたら助かります。
tamaneモデルで後ろにカメラが付いてくるようなスクリプトで、お願いします。



この記事に返信する


buhio

リンク

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

ん?後ろからの視点にならない?
おかしいな
うちはなるけど、なんかおかしいかな



usagi

リンク

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だけど。



buhio

リンク

2023/7/9(Sun) 10:11:19|NO.99707

>>羊さん、うしさん
 残念ながら、hgimg4にobjchildは無いのです。

なので、基本的には上記のfvdirを使った親子関係を使うことになります。
必要な処理を関数化するなどすれば、かなり応用できると思います。

なお、クオータニオンを使えばもっと自由にオブジェクトを動かせるようになりますが、標準命令には無いので自作関数で用意する必要があります。

いろんな方がクオータニオン関数をすでに公開されておりますが、
わたくしは、偶然見つけた https://hakuhin.jp/as/quaternion.html
こちらのアクションスクリプトを、HSPに翻訳しながら勉強いたしました。
(生まれて初めて数学の本も買った^^)
(かなり苦しんだので、ドMの自称プログラマーの方は挑戦してみましょう!)

クオータニオン、、、
共役クオータニオン、、、
ベクトル、、内積、、、外積、、、、、、
でもジンバルロックるオイラーが好き、、

数学から逃げ続けたおっさんのたわごとです^^



GENKI

リンク

2023/7/9(Sun) 18:39:24|NO.99708

HSP3でクォータニオンと聞いて来ました!

クォータニオン計算モジュール
https://mclab.uunyan.com/dl/dl60.htm



buhio

リンク

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

解決の欄にチェックいれるの忘れてました



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