俺に解るように説明する "Armory Engine" 入門+

ゲームエンジン Armory Engine (Armory3D) の使い方を手探りで学んで入門しようって感じかな。

P6.ねぇ、アリシアちゃん☆.02「3rd Person Camera テスト」

f:id:ore2wakaru:20190606212338p:plain

アリシアちゃん移動の前に、簡単な3人称カメラを仕込もうと思う。今回はさらにその前の段階、カメラ位置のテスト。ノードを使ってやってるんだが、床や壁の後ろには回り込まない様には出来た感じだ。

YouTube

これ

問題点:

  • レイキャスト: 髪の毛にあった剛体にもレイが反応するで、髪の毛やスカートなどのシミュレーション用の剛体は全部削除。で、どうやって揺らそっかなー。
ノードトゥリー

要らないと思うけど、貼っておこう。全部で10パーツ。

f:id:ore2wakaru:20190606195626p:plain

以下、部分的に。

f:id:ore2wakaru:20190606195915p:plain

 レイの発信・受信オブジェクト(YouTube 動画の緑色のやつ)間の距離を確定。これで将来的にレイを飛ばす最大距離(最長カメラ距離)を変えたい時、有効か?

 初期設定。

  • "senYoko" と "senTake" はマウスセンシ。見た目 "0.000" になってるけど、中身は "-0.0003"。
  • "limTakeU"、"limTateS" は縦回転のリミット。単位はラジアン
  • "minDis"、"maxDis" はカメラの最小距離、最大距離。
  • Set Mouse Lockでマウスをロック。多分マウスカーソルを画面中央にロックして、マウスカーソルが画面からはみ出さないようにする機能っぽい。

 マウスロックすると、マウスカーソルが消えるしゲーム画面から出られなくなるので、ゲームを [×] で終了させられなくなる。ロックを外す仕組みが必要。

f:id:ore2wakaru:20190606200031p:plain

 マウスの移動での処理。On Mouseの "Moved" とMouse CoordsMovement の組み合わせで移動量を取ってくる。回転させるオブジェクトは "CamPivPiv"。YouTube 動画の水色のやつ。これは "CamPiv" の親。

f:id:ore2wakaru:20190606200244p:plain

f:id:ore2wakaru:20190606200255p:plain

 マウスの移動での処理。回転させるオブジェクトは "CamPiv"。YouTube 動画の青色のやつ。カメラの親。カメラ回転の中心。回転は、"limTakeU"、"limTateS" で回転のリミットがある。

f:id:ore2wakaru:20190606200641p:plain

f:id:ore2wakaru:20190606200735p:plain

 メインルーチン。カメラを動かす部分だから、"Late Update"。上下左右、4つのレイを飛ばすイベントを呼んでる。で "minDis"(カメラまでの一番短い距離)が決定されるので、最後にカメラ位置 "CamPos" をセット。

f:id:ore2wakaru:20190606200745p:plain

 下レイ。レイを飛ばすのはCast Physics Rayリジッドボディーに反応する。(なんでもかんでも反応するみたいで、物理のレイヤーは無いのかな? 髪の毛のリジッドボディーに反応してしまったので、アリシアちゃんが持つ全リジッドボディーを削除した。) 何かに当たってれば、そこまでの距離を "minDis" 最小値に入れる。Noneは「なんもねー」って事?

f:id:ore2wakaru:20190606200755p:plain

 左レイ。Mathの "Minimum" で比較して、こっちの方が距離が短かったら、"minDis" に入れなおす。

f:id:ore2wakaru:20190606200806p:plain

 右レイ。やってることは上と同じ。

f:id:ore2wakaru:20190606200817p:plain

 上レイ。同上。

以上。


 使用してる音源はフリーなハズなんだが、何でか知らんが「侵害している~」って言われんだよな。めんどくさ。