Unity3D で横ACTのステージEDIT

20090224-1

ステージ追加の手順やってみます

前回記事「Unity3D で横スクロールアクション」の続きいきますね。今回は前回のプロジェクトにオリジナルステージを追加する方法の説明をしてみたいと思います。

早速ですが、前回記事のプロジェクトファイルのパッケージとをダウンロードしてください。

UniAction20131030

ダウンロードしたら適当なフォルダに解凍してとりあえずそのままおいといてくださいね。(下記解凍したの図)
unity20131102-001

プロジェクトの作成とパッケージのインポート

では、Unity を立ち上げて新しいプロジェクトフォルダを作ってみましょう。毎度おなじみの手順です。File → New Project… でプロジェクトウイザードを開き、Browse… をクリックしてプロジェクト作成先を選択します。今回は uniaction20131102 にします。フォルダを作成して フォルダーの選択 をクリックしたらプロジェクトウイザードへ戻るので Create をクリックして完了です。
unity20131102-002

次に先ほどダウンロードして解凍しておいたパッケージファイル UniAction20131030.unitypackage をダブルクリックして下さい。自動的に中身が解凍されて Unity へのインポートダイアログが表示されます。そのまま Import をクリックして下さい。これで準備完了です。
unity20131102-003

とりあえずこのような感じになっています。

├ Assets\
│ │
│ ├ Materials\ (画面が寂しいので着色やテクスチャ用マテリアル)
│ │
│ ├ Prefabs\
│ │ ├ Goal.prefab      (ゴール)
│ │ ├ Main Camera.prefab  (カメラ)
│ │ ├ Player.prefab    (プレイヤー)
│ │ └ StageTemplate.prefab (ステージテンプレート)
│ │
│ ├ Scenes\ (ステージ毎のシーン情報)
│ │
│ ├ Scripts\
│ │ ├ Goal.cs   (ゴールコンポーネント)
│ │ └ Player.cs  (プレイヤーコンポーネント)
│ │
│ └ Textures\ (背景に貼り付けるテクスチャ素材)

すでにゲーム作成に必要なオブジェクトはプレハブとして登録されています。今回はこのプレハブ達を使用してアクションステージを作成していきます。
unity20131102-004

プレハブの配置

まずは Hierarchy ビュー Main Camera を右クリックして Delete をクリックして削除します。次に、Project ビュー Assets / Prefabs 以下の全てのプレハブ(Goal.prefab, Main Camera.prefab, Player.prefab, StageTemplate.prefab)を Hierarchy ビューにそれぞれドロップします。なんかそれだけでそれっぽい雰囲気の画面ができあがります。
unity20131102-005

再生ボタンを押してみてください。必要最低限のものはそろってますのでこのままでも動きます。でもゴールできません。ゴールに必要な情報がゴールオブジェクトに設定されていないのと、そもそもプレイヤーとゴールが最初から同じ座標に設定されているのできちんと初期位置を設定してやらないといけないのと、あと、ゲームを盛り上げる障害物の設置も必要ですね。
unity20131102-006

プレイヤーの位置をきめる

ではプレイヤーの位置をきめましょう。とりあえず無難に左下からスタートです。まず Unity 左上の 上下左右矢印マークのアイコンをクリックしてオブジェクトの移動モードにします。(たいていは移動モードですが念のため) 次に Hierarchy ビュー Player を選択してください。 Scene ビューの Player が選択されるので緑の矢印と赤の矢印を動かすと上下左右に移動できます。ステージの左下まで移動させてあげてください。このゲームはプレイヤーがZ座標 0 の前提で作られているので奥行きには移動させないように注意しましょう。
unity20131102-007

ゴールの位置を決める

同じようにゴールを動かします。右下で良いでしょう。Hierarchy ビュー Goal をクリックして選択し、Scene ビュー のゴールが選択された事を確認します。先ほどと同様に緑と赤の矢印をドラッグしてゴールを右下に移動させてください。
unity20131102-008

背景画像を設定する

背景画像が何か寂しいですね、Project ビュー Assets / Textures の下に色々画像が入ってるので適当にチョイスして Hierarchy ビュー StageTemplate / BackScreen にドロップしてください。それだけでテクスチャ画像がオブジェクトに適用されます。背景画像が気に入らん!という方はオリジナルの画像をインポートしてから BackScreen にドロップしてくださいね。
unity20131102-009

障害物を設置する

次に障害物を設置しましょう。GameObject → Create Other → Cube で立方体を作ります。どこに作られるかは謎です。今回の例では背景の向こう側に作られてしまいました。そういう時は直接座標をいじって今回のゲームの大前提である Z 座標を 0 に設定します。
unity20131102-010

次にプレイヤーやゴールと同じように障害物を移動させて障害になるようにしてあげましょう。とりあえず地面の位置まで落としてジャンプしないと乗り越えられないようにしてあげればOKです。
unity20131102-011

障害物がなんか味気ない色をしてるのでマテリアルを割り当てて色をつけてあげます。Project ビュー Assets / Materials を選択し、Yellow.mat を Hierarchy ビュー Cube にドロップしてください。 Scene ビュー の該当オブジェクト Cube が黄色になります。
unity20131102-012

ゴールのプロパティを設定する

とりあえずこれでオリジナルステージは完成とします。最後にゴールの設定をします。Hierarchy ビュー Goal を選択し、インスペクタの Goal コンポーネントの Next Scene を stage001 に設定します。これは、プレイヤーが触れた時に次にジャンプするシーン名を設定します。
unity20131102-013

ちなみにゴール判定をするゴールコンポーネントのソースはたったこれだけです。OnTriggerEnter メソッドは何かぶつかってきたら無条件にプロパティに設定されたシーンをロードします。つまり、プレイヤー以外の何かがぶつかってきてもクリアなのです。しかし今回はプレイヤー以外に動くものはいないのでこれでよしとします。

using UnityEngine;
using System.Collections;

public class Goal : MonoBehaviour {
    public string NextScene = "";

    void OnTriggerEnter(Collider oCollider) {
        if (!string.IsNullOrEmpty(NextScene)) {
            Application.LoadLevel(NextScene);
        }
    }
}

シーンを保存する

このプロジェクトにはすでに1~7ステージまであるので今回作成したシーンはステージ0という事にしましょう。チュートリアルステージですね。File → Save Scene as… をクリックし、保存ダイアログで Assets / Scenes に stage000 という名前でシーンを保存してください。
unity20131102-014

ビルド設定する

いよいよバイナリ出力の準備です。File → Build Settings… でビルド設定用ウインドウを開きます。もし Platform が PC 以外だったら PC を選択して Switch Platform をクリックして PC モードに切り替えてください。
unity20131102-015

Project ビュー Assets / Scenes を選択し、現在保存されているシーン stage000 をダブルクリックして開き、次に Build Settings ウインドウの Add Current をクリックして stage000 をビルドに含めるシーンとします。このように、複数シーンをまたがるゲームを作成する場合、ビルドに含めるシーンの指定が必須です。 残りステージ stage001 から stage007 まで同様にダブルクリックで開いてから Add Current でビルドに含めてください。
unity20131102-016

あと少しです。Player Settings… をクリックしてビルドの詳細な設定情報を編集します。ここでは好みの内容で良いんじゃないでしょうか。とりあえず、フルスクリーンはオフ、ウインドウサイズは 640×480、起動時に解像度選択のダイアログは非表示にしています。

設定できたら Build をクリックしてバイナリの保存先を指定してビルドの完了を待つだけです。
unity20131102-017

できあがり!

ビルド完了すると自動的にビルド先のフォルダが表示されます。 Exe を実行すればうまくいけばステージ0からはじまります。うまくいかなかった場合は最初からやり直してみてどこか間違ってないか確認してください。私の書いた手順が間違ってた場合はごめんなさい(ぉぃw
unity20131102-018

ステージのバリエーションの出し方

今回は障害物1つだけでしたが慣れれば障害物を沢山ならべて迷路のようにしたり、物理演算コンポーネントをつけて上から落ちてくる障害物にしたりとバリエーションを出す事もできます。今回はオブジェクトが Z 方向に移動したら破綻するので物理演算の Freeze Position Z をチェックして奥行き移動を封印しています。色々試してみてください。
unity20131102-019

「シェアする」

ツイートツイート