以前からUnityを使ったゲーム制作に興味はあったものの、なかなか時間を割けずにいましたが、またゲームを作ってみたい!というモチベーションがアップしてきました。そういうわけで、今後は少しずつ時間をとってUnityを使ったゲーム開発にもチャレンジしてみることにしました!

この記事では、ゲーム開発の研究の第一弾として、3Dゲームのステージとなるシーンの作り方、またキャラクターコントロールの方法をおさらいしてみたいと思います。主に自分が学んだことを備忘録としてまとめることを目的としてまとめてはいますが、自分と同レベルの初心者の方(公式マニュアルやチュートリアルで基礎的なことをざっと学んでいる方)にも、なるべく分かりやすいように心掛けながら、まとめていきたいと思っています!

そんなわけですが、偶然このページに来てくださった方、どうか最後までお付き合いいただければ幸いです!

スポンサーリンク




目次

  1. この記事で扱う内容と前提条件
    1. この記事で扱う内容
    2. この記事で学ぶための前提条件
  2. Unity Asset Storeで無料のアセットを入手
    1. Starter Assets – Third Person Character Controller
    2. Free Island Collection
    3. Unity-Chan! Model
  3. 新規Projectの作成
  4. 各Assetをインポートしてシーンに適用するまで
    1. 各Assetsのダウンロードとインポート
    2. Sceneの変更
    3. Third Person Character Controllerの追加
  5. 各Prefabの設定をInspectorで調整する
    1. ユニティーちゃんの配置
    2. Componentの移植
    3. Playerの変更とPlayerArmatureの非表示
    4. 各Componentの設定変更
    5. PlayerFollowCameraがPlayerキャラクターを画面中央に捉えるように設定するには?
    6. ユニティーちゃんが動かせるか試してみよう!
  6. 無限ジャンプを解消するためコントローラーを調整する
  7. GameViewでPlayしてみよう!
    1. ゲームコントローラーで操作したい場合
    2. ゲームコントローラーのキー操作について
  8. まとめ

1. この記事で扱う内容と前提条件

1-1. この記事で扱う内容

まず最初にこの記事で扱う内容ですが、この記事では「Unity Asset Store」で入手した無料のAssetを使って3Dゲームの基礎的なシーンの設定方法、及びPlayerのコントロールの方法について学習していきます。

舞台となるのは無人島。そこにユニティーちゃんを配置して、キーボードもしくはゲームコントローラーを使ってユニティーちゃんをあちらこちら気ままに探検させてみたいと思います。

現時点では、敵を倒すとか、宝を見つけるとかゲーム的な要素は一切ありませんが、まずはゲームの舞台を整えることを学んでみようというわけです。ちなみに、この記事で扱う範囲ではコードは一切記述する必要はなく、Unityの画面内の設定のみで実現することができます。

1-2. この記事で学ぶための前提条件

この記事を書くにあたり、当方が使用した環境、及びこの記事の対象者のスキルを明記しておきたいと思います。

2. Unity Asset Storeで無料のアセットを入手

それでは早速、必要な材料を入手していきましょう。この記事では次の3つのAssetが必要になります。まずは「Unity Asset Store」にアクセスしていただき、必要なAssetをダウンロードしておいてください。

2-1. Starter Assets – Third Person Character Controller

Unityが配布している三人称視点カメラとロボットのキャラクターがセットアップされたAssetです。キャラクターをコントロールするために使用します。キャラクターを動かして遊べるサンプルシーンも付属していますが、今回使用するのは、シーンもキャラクターも使用せず「StarterAssetsThirdPerson」コントローラーと「PlayerFollowCamera」のみを使用します。

https://assetstore.unity.com/packages/essentials/starter-assets-third-person-character-controller-196526#description

2-2. Free Island Collection

それぞれ地形の異なる広大な無人島のSceneが5つ含まれています。この記事では「Scene 2」を使います。

https://assetstore.unity.com/packages/3d/environments/landscapes/free-island-collection-104753#description

2-3. Unity-Chan! Model

言わずと知れたUnity Technologies Japanが 提供する開発者のためのオリジナルキャラクター「ユニティちゃん」です。「StarterAssetsThirdPerson」コントローラへの差し替え方法を学ぶため使用します。

© Unity Technologies Japan/UCL

https://assetstore.unity.com/packages/3d/characters/unity-chan-model-18705#description

3. 新規Projectの作成

必要なAssetが入手できたら、早速プロジェクトを作成していきたいと思います。

まずは「Unity Hub」を起動して、画面右上の「New Project」をクリックしてください。下記の画面が現れたら、「3D」を選択して「Project name」の項目に任意の名称を入力します。ここでは「Unity-Chan! Adventure」としてみました。

入力が完了したら「Create project」をクリックします。

4. 各Assetをインポートしてシーンに適用するまで

次に、既に「Unity Asset Store」で購入済みになっている各Assetをダウンロードしてインポートしていきます。

4-1. 各Assetsのダウンロードとインポート

メニューバーの「Window > Package Manager」を開いて、タブのすぐ下の「」の横をクリックし「My Assets」を選択すると、購入済みのAssetの一覧が表示されますので、それぞれクリックして画面右下の「Download」をクリックします。

Downloadが完了すると、上図のように「Import」ボタンが現れますので、クリックして、ProjectにImportします。

既に紹介した「Starter Assets – Third Person Character Controller」、「Free Island Collection」、「Unity-Chan! Model」を3つ全てを同様にImportしておいてください。

4-2. Sceneの変更

この時点では地面すらない、空のみのSceneが表示されている状態だと思いますが、Importした無人島のSceneを選択して開いてみましょう。

Projectタブ内の「Free Island Collection > Scenes」というフォルダを開いてください。その中に5つのSceneファイルがあるはずですが、そのうちの一つ(この記事では「Scene 2」を使用)をコピーし、別の「Scenes」内にペーストします。

ちなみに、New Project作成時に生成された空っぽのSceneは使いませんので、右クリックしてDeleteしておいてください。「Scene 2」をただの「Scene」と名称を変更してからダブルクリックします。すると上図のような無人島のSceneが開くはずです。

Free Island Collection > Scenes」内のSceneファイルに直接変更を加えてしまっても特に問題はないのですが、大元のSceneファイルは取っておきたかったので、このようにしています。このようにProjectフォルダ内は、ゲーム制作者が常に整理整頓しながら作り込んでいかないと、後でごちゃごちゃに散らかってしまい、使われているファイルがどこにあるのか分からなくなってしまうので、このような整理整頓の癖を日頃からつけておいた方がよいと思います。

4-3. Third Person Character Controllerの追加

次は「Starter Assets – Third Person Character Controller」をSceneに適用してみたいと思います

Tools > Starter Assets > Reset Third Person Controller Armature」を選択します。すると広大な無人島のSceneの端っこの方にロボット「PlayerArmature」が現れるはずです。

ちなみに「Armature(アーマチュア)」とは、3Dモデリング関連の用語としてよく出てくるものですが、3Dモデルの「骨格」のような意味を持ちます。素人を意味する「Amature(アマチュア)」ではありません。

5. 各Prefabの設定をInspectorで調整する

さて、無人島の端っこにロボットが現れたはずですが、Hierarchyタブ内に「PlayerArmature」というPrefabが追加されていることにも注目してください。

島の端っこのままだと作業がしずらいので、表示されたロボットを無人島の真ん中あたりに移動させてやりましょう。Hierarchyタブ内の「PlayerArmature」をクリックし選択した状態にしたまま、Inspectorタブの「Transform > Position」の座標を「X:525 Y: 65.95 Z: 535」に変更してみてください。これでPlayerArmatureが無人島内の窪地に移動するはずです。

5-1. ユニティーちゃんの配置

つぎはいよいよユニティーちゃんも無人島に上陸させます。

ユニティーちゃんのPrefabはProjectタブ内の「unity-chan! > Unity-chan! Model > Prefabs > unitychan_dynamic」を使います。これを上図を参考にしてHierarchyタブにドラッグしてやります。

ただドラッグしただけだと、ユニティーちゃんも無人島の端っこに配置されてしまうので、すでに配置したPlayerArmatureのポジションをコピペしてやります。ポジションのコピペのやり方は上図を参考にしてみてください。画面キャプチャをクリックしてもらうと拡大することができます。

ポジョンを同一にするとそれぞれの3Dモデルが合体した気持ち悪い状態になります(笑)しかも、現時点ではユニティーちゃんを配置しただけなので、全くコントロールできない状態です。

5-2. Componentの移植

以後はPlayerArmatureにセットアップされた各Componentをユニティーちゃんに移植していきます。また設定値なども適宜変更してやらなければなりません。

あれこれ変更を加えますので、PrefabをUnpackして大元のインスタンスから独立させます。

上図を参考に、Hierarchyタブ内の「PlayerArmature」及び「unitychan_dynamic」をそれぞれ右クリックしてUnpackしてください。

Unpackができたら「PlayerArmature」のInspectorタブの下に5つのComponentがあることに注目してください。

  • Character Controller
  • Third Person Controller (Script)
  • Basic Rigid Body Push (Script)
  • Starter Assets Inputs (Script)
  • Player Input

これから一つずつ「unitychan_dynamic」のInspectorタブにコピペしていきます。コピペは各Component名のある右端の3点リーダーをクリックして行います。

PlayerArmature」側のInspectorタブから一つずつ「Copy Component」して「unitychan_dynamic」側の最後のComponentの3点リーダーの「Paste Component As New」していきます。ちなみに「Player Input」は「Character Controller」に付随して自動でペーストされます。

上図は貼り付け直後の「unitychan_dynamic」側のInspectorタブの様子ですが、元々あった「Idol Changer (Script)」「Face Update (Script)」「Random Wind (Script)」は、ひとまず不要ですのでチェックを外しておいてください。

※ユニティーちゃんの髪の毛を常に風になびかせたい場合は、「Random Wind (Script)」はあってもいいかもしれません。

5-3. Playerの変更とPlayerArmatureの非表示

次いで「PlayerArmature」と「unitychan_dynamic」が、まだ合体した気持ち悪い状態になので、これを解消します。

PlayerArmature」のInspectorタブすぐ下にあるチェックを外して「Tag」を「Untagged」にしておきます。これでPlayerとしての役割を解除して、非表示にできます。

逆に「unitychan_dynamic」は「Player」にしてやります。

これで無人島に見えているのはユニティーちゃんだけになるはずです。

5-4. 各Componentの設定変更

今度は移植した各Componentの設定に必要な変更を加えていきます。まずはユニティーちゃんをコントロールするために必要な設定変更です。

unitychan_dynamic」のInspectorタブ内の「Animator > Controller」をProjectタブ内の「StarterAssets > ThirdPersonController > Character > Animations > StarterAssetsThirdPerson」に変更します。変更は下図のようにドラッグ&ドロップでOKです。

今度は「unitychan_dynamic」のInspectorタブ内の「Player Input > Actions」をProjectタブ内の「StarterAssets > InputSystem > StarterAssets」に変更します。

今度はカメラ関連の設定変更になりますが、「unitychan_dynamic」のInspectorタブ内の「Third Person Controller (Script) > Cinemachine Camera」をProjectタブ内の「unitychan_dynamic > LookPos」に変更します。

加えてHierarchyタブ内にある「PlayerFollowCmera」側にも変更が必要です。まず変更を加える前に、このPrefabを前述の方法でUnpackしておいてください。

※このキャプチャでは「PlayerFollowCmera」がまだUnpackされていないことに注意してください。Unpackされると、キュービックアイコンが白抜きの線アイコンになります。

Unpack後、上図のように「PlayerFollowCmera」のInspectorを表示し、その中にある「CinemachineVirtualCamera > Follow」の設定を「unitychan_dynamic > LookPos」に変更しておいてください。これでカメラがユニティーちゃんに追従してくれるはずです。

5-5. PlayerFollowCameraがPlayerキャラクターを画面中央に捉えるように設定するには?

加えてもう一つ。「PlayerFollowCmera」は、デフォルトではPlayerキャラクターを画面左寄りに捉えて、キャラクターの進行方向が画面中央に見えるような設定になっています。これが嫌な場合はこのInspectorの「Body > Shoulder Offset」のXYZ座標を全て「0」にしておくとよいと思います。

5-6. ユニティーちゃんが動かせるか試してみよう!

ここまでお疲れ様でした。ひとまずこれでユニティーちゃんをコントロールしてあたりを散策できるようになったので、画面上部中央の「▶︎」をクリックして動作を確認してみましょう!

キーボードの矢印キー「↑←↓→」もしくは「WASD」でユニティーちゃんを歩かせることができるはずです!また「Shift」キーを押すと走ります。うまく動かすことができたでしょうか?

6. 無限ジャンプを解消するためコントローラーを調整する

ジャンプさせるには「Space」キーを押します。…あれ?ユニティーちゃんが無限にジャンプを繰り返してしまうではないですか!なんてこった…。

当初、自分もこれにはビビってしまいましたが、これを解消するにはさらに調整が必要なようです。「unitychan_dynamic」のInspectorタブ内の「Third Person Controller (Script) > Grounded Offset」の値を変更してみてください。

ユニティーちゃんの足元を拡大してみると緑色の球体が地面の上に見えているのですが、これを地中に完全に沈める必要があるようです。デフォルトでは「-0.14」となっていると思いますが、これをこの球体の半径「Grounded Radius」と同じ「0.28」にしてみてください。

さらに「Character Controller」がユニティーちゃんをすっぽり覆うカプセル状の緑色の線として描かれていますが、これは「PlayerArmature」にぴったりなサイズのままなので、この値も調整します。「Center」を「0.8」に、また「Hight」を「1.6」にしてみてください。

これでユニティーちゃんにピッタリサイズになりました。ユニティーちゃんの身長は約150cmのようですが、リボンも含めることを踏まえると「1.6」程度が良さそうです。

さて、これでどうでしょうか?再び、画面上部中央の「▶︎」をクリックして動作を確認してみましょう!

お〜、今度はちゃんとジャンプしてくれるようになったのではないでしょうか?

7. GameViewでPlayしてみよう!

お疲れ様でした!これでユニティーちゃんと一緒に無人島を冒険できそうです。画面上部中央の「▶︎」をクリックしてあたりを散策してみましょう!

7-1. ゲームコントローラーで操作したい場合

キーボードでも操作できますが、「Starter Assets – Third Person Character Controller」は、市販のゲームコントローラーにも対応しています。以下の製品で問題なく動作することを確認できました。

FONLAM Switch対応 コントローラー 無線 ゲームパッド プロコン 背面ボタン Switch/Android/IOS/PC全対応 ゲームコントローラー 6轴ジャイロセンサー 連射 振動 高耐久ボタン 重力感応 キャプチャー機能 スイッチ対応 ワイヤレス/Bluetooth接続 pro controller タブレット適用 無線有線二モデル 反応速い マクロ対応 日本語説明書 (ブラック)

※上記のリンクはamazonへのリンクとなっています。

7-2. ゲームコントローラーのキー操作について

左スティック:ユニティーちゃんの操作
右スティック:カメラの操作
L2ボタン:左スティックと併用で走る動作
Aボタン:ジャンプ動作

8. まとめ

さて、いかがだったでしょうか?自分の場合、以前にもUnityは本当に少しだけいじったことはあったのですが、その後ほとんど使っていなかったため、ほとんど操作方法を忘れていましたが、だいぶ感覚を取り戻してきました。今後は、さらに今回作ったものをベースにゲームらしく機能を加えていきたいと思っています!

参考にさせていただいたブログ:

【Unity2021】Starter Assetsでユニティちゃんを動かす
https://nekojara.city/unity-starter-assets-unity-chan

[Unityゲーム開発]キャラクターがジャンプし続けてしまう理由と解決方法
https://game-shiba.com/?p=166

クレジット:

© Unity Technologies Japan/UCL

※「ユニティーちゃん」はUnity-Chan License (UCL)の下に配布されており、当サイトでもこのライセンス条項に基づき使用させていただいております。