ゼロからのUnity(4)キャラクターを動かしてみよう前編:ゲームオブジェクトとコンポーネント
skill

ゼロからのUnity(4)
キャラクターを動かしてみよう
前編:ゲームオブジェクトとコンポーネント

2015.06.25

ent108_img01.jpg

Unity4がリリースされてからおよそ3年。今年の春、遂にメジャーバージョンアップとなるUnity5が公開されました!

物理ベースレンダリング、リアルタイムグローバルイルミネーション、オーディオミキサーなどの新しい機能に加え、Pro版専用だった機能の多くが無料版でも使えるようになりました。

Unityは日々進化しているのでウォッチしているだけでも楽しいですが、皆さんはウォッチだけではなくガッツリ使いたいですよね。
ということで、今日もUnityを学んでいきましょう。
賀好 昭仁

前回はAsset Storeについて学び、キャラクター画像をダウンロードしました。
今回はダウンロードしたキャラクターを動くようにしてみましょう。

■ カメラの映す範囲を把握しよう

さて、早速作業に取り掛かりましょう。
まずは前回使ったUnityプロジェクトを開きます。

Hierarchyを見ると、Main Cameraのみ表示されている状態かと思います。
これはその名の通り、ゲーム画面を映し出すメインカメラです。

ent108_img02.jpg

HierarchyのMain Cameraをクリックすると、シーンビューに四角い枠とカメラプレビュー画面が表示されます。
この枠がカメラの映している範囲となりますので、キャラクターはこの中に配置します。

■ キャラクターを配置しよう

では、キャラクターを配置してみましょう。

プロジェクトブラウザから
Assets
└Sprite Pack #1 - Tap and Fly
 └Sprites
  └Player
フォルダを開きます。
ひよこちゃんの画像が並んで表示されているのが確認できますね。

ent108_img03.jpg

今回はその中から「player_idle_f01」をシーンビューにドラッグ&ドロップします。

シーンビューにひよこちゃんが表示され、Hierarchyにplayer_idle_f01が表示されたでしょうか。カンタン過ぎて拍子抜けかもしれませんが、これでキャラクターの配置が出来ました。

この名前だと後でわかりにくくなるので、名前を「Hiyoko」に変えておきましょう。ヒエラルキーでplayer_idle_f01を選択し、もう一度クリックすると名前を変更できます。

ent108_img04.jpg

ちなみに、Main Cameraや今回配置したHiyokoなど、ゲームに登場するオブジェクトを「ゲームオブジェクト」といい、ゲームを構成する非常に重要な要素となります。

■ コンポーネントって?

では次の作業に入りましょう。

配置したキャラクターを選択すると、右側のInspectorに情報が表示されます。

ent108_img05.jpg

Inspectorの一番上には名前など、全てのゲームオブジェクトが持つ基本的な情報が表示されています。
その下には位置や大きさを制御する「Transform」、更にその下には画像情報を制御する「Sprite Renderer」が表示されています。

「Transform」や「Sprite Renderer」は、コンポーネントと呼ばれます。
コンポーネントはゲームオブジェクトを構成する部品であり、1つのゲームオブジェクトに複数紐付けることが出来ます。

■ コンポーネントを触ってみよう

コンポーネントがゲームオブジェクトにどのような影響を及ぼすか、試しに「Transform」を触ってみましょう。

「Transform」のプロパティ「Position X」に0、「Position Y」に1を入力し、「Scale X」に3、「Scale Y」に3を入力してみます。
ひよこちゃんがカメラの少し上に移動し、3倍の大きさで表示されることが確認できたでしょうか。

ent108_img06.jpg

このように、コンポーネントはゲームオブジェクトに直接影響を及ぼします。

次の作業に移る前に、Scaleを元に戻しておきましょう。

■ コンポーネントを追加してみよう

さてさて、どんどん進みましょう。
次はひよこちゃんに新しく「RigidBody 2D」と「Circle Collider 2D」というコンポーネントを追加します。

「RigidBody 2D」はゲームオブジェクトに重力や速度などの物理演算を与えるコンポーネントで、「Circle Collider 2D」は当たり判定(他のオブジェクトとぶつかったかどうかのチェック)を与えるコンポーネントです。

まずは、インスペクターにある「Add Component」ボタンを押します。
追加できるコンポーネントの一覧が表示されますので、「RigidBody 2D」を探して選択します。コンポーネントは沢山ありますので検索で絞り込むといいでしょう。

ent108_img07.jpg

選択完了すると、インスペクターに「Rigidbody 2D」が追加されました。カンタンですね!ちなみに「Rigidbody」は3D専用のものになりますので間違えないよう注意しましょう。

同じように「Circle Collider 2D」も追加します。

ent108_img08.jpg

■ RigidBody 2D と Circle Collider 2Dの設定をしよう

追加したコンポーネントの設定を行います。

Circle Collider 2Dはその名のとおり円形ですので、そのままの状態だとひよこちゃんがコロコロ転がってしまいます。(それはそれでカワイイかもしれませんが・・・)
Rigidbody 2Dの「Fixed Angle」にチェックを付けるとゲームオブジェクトが回転しなくなるので、チェックを付けておきましょう。

また、ひよこちゃんの画像に比べてColliderが少し大きいようです。(円形の緑の先がColliderの範囲)
なので「Radius」を0.12に変更します。

ent108_img09.jpg

「Rigidbody 2D」「Circle Collider 2D」には、他にも沢山のプロパティがあります。Unityの公式ドキュメントに詳しく記載されていますので、目を通してみましょう。

http://docs.unity3d.com/ja/current/Manual/class-Rigidbody2D.html
http://docs.unity3d.com/ja/current/Manual/class-CircleCollider2D.html

では、ここで一度ゲームを動かしてみましょう。

プレイボタンを押すと、ひよこちゃんが落下していくのが確認できます。
うまく重力が働いているようですね!

■ まとめ

ゲームオブジェクトとコンポーネントは、Unityを使っている限り避けては通れない重要な要素です。
特にコンポーネントはゲームシステムさえも変えられる非常に重要なものですので、必ず使い方を覚えておきましょう。

さて、最後に今のゲームの状況を振り返ってみます。

プレイボタンを押してゲームが動くようにはなりましたが、ひよこちゃんがどこまでも落下してしまいます。

このままだといずれひよこちゃんがブラジルまで辿り着いてしまいますので、次回は着地できる足場を作るところから始めることにしましょう。

原稿:賀好 昭仁
qnoteスマホアプリ開発チーム技術主任。PHP・Android・iOS・Unityなど複数のプラットフォームでの開発を行う。
しばしば7匹の先輩猫社員たちにイスを占領される。

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW