PlayerPawnが移動してカメラを左右に振る動作を実装する

ARで使っていたPlayerPawnとLevelだけど、LevelはAR用とNonAR用と分ける必要があって(何故かというとAR用のLevelに何かActorを置いちゃうとカメラがActorを描画しちゃうんで)PlayerPawnはARとNonARで使い分けるようにしようかと

なのでARかNonARかARCore対応機種なら選択できるようにしようかと思う。実行中に分けられたらいいかとも思ったがかなりシステムが複雑になって動作確認が難しくなるのでやめ。

まずはAR対応機種ならウィジットを表示。AR未対応ならそのままNonARのLevelに移動する。

こんな感じでセレクト。NonARのフラグがTRUEの時にはFALSEにして今までのARのLevelに移動する。

今回はVersion4.1でAutoScanがデフォルトになる仕様。

NonARのLevelに移動するとNonARCoreのフラグがTRUEになる。PlayerPawnはこれで動作を振り分ける

NonARCoreのLevelの場合は新たにバーチャルジョイスティックを使う。

これ、この丸いやつ。上が前進、左右、後退で下の一回り小さいのが左右にカメラを振る。

で、実装。まずコントローラを用意する。デフォでは「エンジン→コンテンツ→MobileResources→HUD」にある。

今回はこのデフォルトバーチャルジョイスティックを使う。まずはPJ設定の入力項目にこれを有効にする。

で、表示設定と入力値設定。

インデックス0が左右にふるカメラ用、インデックス1が前進など

そしたら、入力アクションをMoveとLookの2つを作る

中身はこんな感じ。Axis2Dにする。これでX軸、Y軸のAxis値が返される(1~-1のFlot)

そしたら入力マッピングする

これで入力の準備はできた。

そしたらPlayerPownに入力を設定する。が、Pawnはそのままでは動かないので親クラスをキャラクターに変更しとく。

これで自動的にMovecomponentが追加され、動くようになる。で実装は上の図のようにこれだけ。

Moveの関数とLookの関数を用意してるが直接いれてもOK

歩く速度などは調整すればよい。

ちゃんと動かなかったらEventTickなどにLocationなどをセットしてないか確認する。

 

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)