アマゾンバナーリンク

ディスプレイ広告

スポンサーリンク

【2021】新しいStarter Assets FPS TPS用コントローラーの紹介と使い方 【Asset】

2021年6月14日

こんにちは!ジェイです。今までFPSやTPSのゲームをUnityで開発しようと思ったら、こちらのStandard Assets (for Unity 2018.4)をテンプレートとして使って、作成してる人も多かったのではないでしょうか。

そんな人達に朗報で、Unity公式から2021年6月9日に新しいFPS TPSで使えるテンプレートのアセットが登場しました!

記事内広告

Starter Assets – First Person Character Controller

Starter Assets – Third Person Character Controller

次にこの新しいStarter Assetsについての説明します。

Starter Assetsの特徴

  • あらゆるジャンルのゲームに対応できるよう、モジュラー方式で構築されている
  • Unity2020.3LTSに対応
  • ThirdPerson PlayerArmatureは、Humanoidキャラクターリグを使用
  • ビルトインのCharacterControllerコンポーネントを使用

パッケージの依存関係に関する重要な注意事項

  • 一人称/三人称用スターターアセットパッケージは、Input SystemとCinemachineパッケージが必要
  • これらのパッケージは、Starter AssetsパッケージをプロジェクトにインポートするとPackageChecker.csで自動的にインストールされる
  • Input Systemのポップアップに同意し、エディタを再起動すると、New Input Systemが正常にインストールされる


誤って拒否してしまった場合は「window」>「Package Manager」からもInput Systemをインストールできるので問題ありません。(以下の画像を参照)

入力システムの切り替え

プロジェクトをInput Manager(Old)に戻したい場合や、Input System Package(New)とInput Manager(Old)を併用したい場合は、「Edit」→「Project Settings」→「Other Settings」のPlayerを選択すると、「Active Input Handling」で変える事ができます。

現在は「Input System Package(New)」が選択されているのがわかります。

ここで好みの設定に切り替えることができますが、Starter Assetsは、「Input Manager (Old)」の設定では動作しませんので、ご注意ください。

Playground Scene

Assets/StarterAssets/ThirdPersonController/Scenes または、Assets/StarterAssets/FirstPersonController/Scenesには、Playgroundというシーンがあります。ここでは、Starter Assetsコントローラをシンプルなプレイグラウンド環境で使用することができます。

新規シーンにスターターアセットを設定する

新しいシーンにキャラクターコントローラーを追加する場合、簡単な設定が必要ですが、これにはいくつかの方法があります。

TPS版のセットアップ方法

詳しい事は後でさらに解説しますが、一番わかりやすいのが、以下の汗人柱さんのTweetです。

【Unity公式 / 新作無料アセット】
FPSおよびTPSキャラクターコントローラーのスターターアセット 2021年6月9日リリース

▼ Starter Assets – Third Person Character Controller
https://assetstore.unity.com/packages/essentials/starter-assets-third-person-character-controller-196526?aid=1011lGbg&pubref=tw

▼ Starter Assets – First Person Character Controller
https://assetstore.unity.com/packages/essentials/starter-assets-first-person-character-controller-196525?aid=1011lGbg&pubref=tw

#Unity

【TPS版のセットアップ方法】
実際にユニティちゃんに差し替えてみました。

  • Unity 2020.3.0以上にて、新規プロジェクト作成
  • アセットをインポート
  • サンプルシーンを開く(もしくは新規シーン)
  • Prefabをシーンに入れる
  • 画像の手順で設定で完成!

※ Animatorの参照先を変更すれば完璧

  1. PlayerArmatureをHerarchyにドラッグ&ドロップして、右クリックでPrefab/Unpackを選ぶ
  2. PlayerArmatureの下にUnityChanのプレハブを入れる(この時にUnityChanについてるコンポーネントはすべて削除しましょう)
  3. PlayerArmatureのAnimatorのAvatarをUnityChanAvatarをセットする
  4. PlayerFollowCameraを選択して、CinemachineVirtualCameraのFollorにPlayerCameraRootをセットする

Originally tweeted by AssetSaleLove @汗人柱 (@AssetLove) on 2021年6月9日.

ドラッグ&ドロップ(入れ子になったプレハブ)

  1. Assets/StarterAssets/ThirdPersonController/Prefabs または、Assets/StarterAssets/FirstPersonController/Prefabs に移動します。
  2. NestedParentArmature_Unpackのように、目的のNested Prefabを探します。これは、新しいシーンでPlayerArmatureを設定するのに必要なものがすべて含まれている入れ子のプレハブです。
  3. NestedParentプレハブをHerarchyにドラッグし、右クリックして「Unpack」を選択してください。入れ子になった親のコンテンツをシーンにドラッグすれば、準備完了です。

自動設定

Tools > Starter Assetsで、設定したいコントローラの種類を選択します。例えば「Reset Third Person Controller Armature」です。これで、シーンに新しいPlayerArmatureがシーンに設定され、すべてが接続されます。

このツールを使って、現在のプレイヤーの要素をデフォルトに戻すこともできます。

手動設定

PlayerCapsuleまたはPlayerArmatureを新しいSceneにドラッグしてください。(UnityChanのモデルを使う場合は、PlayerArmature)

  1. PlayerFollowCameraをSceneにドラッグします。
  2. インスペクタのCinemachineVirtualCameraのFollowで、PlayerCameraRootオブジェクトを選択します。
  3. メインカメラをPrefabsフォルダ内のMainCameraプレハブに置き換えるか、既存のメインカメラにCinemachineBrainを割り当ててください。再生ボタンを押せば、完成です。

※先程TPS版のセットアップ方法で説明した方法がこの手動設定です。

モバイル設定

Starter Assetsパッケージには、モバイルデバイス用のUIオーバーレイとInputセットアップが付属しています。
Playground シーンでは、階層の中にすでにUI_Canvas_StarterAssetsInputs_Joysticks が適切に接続されています。これを有効にすると、使えるようになります。

入力方式の変更

ジョイスティックではなく、タッチゾーンでの入力を希望する場合は、以下にアクセスしてください。
Assets/StarterAssets/Mobile/Prefabs/CanvasInputs に行き、代わりにUI_Canvas_StarterAssetsInputs_TouchZones を階層に追加して、他のUIキャンバスを削除します。
UI Canvas Controller Componentで、インスペクタの「Output」にある「Starter Assets Inputs」にPlayer Prefabを割り当ててください。

新規シーンでのモバイルUIの設定

新しいシーンでモバイル入力を設定するには

  1. 上記の「新しいシーンでスターターアセットを設定する」で説明したように、お好みのプレーヤープレハブを設定します。
  2. 次に、Assets/StarterAssets/Mobile/Prefabs/EventSystemに行き、UI_EventSystem Prefabを見つけて、これをヒエラルキーにドラッグします。
  3. プロジェクトから、プレーヤープレハブを選択します。Player Input Component」の下にある「UI Inputモジュール」を選択します。ここで、UI_EventSystem Prefabを選択します。次に、使用したい特定の UI を追加する必要があります。
  4. Assets/StarterAssets/Mobile/Prefabs/CanvasInputs」を追加します。
  5. UI_Canvas_StarterAssetsInputs_TouchZones」または「UI_Canvas_StarterAssetsInputs_Joysticks」を好みの制御方法に応じて、階層に追加します。
  6. UI Canvas を選択して、UI Canvas Controller Componentのインスペクタで、Player PrefabをOutputのStarter Assets Inputsに割り当てます。

これで、お好みの入力方法でモバイルデバイス上でビルドするための準備が整いました。

モバイルのBuild設定

モバイル機器でのビルドに慣れていない方は、以下のドキュメントをご覧ください。

ビルドターゲットを変更できるようにするために、エディタのバージョンにAndroid/iOS Build Supportを追加してください。ビルドターゲットを変更することができます。

エディターにモジュールを追加し、AndroidまたはiOSでビルドするためにBuild Settingsを調整する方法の詳細については、以下のドキュメントを参照してください。

AndroidまたはiOSでビルドするためのBuild Settingsの調整方法については、以下のドキュメントを参照してください。

URP/HDRPの互換性

デフォルトでは、Starter AssetsマテリアルはBuilt-in Render Pipelineを使用しています。URP や HDRP で使用したい場合は、パッケージをURPやHDRPで使用したい場合は、マテリアルをアップグレードする必要があります。
詳しくは、以下の公式ドキュメントの指示に従ってください。

Assets/StarterAssets/Environment/Art/Materials/URP_HDRP_ShaderGraph.には、URP/HDRPプロジェクト用にカスタマイズ可能なTriplanar Materialが用意されています。

Lightingの設定(HDRP)

プロジェクトをHDRPにアップグレードした場合は、プレイグラウンドの照明を有効にする必要があります。
Hierarchyの中で、Lighting の親に Directional Light を選択すると、照明が正しく表示されます。リアルなライティングを目指しているのであれば、「強度」が100000luxに設定されていることを確認してください。最後に、「Window」→「Rendering」→「Lighting」と進み、「Generate Lighting button」ボタンを押します。

まとめ

今回かなり久しぶりに、Unity公式の新しい3Dアクションゲームなどに使えるテンプレートのアセットが登場しました。入力システムなども、InputManagerからInputSystemへの切り替わり、新しいバージョンのUnityを使えるようにする意味でも、重要なアセットですし、無料なので、ぜひ一度触ってみることをおすすめします。

アイコンはAI・コンタクトさんからお借りしました。

+5