レッスン 4.1 - 行こうとしている方を見る

Tutorial

Beginner

+0XP

60 mins

(150)

Unity Technologies

レッスン 4.1 - 行こうとしている方を見る

概要:

まず最初に、新しいプロトタイプを作成し、スターターファイルをダウンロードします。美しい島、空、パーティクルエフェクト...すべてをカスタマイズすることができます。次に、プレイヤーが島の周りでカメラを適切な距離を持たせて回転させ、シーンの美しいビューを見られるようにします。プレイヤーは球で表現され、好みの作り込まれたテクスチャに包まれます。最後に、プレイヤーに力を加えて、カメラの方向に前方または後方に移動できるようにします。

プロジェクトの成果物:

カメラは、プレイヤーからの水平方向の入力があれば、島の中心にある焦点を中心に一定のペースで回転します。プレイヤーはテクスチャが付いた球を操作して、この焦点に向かって、前方または後方に移動させます。

Resources

1. 導入

2. プロジェクトを作成し、シーンを開く

前にもやったことですが、もう 1 度...新しいプロジェクトを立ち上げて、スターターファイルをインポートしましょう。
  1. Unity Hub を開き、コースのディレクトリに「Prototype 4」を作成します。
  2. このレッスンの一番上の「コースの素材」欄にあるリンクをクリックして、Prototype 4 のスターターファイルにアクセスし、ダウンロードして Unity にインポートします。
  3. Prototype 4 のシーンを開き、Sample Scene を保存せずに削除します。
  4. パーティクルエフェクトを見るには、再生ボタンをクリックします。

3. プレイヤーを作成し、テクスチャを追加する

ゲームの舞台となる島が出てきました。次は、プレイヤーが操作して転がすための球体が必要です。
  1. Hierarchy ウィンドウで、3D Object > Sphere を選び、球体を作成します。
  2. 作成したオブジェクトの名前を「Player」に変更し、位置をリセットし、Scale を X、Y、Z、それぞれ 1.5 に増加させます。
  3. Player RigidBody コンポーネントを追加します。
  4. Library > Textures から、テクスチャ球体へドラッグします。

4. カメラの注視点となるポイントを作成する

ゲームの中でカメラをスムーズに映画のように回転させるには、注視点となるポイントを作り、カメラの視点を島の中心に固定するとよいでしょう。
  1. 新しい空のオブジェクトを作成し、「Focal Point」と名前を変更します。
  2. 作成したオブジェクトの位置を(0, 0, 0)にリセットし、カメラをその子オブジェクトにします。
  3. 新しく「Scripts」フォルダーを作成し、その中に新しく「RotateCamera」スクリプトを作成します。
  4. 「RotateCamera」スクリプトを Focal Point アタッチします。

5. ユーザー入力で注視点を回転させる

カメラが注視点に取り付けられました。プレイヤーが水平方向の入力によって、カメラとカメラの子オブジェクトを島の周りで回転させられるようにしましょう。
  1. rotationSpeedhorizontalInput を使ってカメラを回転させるコードを作成します。
  2. rotation speed の値を微調整して、ちょうどいい速度になるようにします。

6. プレイヤーに前進する力を加える

カメラが島の周りをきちんと回転するようになりました。今度はプレイヤーを移動させられるようにしましょう。
  1. 新しく「PlayerController」スクリプトを作成し、それを Player に適用して、開きます。
  2. 新しく public float speed 変数を宣言して初期化します。
  3. 新しく private Rigidbody playerRb を宣言し、Start() で初期化します。
  4. Update() で、「縦方向の」入力を受け取る forwardInput 変数を新しく宣言します。
  5. AddForce() メソッドを呼び出して、forwardInput に基づいてプレイヤーを前進させます。

7. 注視点の方向に動く

ボールは転がっていますが、前後決まった方向にしか動きません。カメラ(と注視点)が向いている方向に移動するようにしましょう。
  1. 新しく private GameObject focalPoint; を宣言し、Start() focalPoint = GameObject.Find("Focal Point"); として初期化します。
  2. AddForce の呼び出しで、Vector3.forward focalPoint.transform.forward に置き換えます。

8. レッスンのまとめ

新しい機能:

  • 水平方向の入力に基づいてカメラが島の周りを回転する
  • プレイヤーは垂直方向の入力をもとにカメラが向いている方向に転がる。

新しい概念とスキル:

  • テクスチャラップ
  • 子オブジェクトとしてのカメラ
  • グローバル座標とローカル座標
  • 他のオブジェクトの方向を取得

次のレッスン:

  • 次のレッスンでは、ゲーム内で追いかけてくる敵を作ることで、プレイヤーにとってもっと難しいゲームにしていきます。

Complete this Tutorial