オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

いまから始めるオンラインゲーム
募集中
モバイル版4Gamer(β)
※ドコモ旧機種には対応してません
特集記事一覧
注目のレビュー
注目のムービー
印刷2011/12/28 21:30

企画記事

【完全図解】超初心者でも大丈夫。話題のゲームエンジン「Unity」での3Dゲーム作成入門

●Index
 ・UIと基本操作(物理エンジン)
 ・物体を動かしてみる(スクリプト,入力処理)
 ・インスタンスを生成する(プレファブ)
 ・当たり判定と爆発処理
 ・敵の発生と文字表示
 登場以来,注目度が上がり続けているゲームエンジン「Unity」。個人や(前年度の収益が一定の収入に達していない)企業はフリーで使用できるほか,スマートフォンやWebブラウザ上で高品質な3Dゲームを実現できるなど,話題の多い製品です。コミュニティ活動も盛んで,たくさんの素材が流通しているほか,最近ではUnityに関する日本語の情報も次第に増えてきました。

 Unityは,手軽に使える本格的なゲームエンジンであるのは確かですが,まったくの初心者にはまだまだ分かりにくい部分が多いのも事実でしょう。ちょっと前のバージョンだと,起動するといきなり「Tropical Paradice」がチュートリアルとして読み込まれてしまい,途方に暮れていたものです。まあ,「これくらいは朝飯前だ」という意気込みは分かるのですが,凄すぎて初心者にはまったく参考になりません。

Tropical Paradice
Unity

 ここでは,スクリプト言語の基礎くらいを習得している初心者を対象に,できるだけ初期部分でつまづかないようにUnityを使ったゲーム作りについて紹介してみたいと思います。ただ,私もUnityの初心者ですので,仕様を正しく理解していないところもあるかとは思います。もっとうまい手があるという局面もあるでしょうが,そこはご容赦願います。

 下準備として以下のリンクから最新版Unityのダウンロードし,インストールを済ませておいてください。

Unityのダウンロード



Unityのユーザーインタフェースと環境整備


Unityの初期起動画面
Unity
 Unityを起動するとUnity Editorとスプラッシュメニューが開きます。チュートリアルビデオ(英語)などを見ておくのもよいでしょうが,ここではそのまま作業を行いますのでスプラッシュを閉じてください。

 Unity Editorの画面は複数の用途で使われる「ビュー」を組み合わせたものになっています。デフォルトの状態でも作業はできますが,画面配置は自由自在に変更できますので,使いやすいように並べてください。同時に表示しておきたいのは,

  Scene(パーツの配置などで使用)
  Game(実効状態の確認)
  Hierarchy(オブジェクトの階層構造を管理)
  Project(オブジェクトの機能を管理)
  Inspector(各部の詳細情報を管理)

のビューです。デフォルト状態では,GameはSceneとタブで切り替えるようになっていますが,Unityの場合,実行ボタンを押してない状態でも実行時のイメージが常に反映されますので,同時に表示しておくほうが作業しやすいと思います。「Game」のタブ部分をマウスでつまんで適当に配置してください。

今回の記事での配置。ウィンドウ内の文字が読みやすいようコンパクトに配置していますが,通常は大きなウィンドウで使ってください。配置もまったく参考にする必要はありません
Unity


基本メニューの概要


 次にメニュー周りを見てみます。


 最上段のプルダウンメニューに並んでいる項目には,

  File
  Edit
  Assets
  GameObject
  Component
  Terrain
  Window
  Help


があります。「File」「Edit」「Window」「Help」については,あまり説明の必要はないでしょう。また地形用の「Terrain」ついては,ここでは割愛します。

 「Assets」は,ゲームで使用されるさまざまな素材を管理する部分です。スクリプトやシェーダ,マッピング素材,Physics設定,素材をまとめたプレファブなどたくさんのものを扱います。
 「GameObject」は,実際にゲーム内で使用するオブジェクトを扱う部分です。
 Componentは,オブジェクトに対して付加される機能を管理する部分で,Javaでいうインタフェースに近い概念の機構です。
 
 簡単な例で見てみましょう。
 まず,起動直後の画面で(もしくは新規作成したプロジェクトで),[GameObject]メニューから,[Create Other]-[Plane]を選びます。これで平面が作られます。Gameビューには実行時のイメージが出てきます。

Unity

平面が表示される
Unity

 次に,同様な操作で,[Create Other]-[Sphere]を選択します。これで球体が追加されました。

Unity Unity

 もしかしたら,ここでGameビューに球体が表示されていない人もいるかもしれません。
 インストール直後の状態ではメインカメラの位置とエディタの基本位置の関係で,作成したオブジェクトが視野の範囲外になってしまうことがあります。手動で位置を調整しましょう。まず,HierarchyでSphereを選択したうえで,Inspector部分を見てください。いちばん上に「Transform」の項目があります。ここの「Position」をすべて0にして,Sceneビューでもう一度球体を選択したあとに[F]キーを一度押しておいてください。エディタの中央に表示されるようになります。

 球体は,Planeの少し上のあたりに持ち上げて配置しておいてください。


SceneビューでのUIの使い方


 Sceneビューの使い方について少し触れておきましょう。
 左上にあるボタンで移動や回転,拡大といったモードを切り替え,マウスの右ボタンを押したままドラッグすることで視点中心の回転と,だいたい触ってみれば使い方は分かると思うのですが,いくつか覚えておいたほうがよいことがあります。

 まず,操作は移動モードを中心に行います。視点自体の移動には,マウスのセンターボタンを押しながらのドラッグを使うと便利です。
 特定のオブジェクトを中心に持ってくるには,[F]キーを使います。多用されるキーになりますので,設定可能なマウスであれば,センターボタンに割り当てるのもよいかもしれません。
 右ボタンと同時に行うドラッグ動作では視点を中心とした回転になりますが,Altキーを押しながら左ボタンでドラッグすると,先ほどのFキーで選択したオブジェクトを中心とした視点の回転が可能になります。

 これでGameビューのほうにも球体が表示されたはずですが,真っ暗ですので,光源を配置しておきましょう。GameObjectメニューから,[Create Other]で今度は[Directional Light]を選択します。これは方向付きの平行光線です。配置場所はどこでも効果は変わりませんので,邪魔にならない位置に移動して,角度を適当に変えておいてください。

Directional Lightを追加します
Unity

Unity
邪魔なので光源を移動します(動かさなくても動作に支障はありませんが)
Unity
回転モードにし,丸い枠をつかんで向きを調整します

Gameビューで明るくなったことが確認できます
Unity

実行ボタン。もう一度押すと実行停止になります
 ここで実行ボタンを押してみましょう。Gameビューでは,……まあ,なにも動かないんですけどね。
 ということで,物理エンジンを適用してみます。

 まず,球体を選択した状態で(SceneビューからでもHierarchyビューからでもかまいません),Componentメニューの[Physics]から[Rigidbody]を選択します。これで,SphereにRigidbody(剛体)の設定が加わりました。

Sphereを選択したうえで,メニューから適用したいComponentとして「Rigidbody」を指定します
Unity

SphereのInspectorに「Rigidbody」の項目が追加されているのが確認できます
Unity

 その効果はというと,実際に見てみるのがいちばん早いので実行ボタンを押してください(手元に開発環境を用意していない人は以下のリンクを)。

実行の様子:球体落下(1)

※サンプルはWebブラウザ上で実行されます。Unityのプラグインを導入していない人は画面の指示に従ってプラグインを入れてください。

 球体が落下するようになりました。
 ……ただ,ボテっと落ちるだけでちょっと情緒がありません。反発の設定を行いましょう。
 どんな物理的挙動をさせるかというのは「Physic Material」というもので指定するのですが,どう指定すればいいか見当もつかないでしょうから,参考になるものを見てみます。Assetsメニューから[Import Package]-[Physic Materials]を選択し,すべて読み込んでください。

Unity

 ここでPhysic Materialsをインポートしてきたときに,Projectビューに[Standard Assets]-[Physic Materials]というのが追加されているのが確認できると思います。ここに物理動作の素材がいくつか用意されていますので,それを参考にしつつ,今回は新しい素材を作ってみます。よく跳ねるのは「Bouncy」という奴ですが,跳ねすぎなきらいもあるのでやや弱めにしてみます。

 Assetsメニューから[Create]-[Physic Material]を選択してください。

Unity

 新しい物理素材が追加されました。ここでは「Bounce2」という名前にしておきます。クリックすると,Inspectorビューに内容が表示されます。設定は,「Bounce Combine」をMaximamに,「Bounceness」を0.85くらいにしておいてください。


 ちなみに,「Bounceness」といった文字が書いてある部分でマウスの左ボタンを押しつつ左右に動かすと,スライダーのように数値を変化させることができます。必ずしも正確な値が要求されないような部分では覚えておくと便利な操作法です。

実際には順序が逆ですが,下の図で丸印をクリックすると,このウィンドウが開きます
 これで素材ができましたので,Sphereに割り当てます。HierarchyなどでSphereを選択し,Inspectorビューを見てください。設定したい反発率は,Rigidbodyのところではなく,Sphere Colliderの部分で設定します。
 Materialの項の右端に小さな「○」印が付いているのが見えますね(実際は真ん中に点がある○です)。この「○」印は,Unity Editorで選択ウィンドウを開くためのボタンになっています。押すとPhysic Materialsの一覧が出てきますので,先ほど作成した「Bounce2」をダブルクリックで選択してください。

Unity

 この状態で実行してみると,球体が跳ねるようになったことが確認できるはずです。

実行の様子:球体落下(2)


 同様な素材の割り当ての例として,色の変更を試してみましょう。
 Assetsメニューから[Create]-[Material]を選択します。

Unity

名前をRedに書き換えます
 Projectビューに出てきた新しい素材の名前は「Red」にしておいてください。

 ここでInspectorビューを見ると,Shaderでさまざまなものが指定できそうなことが分かるのですが,ここではもっともシンプルなDefuse(拡散反射)のままで「Main Color」を変更します。右のボックスをクリックすると色選択のウィンドウが表示されますので,赤色になるように設定してください。これで新しい色素材ができました。
 これを先ほどと同様に,Sphereに割り当てます。今度は「Mesh Renderer」のMaterialsのElement 0の部分(Materialsをクリックして開くと出てきます)で「○」印を押し,素材一覧から先ほど作った素材「Red」を選択します。これで球体が赤くなりました。

Unity Unity

 色をつけるだけでいちいち素材を作るのはちょっと面倒ですが,ここで指定できるのは色だけではありません。さまざまなシェーダやマッピングが指定された素材を登録しておけば,今回と同じ手順で指定できますので,素材感を出したい場合には大いに活用してください。


実行中のSceneエディット


 先ほどから実行ボタンを押すと,Gameビューだけでなく,Sceneビューでもリアルタイムにオブジェクトが動いているのが確認できるはずです。
 ここで,実行後にSceneビュー内のSphereを選択してみましょう。Unity Editorでは,ゲームが動作した状態でも,ここで自由に大きさを変えたり,変形させたりといったことができるのです。Gameビューにも変更内容がリアルタイムに反映されていることが分かります。
 ついでに,球体が落下したり,つまんで位置を動かすと,InspectorのTransform部分もリアルタイムに変化することを確認してください。ここで「プログラムから,SphereのTransformのPositionを書き換えると,位置を変更できるんだな」と目星をつける人もいるかもしれません。そのとおりです。Inspectorでは,オブジェクトの属性がそのまま表示されており,その値を操作することで,オブジェクトを制御できます。


  • 関連タイトル:

    Unity

  • 関連タイトル:

    ミドルウェア/開発ツール

  • この記事のURL:
line
4Gamer.net最新情報
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:10月30日〜10月31日
タイトル評価ランキング
87
TERRA BATTLE (iPhone)
83
81
マリオカート8 (Wii U)
79
人狼オンライン (BROWSER)
2014年05月〜2014年10月