玉転がし
Roll a Ball
【事前学習】前回学んだ機能を再確認しておきましょう。
Unityの公式チュートリアル 「Roll a Ball 」は、アセットをインポートするこなく、一からプロジェクトを作成していく手順を学べる点で初心者に向いています。前回までの「枠内を転がるボール」で基本操作をマスターできていれば、本チュートリアルは比較的容易に学べるでしょう。
チュートリアルの進め方
公式ページにはチュートリアルがYouTubeの動画で示されています。こういったチュートリアルには日本語が無いものも多数ありますが、本チュートリアルは幸い日本語の字幕が提供されています。YouTubeの設定(歯車のアイコン)をクリックして字幕を日本語に変更してください。また、余力のある方はYouTubeは再生速度を変更できますので、少し速度を落として英語のリスニング能力を養うのも良いでしょう。
Introduction to Roll-a-Ball
最初の動画で本プロジェクトの一連の流れを把握します。
Environment and Player
Setting up the Game
プロジェクトの新規作成
(0:00~1:20)
動画で使われているUnityのバージョンは過去のものであり、幾つかの場所で読み替えが必要です。現在のバージョンでは新規プロジェクトの生成後、既にScenesフォルダとその中にSampleSceneが作成されているので_ScenesフォルダやMiniGameのシーンを作成する必要はありません。以前と比べると初心者にとってかなりわかりやすくなったと思います。
新版ではUnity HubのTemplate選択でレンダリングの効率化がなされる?「Universal Render Pipeline」を選択していますが手数が増えますので、通常の「3D」でもOKです。
ウィンドウレイアウト
ウィンドウのレイアウトが現在のバージョンとかなり異なっています。実はUnityのウィンドウの配置や大きさは自由に変更できます。動画のレイアウトにするには、Unityの一番右上の「Default」となっているレイアウトを選択するプルダウンメニューで「2 by 3」に切り替えて、ProjectウィンドウのタブをドラッグしてHierarcyウィンドの下に持っていくと比較的簡単に実現できます。特に動画と同じウィンドウレイアウトにする必要はありませんが、動画でのレイアウトのメリットはSceneウィンドウとGameウィンドウが常に両方とも表示されている点ぐらいかと思います。要は各ウィンドウの役割を理解していれば、どこにあってもよく、あとはその時の反復操作に応じてより楽なレイアウトを選べばよいのです。
入力数値
オブジェクト名 | 種類 | 値 | Material |
---|---|---|---|
Ground | Plane | Position(0,0,0) Scale(2,1,2) | BaseMap(130,130,130) Smoothness 0.25 |
Player | Sphere | Position(0,0.5,0) Scale(1,1,1) | BaseMap(0,220,255) Smoothness 0.75 |
Directional Light | N/A | Position(0,3,0) Rotation(50,50,0) Color(255,255,255) | N/A |
視点移動について
- 視点移動のモード
- 最初のうちは、左上のツールバー(6つのボタン)のうち、一番左の「ハンドツール(手のひら)」のボタンが押されている時が視点移動のモード、それ以外のボタンが押されている時はオブジェクトの編集モードであることを意識しましょう。
- シーンGizmo
- シーンビューの右上にあります。これにより各座標軸方向のビューを切り替えることができます。また、透視投影と平行投影の切り替えもできます。
- 視点の平行移動
- ハンドツールが押された状態で、マウスの左ドラッグで視点の平行移動ができます。矢印キーでも左右移動ができます。
- 視点の回転
- 視点の平行移動のモードでAltキーを押すと、ハンドツールが手のひらから目のマークに変わり視点の回転モードになります。
- 回転の中心(フォーカス)
- Hierarcyウィンドウで任意のオブジェクトを選択した状態で、カーソルをシーンビュー内に移動し(重要)、「F」キーを押すとそのオブジェクトをシーンビュー内でセンタリングできます。以降、このオブジェクトが視点回転の中心になります。
- ズーム
- マウスのスクロールボタンでズームができます。
詳細はリファレンスマニュアルを参照してください。
Environment and Player
Moving the Player
Input Sytem を使うモードに切り替える
- Window/PackageManagerで+ボタンの横のプルダウンメニューでUnity Registryに切り替えるとInput Systemが表示されるようになるので、これをInstallする(Installボタンを押す)。BackEndを起動するかと問われるのでyesのボタンを押す。少し時間がかかるがUnityが再起動する。
- PlayerにAddComponentでInput/Player Inputを追加
- (Player Inputコンポーネント内で)Create Actionsボタンでinputactionsファイルを作成し、生成されたアイコンをActionsのフォーム欄にドラッグアンドドロップ
- PlayerにPlayerController.csスクリプトを追加し、以下のようにコードを改変します。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.InputSystem; public class PlayerController : MonoBehaviour { public float speed = 10f; Rigidbody rb; Vector3 movement; void Start(){ rb = GetComponent<Rigidbody>(); } void OnMove(InputValue movementValue){ var movement2D= movementValue.Get<Vector2>(); movement=new Vector3(movement2D.x, 0f, movement2D.y); } void FixedUpdate(){ rb.AddForce(movement * speed); } }
【事後学習】本日学んだ機能を再確認しておきましょう。