こんにちは!
XRクリエイターの伊東(@ALAKIWebVRAR1)です。
※TwitterでもWebXRの事を中心に情報発信中です。
よかったらフォローお願いします!
Follow @ALAKIWebVRAR1
Unity公式パッケージとなっている「Starter Assets」を使って、三人称視点のゲームのベースを簡単に作ってしまう方法をご紹介します。
簡単すぎ、しかも無料という事実に衝撃を受けました!!
Starter Assetsのインストール
Unity Assetsにブラウザからアクセスします。
「Starter Assets」で検索をかけると、それらしきパッケージが2つ出てきました。
「Third Person Character Controller」と「First Person Character Controller」の2つで、タイトルとサムネの通り、それぞれ「三人称視点」と「一人称視点」ということで、今回は「Third Person Character Controller」を選択してインストールしてみます。
シーンを実行してみる
インストールが完了すると、Unity シーン内の「Assets」フォルダ直下に、「StarterAssets」というフォルダが生成されます。
その中に「ThirdPersonController」というフォルダがありますので、中身のシーンを開いてみましょう。
もうそれっぽい!!
十字キー、または画面左下のスティックでキャラクターを動かせます。
画面右上のスティックは、ぐりぐりと視点だけ変更できます。
後のボタンはジャンプとダッシュですね。
スクリプト類を見てみる
スティック操作のスクリプト
シーン内の「Joystickss_StarterAssetsInputs_Joysticks」というゲームオブジェクトを選択すると、「UICanvasControllerInput」というスクリプトがアタッチされています。
中身をみてみましょう。
「VirtualMoveInput」と「VirtualLookInput」という関数が、先ほど紹介したUI内のスティックに対応しています。
スティックを倒した状態の座標を、Vector2の引数で渡し、StarterAssetsInputsというクラスのインスタンスに渡していますね。
StarterAssetsInputsクラス
次にStarterAssetsInputsクラスをみてみましょう。
StarterAssetsInputsはプレイヤーのGameobjectにアタッチされています。
先ほどのUICanvasControllerInputから送られてきた値を受け取り、StarterAssetsInputsクラスが持つmove、lookなどのVector2に格納しています。
三人称視点のメインスクリプト
StarterAssetsInputsが保持しているmove、lookなどの変数の値を、三人称視点のメインスクリプトが参照し、実際のプレイヤーの向きや位置、プレイヤーを追跡するカメラの視点を変更します。
こちらはプレイヤーにアタッチされている「ThirdPersonController」というスクリプトが担っています。
プレイヤーの進行方向を正しく制御するために、プレイヤーを追跡するカメラとは別のメインカメラの向きを取得して活用しているのがポイントです。
以上が、三人称視点の機能を実装している根幹のスクリプトになっています。
ここらへんの仕組みを理解しておくと、カスタマイズが容易になるかと思います。
とても簡単に実装できるアセットであるからこそ、もっと価値の高い独自性のある機能実装にリソースを割くことが可能になってきます。
ぜひ参考にしてみてください!