70
MO エンジン for Unity クイックスタートガイド 2015 月 6 月 15 日 株式会社モノビット

MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

MOエンジン for Unity

クイックスタートガイド

2015月 6月 15日

株式会社モノビット

Page 2: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

2

更新履歴

版数 日付 改定履歴 備考

1.03 2015年 7月 23日 バイナリファイルのコピー先フォルダ名の誤りを

修正

1.02 2015年 6月 15日 ゲームプレイ時に発生するエラー回避方法を

追記。

1.01 2015年 6月 12日 フォルダ構成、ファイル名等誤記の修正

1.00 2015年 6月 10日 初版作成

Page 3: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

3

目次

1. はじめに ...................................................................................................................... 5

1.1. MOエンジンの概念を理解しよう .................................................................................. 5

2. MOエンジンをインストールしよう ..................................................................................... 6

2.1. Windows PCの環境設定をしよう ................................................................................. 6

2.2. Unityをインストールしよう ........................................................................................ 7

2.3. MOエンジンクライアントをインストールしよう .............................................................. 8

プロジェクトを作成 ............................................................................................. 8

MOエンジンクライアントのインポート .................................................................... 8

[Master]フォルダのコピー ................................................................................. 9

サンプルゲームのデータをインポート .................................................................... 10

2.4. MOエンジンサーバをインストールしよう..................................................................... 10

3. サンプルゲームをプレイしよう ........................................................................................ 11

3.1. ゲームシーンを開く ................................................................................................ 11

3.2. 通信設定 .............................................................................................................. 11

クライアント設定 ............................................................................................. 11

サーバ設定 ...................................................................................................... 12

3.3. ゲームをスタートしよう ........................................................................................... 13

4. MOエンジンの機能を使ってみよう ................................................................................... 19

4.1. ステージを設計しよう ............................................................................................. 19

プレハブの作成 ................................................................................................ 19

コリジョン用オブジェクトの設定 .......................................................................... 23

経路探索領域の設定 ........................................................................................... 25

ステージデータの保存 ........................................................................................ 29

MOエンジン用のデータを出力する ....................................................................... 32

4.2. キャラクタを追加しよう ........................................................................................... 34

プレイヤーのアクションを作ってみよう ................................................................. 34

プレイヤーキャラクタの登録 ............................................................................... 42

エネミーのアクションを作ろう............................................................................. 46

エネミーキャラクタの登録 .................................................................................. 52

エネミーキャラクタの AIを作ってみよう ................................................................ 55

MOエンジン用キャラクタデータを出力する ............................................................ 58

4.3. キャラクタを配置しよう ........................................................................................... 61

プレイヤーキャラクタの出現位置を設定しよう ......................................................... 61

エネミーキャラクタの出現位置を設定しよう ............................................................ 64

MOエンジン用ステージデータを出力する ............................................................... 66

Page 4: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

4

4.4. MOエンジンサーバにデータを反映しよう..................................................................... 68

スクリプトのバイナリ変換 .................................................................................. 68

ソース編集 ...................................................................................................... 69

Page 5: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

5

1. はじめに

1.1. MO エンジンの概念を理解しよう

MOエンジンとは独自スクリプト(MO-Script)で駆動するネットワークゲームエンジンです。

MOエンジンのサーバはバトルサーバと呼び、インゲームのプレイヤーの入力、敵キャラクタの行動、イベ

ントの処理、ステージクリア条件の判定など、ゲームの処理を行い、その結果をクライアントに送信しま

す。

クライアント側の MOエンジンは、バトルサーバから送られたデータを基にクライアント(Unity)をビュー

アとしてゲームシーンを再生します。

インゲームの様々な設定や制御情報をバトルサーバが処理を行い、ゲームの制御・調停を行います。

MOエンジンで処理されたデータはクライアントに送信され、クライアントはそのデータを基にゲームシー

ンを再生するビューアとして稼働します。

バトルサーバでゲームの制御を行うスクリプト、マスタデータは、GUI化された専用のエディタで生成・

編集を行います。

専用ツール類は Unity5のプラグインとして提供されます。

※ 一部ゲームに固有の仕様に関わるスクリプトは直接編集する必要があります。

Page 6: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

6

2. MO エンジンをインストールしよう

MOエンジンをWindows PCにインストールしてサンプルゲームが動作してツール類を使える最低限の環境

を設定しましょう。

【MOエンジン動作環境】

クライアント

Windows7以上

.NET Framework 4.0以降(Windows)

Mono 2.12以降(Mac、Linux)

Unity5

サーバ

Windows7以上

.NET Framework 4.0以降(Windows)

Mono 2.12以降(Mac、Linux)

※ Windows PC以外にインストールするときは、別添のドキュメント

『MOエンジン for Unity セットアップガイド』

を参照してください。

2.1. Windows PC の環境設定をしよう

MOエンジンでは高速処理を行うため、スクリプトをバイナリに変換して使用します。

スクリプトをバイナリ変換するために、cygwin*を使用するのでインストールしましょう。

* UNIXで頻繁に使用されるシェルやコマンドなどのプログラムをWindows上でソースコードからコンパイルできるようにしたもので

す。

(1) Cygwinを手に入れよう

以下のサイトからセットアッププログラムをダウンロードします。

[Cygwin]

https://www.cygwin.com/

トップーページにある左側のメニューより

[Cygwin] → [Install Cygwin]

とページを遷移して Cygwinセットアッププログラムをダウロードします。

※ 32bit OSの場合

Page 7: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

7

https://cygwin.com/setup-x86.exe

こちらをダウンロードします。

※ 64bit OSの場合

http://cygwin.com/setup-x86_64.exe

こちらをダウンロードします。

(2) cygwinをインストールしよう

ダウンロードしたファイルをダブルクリックしてインストーラを起動しましょう。

Cygwinのインストールについては下記ページをご参照くださ。

[How to install Cygwin -Cygwin インストールの方法-](外部サイト)

http://www.sw.it.aoyama.ac.jp/2011/CP1/cygwin/

インストールで選択するパッケージは以下の通りです。

※ 正しく選択されていない場合、コンバータが正常に動作しないのでご注意ください。

※ インストール中に関連する追加パッケージのインストールを促すダイアログが表示された際は、併

せてインストールします。

[Perl] 項目全て

[Devel] 項目で[gcc]と名前が付くもの全てと [make]

以上を[Install]に変更します。

(3) 環境変数を設定しよう

※ Windows 8.1の場合

① デスクトップの PCアイコンを右クリックし、プロパティを選択、「システムの詳細設定」をクリ

ックします。

(または画面右下にマウスカーソルを移動して表示されるチャームの「検索」から「システムの

詳細設定の表示」を検索してクリックします)

② 環境変数をクリックし、システム環境変数の項目から Pathを選択し、編集をクリックします。

③ 一番右の部分に下記を追加します。

;c:\cygwin64\bin

※ 先頭のセミコロンは必須です。

以上、Windows PCの環境設定は終了です。

2.2. Unity をインストールしよう

MOエンジンで提供されるツール類は、Unity5で動作します。

Page 8: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

8

以下のサイトの[Unity を手に入れる]を参考に Unity5をインストールしましょう。

[Unity - Developer - はじめての Unity - 第 1回 世界の「骨格」をつくろう]

http://japan.unity3d.com/developer/document/tutorial/my-first-unity/01

※ MOエンジンのツール類は、無料版 Unityで動作します。

2.3. MO エンジンクライアントをインストールしよう

提供されたファイルの中から MOエンジンクライアント本体、MOエンジンクライアントとサンプルゲー

ムのアセットの Unityパッケージをインストールしましょう。

(1) moe_for_unity\unityproject\MOengineForUnity.unitypackage

MOエンジンクライアント本体パッケージファイルです。

(2) moe_for_unity\unityproject\Master

MOエンジンサーバ用ゲームデータが保存されているフォルダです。

(3) moe_for_unity\unityproject\MOengineForUnitySample.unitypackage

サンプルゲームの各種アセットが入ったパッケージファイルです。

プロジェクトを作成

MOエンジンクライアントのインポートを行うため、空の状態のプロジェクトを作成します。

(1) Unityを起動して右上の[New project]ボタンをクリックします。

(2) プロジェクト作成画面でプロジェクト名(Project name)と保存先(Location)を入力て

[Create project]をクリックします。

Project name: MOengine

Location: C:\Unity

※ プロジェクトの保存先は任意に設定できますが、本ドキュメントでは上記のフォルダに保存する

想定で説明します。

Unityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

MO エンジンクライアントのインポート

Unityのメニューから

[Asset]→[Import Package]→[Custom Package]

Page 9: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

9

を選択しましょう。

[Import Package...]ダイアログが表示されるので、以下のフォルダを開きましょう。

フォルダ: moe_for_unity\unityproject\MOengineForUnity.unitypackage

※ フォルダ構成はMOエンジンのパッケージを配置したフォルダにより変わります。

例)

C:\ MOengine\client

[開く]ボタンをクリックするとインポートの確認画面が表示されます。

※ インポートの読み込みにはしばらく時間がかかります。確認画面が表示されるまでお待ちましょ

う。

[Import]ボタンをクリックします。

パッケージの読み込みが終了したら MOエンジンクライアント本体のインポートは終了です。

[Master]フォルダのコピー

MOエンジン専用の各種エディタで作成したゲームデータを保存する[Master]フォルダを Unityのプ

ロジェクト内にコピーします。

Unityのデータではないため、このフォルダ内のデータは Unityのインポート操作でインポートすること

ができません。

そのため、インポートとは別に Unityのプロジェクトフォルダ内に[Master]フォルダごとコピーしま

す。

コピー元: moe_for_unity\unityproject\Master

コピー先: C:\Unity\MOengine\Master

C:\UnityMOengine\Master内に以下のファイルが存在することを確認しましょう。

BulletMaster.json

EnemyMaster.json

EventMaster.json

MasterDragonAI.xml

MasterDragon_root.xml

PlayerMaster.json

simple_player_root.xml

simple_spider_ai.xml

simple_spider_root.xml

spider_ai.xml

Page 10: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

10

spider_root.xml

StageEditData.xml

StageMaster.json

UnitMaster.json

サンプルゲームのデータをインポート

MOエンジンクライアント本体とは別にサンプルゲームのデータも Unityパッケージとして提供されて

います。

サンプルゲームのデータをインポートしましょう。

Unityのメニューから

[Asset]→[Import Package]→[Custom Package]

を選択しましょう。

[Import Package...]ダイアログが表示されるので、以下のファイルを選択します。

フォルダ: moe_for_unity\unityproject\MOengineForUnity.unitypackage

※ フォルダ構成はMOエンジンのパッケージを配置したフォルダにより変わります。

[開く]ボタンをクリックすとインポートの確認画面が表示されます。

※ インポートの読み込みにはしばらく時間がかかります。確認画面が表示されるまでお待ちましょ

う。

[Import]ボタンをクリックします。

パッケージの読み込みが終了したらサンプルゲームのデータのインポートは終了です。

2.4. MO エンジンサーバをインストールしよう

MOエンジンの動作を確認するために、最小構成のサーバをインストールします。

提供されている MOエンジンパッケージの以下のフォルダをサーバ機の任意のフォルダに配置します。

MOエンジンサーバプログラムが保存されているフォルダ:

moe_for_unity\server

Page 11: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

11

3. サンプルゲームをプレイしよう

まずはサンプルゲームの起動からプレイまでの設定方法を紹介します。

このサンプルゲームを編集することで MOエンジンの基礎的な編集操作を本章以降で紹介します。

3.1. ゲームシーンを開く

ゲームをプレイするために Unityのシーン(画面)を開きます。

Unityのメニューから

[File]→[Open Scene]

を選択すると[Load Scene]ダイアログボックスが表示されるので、以下のフォルダを開きましょう。

パス: C:\《インストールしたフォルダ》\《作成したプロジェクト名》

\Assets\MOengine\Sample\Scenes

※ フォルダ構成はプロジェクトをインストールしたフォルダ、プロジェクト名により変わります。

例)

C:\Unity\MOengine\Assets\MOengine\Sample\Scenes

開いたフォルダにある以下のファイルを選択しましょう。

ファイル: Title.unity

[開く]ボタンをクリックすとタイトル画面が表示されます。

3.2. 通信設定

クライアント設定

最低構成でプレイするため、MatchingServerを使用しないモードに設定します。

Unity上の以下のオブジェクトでクライアントの通信制御の設定が入力されています。

Assets\MOengine\sample\resorces\system\SystemNodeManager

Page 12: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

12

[SystemNodeManager]を選択し、Inspectorにある

[Use Matchig Server]

のチェックを外します。

サーバ設定

ゲームクライアントからログインするサーバの起動方法です。

本ドキュメントではゲームがプレイできる最小構成で起動する方法を説明します。

※ クライアントである Unityを動かしているWindowsPCを使ってでサーバも起動し、1台でゲーム

をプレイすることができます。

以下のプログラムを実行してサーバを起動しましょう。

フォルダ: moe_for_unity\server\BattleServer\bin

ファイル: MoSample.exe

サーバプログラムの起動時には、以下のオプションを設定します。

起動オプション(Windows)

MoSample.exe -d ./Data --log -p 62000 -udp 62001 –nomatching

※ 対戦プレイを行う際は、サーバとクライアントでバトルサーバの IPアドレスの値を揃えます。

MOエンジンサーバ(MoSample.exe)オプション

オプション 説明 例

Page 13: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

13

-d ゲームデータを参照するフォルダを指定し

ます。

-d./Data

カレントディレクト下層の”Data”フォルダを参照

します。

‘d’の後に続けて(スペースを入れず)入力しま

す。

--log ログを出力しません。 --log

ログの出力を抑制します。

-p TCPポートを指定します。 -p 62000

-udp UDBポートを指定します。 -udp 62001

-bp MOエンジンサーバのポートを指定します。 -bp 62001

-bi MOエンジンサーバの IPアドレスを指定し

ます。

-bi 192.168.0.0

--nomatching マッチングサーバ使わずに対戦します。 --nomatching

※ 提供されるサーバプログラムと同一のフォルダにある”boot_nomatching.bat”は、上記のオプション

が設定済みのバッチファイルです。

3.3. ゲームをスタートしよう

前項までの操作で、ゲームをスタートする準備ができました。

サンプルゲームの概要は以下の通りです。

【ゲーム概要】

ステージ中の敵を攻撃して撃破して獲得するポイントを競うゲームです。

いずれかのチームがクリア条件となるポイントを獲得するか、制限時間終了時にポイントが高いチーム

が勝利となります。

【操作方法】

スタート ........................ タイトル画面で[バトル開始]ボタンをクリック

チーム選択 ..................... チーム選択画面で[青チーム]また[赤チーム]どちらかをクリック

キャラクタ移動 ................ マウスの左ボタンでドラッグ

攻撃 .............................. 左ボタンクリック

スキルパワーチャージ ....... 左ボタンを押したまま

スキル発動 ..................... マウス左ボタンを押したまま、カーソルをスキルアイコンに移動

Page 14: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

14

Unityエディタ上で、[▶]ボタンをクリックすると、ゲームスタート画面が表示されます。

表示された[スタート]ボタンをクリックします。

※ エラーが発生する場合

以下のエラーメッセージが表示されて[バトル開始]から[チーム選択画面]に遷移しない場合、下記

Page 15: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

15

の説明をご覧の上操作を行ってください。

何らかの理由で

Assets/MOengine/Sample/Scenes/TeamSelect.unity

がロードできないというエラーメッセージです。

読み込めないシーンを指定してロードする手順を説明します。

(1) ビルドセッティングウィンドウを開く

[▶]ボタンを解除し、メニューより

[File]→[Build Settings...]

を選択し、ビルドセッティングウィンドウを開きます。

Page 16: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

16

(2) シーンファイルをドラッグ&ドロップ

ビルドセッティングウィンドウの[Scene In BUild]内に

MOengine/Sample/Scenes/TeamSelect.unity

など、シーンが表示されていない場合、以下のようにこれをドラッグ&ドロップで追加してくださ

い。

選択したシーンをドラッグ&ド

ロップします。

Page 17: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

17

本来リストに表示されるシーンは、以下の通りです。

GameMain.unity

Result.unity

SimpleStageSample.unity

StageEditSampleScene.unity

TeamSelect.unity

Title.unity

(3) チェックボックスの確認

リストにシーンが表示されている場合はチェックが入っているかを確認し、入っていなければチェッ

クを入れてください。

(4) ビルドセッティングウィンドウを閉じる

[Scenes In Build]に必要なシーンが表示され、チェックボックスにチェックが入った状態で右上の

[×]ボタンでウィンドウを閉じます。

チェックリストにチェックが入

っていなければチェックを入れ

ます。

Page 18: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

18

以上の操作が終了した後に、再度ゲームスタートの操作を行ってください。

Page 19: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

19

4. MO エンジンの機能を使ってみよう

MOエンジンのサンプルプロジェクトに含まれているシンプルなデータを使ってゲームを編集します。

ステージ構成、キャラクタのアクション等サンプルゲームよりシンプルな構成のゲームで MOエンジンの仕

様を理解しやすく説明します。

本章では以下の内容を説明します。

(1) ステージ設計

Unity上で作成した背景を基にコリジョンなどの管理データを作成します。

(2) プレイヤーキャラクタの追加

Unity上で作成したキャラクタデータを基にプレイヤー/エネミーのアクションを管理するスクリプトを作

成します。

また、キャラクタのプレハブ、AnimationClip、AnimatorControllerといったアニメーションデータをキ

ャラクタに関連付けます。

(3) エネミーキャラクタの追加

プレイヤーキャラクタの追加同様に、スクリプトの作成、アニメーションデータの関連付けを行います。

また、AIデータも作成します。

(4) ステージ配置

ステージ上に追加したキャラクタを配置してゲームがプレイできるように設定します。

(5) データの反映

上記で作成した各種データを MOエンジンサーバに反映させます。

4.1. ステージを設計しよう

MOエンジンサーバが参照するステージのマップデータを作成します。

Unity上でゲームを制作するときとは異なり、ステージを制御するデータはすべて MOエンジンサーバが

管理します。

本項ではステージに関する以下のデータを作成します。

ステージで使用する背景のプレハブ

壁コリジョンデータ

エネミーがステージ上で経路探索をする際のエリアデータ

プレハブの作成

本項では、シンプルなステージを作成するため、プリミティブオブジェクトを使ってステージのデータ

Page 20: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

20

を作成します。

既存のアセットでオブジェクト配置し、本項に書かれているコリジョンデータ、経路探索領域作成用プ

ローブの配置を行うことで別途ステージを作成することができます。

(1) シーンの作成と保存

ステージデータを設定するため、新しいシーンを作成します。

メニューより

[File]→[New Scene]

と選択すると、新しく[Main Camera]と[Directional Light]のみのシーンが作成されます。

作成されたシーンに名前を付けて保存します。

[File]→[Save Scene as...]

[Save Scene]ダイアログが開きます。

以下にシーンを保存しましょう。

C:\Unity\MOengine\Assets\MOengine\Sample\Scenes

SimpleStage.unity

(2) 背景を配置するオブジェクトを作成

[Hierarchy]タブにある[Create▼]をクリックし、[Create Enpty]を選択すると「Game

Object」というオブジェクトが追加されます。

追加された「Game Object」の名前を「StageRoot」に変更します。

「StageRoot」以下に配置されたオブジェクトが、ステージ背景として処理されます。

※ オブジェクトの名前は「StageRoot」固定です。他の名前ではステージデータが正常に保存され

ません。

また、「StageRoot」以外に配置されたオブジェクトともステージ背景として保存されないので注

意してください。

同様の操作で「StageRoot」の下にオブジェクトを配置し、名前を「StageObject」に変更します。

この「StageObjectの下に背景となるオブジェクトを配置していきます。

(3) 背景オブジェクトを配置

背景用のオブジェクトを[StageRoot]の下に配置しましょう。

Page 21: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

21

➀地面を配置

メニューから

[GameObject]→[3D Object]→[Plane]

を選択して地面用のオブジェクトを配置して、オブジェクトの名前を「Plane」→「Ground」

に変更します。

②壁を配置

同様に[Quad]を使って四方の壁を配置して、それぞれオブジェクトの名前を「Wall1」~

「Wall4」に変更します。

Ground

Page 22: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

22

④ 障害物を配置

今度は[Cube]を使って障害物を配置します。

メニューから

[GameObject]→[3D Object]→[Cube]

を選択して障害物用のオブジェクトを配置して、オブジェクトの名前を「Cube1」~

「Cube3」に変更します。

Wall1 Wall2

Wall3 Wall4

Page 23: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

23

コリジョン用オブジェクトの設定

キャラクタの移動、壁との衝突などをサーバ側で処理するため、ゲーム内で描画されている背景オブジ

ェクトとは別にコリジョンデータをサーバで管理します。

そのため、背景コリジョンのデータを作成しましょう。

(1) コリジョン用オブジェクト配置

コリジョンデータは Unityのプリミティブオブジェクトで作成します。

コリジョンオブジェクトをまとめて扱えるよう親となるオブジェクトを作成します。

[Hierarchy]タブにある[Create▼]をクリックし、[Create Enpty]を選択してオブジェクトを追

Cube1 Cube2

Cube3

Page 24: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

24

加します。

追加したオブジェクトの名前を「Collision」に変更します。

※ コリジョン用オブジェクトの親オブジェクトの名称を便宜的に「Collision」という名前にして

いますが任意に変更できます。

今回はシンプルな構成のマップなので、「StageObject」以下のオブジェクトをデュプリケートして背

景コリジョン用のオブジェクトにします。

デュプリケートするオブジェクトを選択して、右クリックから

[Duplcate]

を選択し、オブジェクトの複製を作成し、名前を変更して「Collision」以下に移動します。

コリジョン用オブジェクトの配置座標を背景オブジェクトと同じにします。

(2) コリジョン用コンポーネントの追加

「Collision」以下に配置したオブジェクトにコリジョン属性を追加します。

コリジョン用オブジェクトの[Inspector]の[Add Component]から

[Add Component]→[Scripts]→[MOengine.Tools.Scripts.Collision]→[Collision

Attribute]

を選択します。

追加したコンポーネントの[Attribute]を[None]から、「Ground」は[Floor]に、「Wall」及び

Page 25: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

25

「Cube」は[Wall]に変更します。

コリジョン用オブジェクトの設定は以上で終了です。

経路探索領域の設定

エネミーキャラクタがプレイヤーキャラクタを検知し、追跡する際にプレイヤーキャラクタの座標ま

で移動する経路を探索します。

このとき、侵入可能な領域内で経路を探すため、侵入可能領域を設定します。

侵入の可否の判定は以下のように[InnerProbe][OuterProbe]という 2種類のオブジェクトの配置

場所から生成されます。

床コリジョン設定

壁・障害物コリジョン設定

Page 26: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

26

(1) プローブの配置

プローブは Unityのプリミティブオブジェクトを使用します。

プローブ用オブジェクトをまとめて扱えるよう親とな

るオブジェクトを作成します。

[Hierarchy]タブにある[Create▼]をクリック

し、[Create Enpty]を選択してオブジェクトを追加し

ます。

追加したオブジェクトの名前を「Navi」に変更しま

す。

さらに「Navi」の下にオブジェクトを二つ追加し、そ

れぞれ「InnerProbe」「OuterProbe」に名前を変更し

ます。

※ 侵入可能領域作成用オブジェクトの名称を便宜的

に「Navi」「InnerProbe」「OuterProbe」という

名前にしていますが任意に変更できます。

「InnerProbe」の下に

[GameObject]→[3D Object]→[Cube]

を作成し、各壁の隅に配置します。

同様に「OuterProbe」の下に

[GameObject]→[3D Object]→[Sphere]

を作成し、InnterProbeのオブジェクト間に前述のルールに従って配置します。

[Cube]及び[Sphere]の Rotationと Scaleはどちらも同じで以下の通りです。

【侵入可能領域の判定】

任意の InnerProbeは最も近い二つの

InnerProbeで三角形を構成します。

構成された三角形の各辺の中間点で侵入可能領

域外(コリジョン内)となる箇所に

OuterProbeを配置します。

左図のように配置すると、 色の箇所が侵入可

能領域としてデータが生成されます。

OuterProbe InnerProbe

侵入不可領域

侵入可能領域

Page 27: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

27

X Y Z

Rotation 0 0 0

Scale 1 1 1

※ InnerProbeに Cube、OuterProbeに Sphereを使うのはツール使用者が識別できるように便

宜的に使用しています。

配置するオブジェクトは、追加するコンポーネント(後述)の設定に依存するため

InnerProbe、OuterProbeどちらも形状を問いません。

また、上記の Rotation、Scaleも同様に便宜的なものです。数値によるゲームへの影響はあり

ません。

サンプルステージでは、下図のように InnerProbeと OuterProbeを配置します。

※ Probeの配置は厳密にコリジョン用オブジェクトの座標に重ねる必要はありません。多少のず

れがあった場合でも、経路探索の処理で問題は発生しません。

Page 28: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

28

配置するプローブの座標を以下に列記します。

Position Position

X Y Z X Y Z

Cube 9.897 0 7.447 Sphere -3.59 0 4.434

Cube1 10.014 0 -2.474 Sphere1 -4.59 0 5.34

Cube2 -5.047 0 -2.47 Sphere2 -4.59 0 3.62

Cube3 -5.53 0 3.463 Sphere3 -5.407 0 4.49

Cube4 -3.455 0 3.463 Sphere4 -4.926 0 -3.038

Cube5 -3.44 0 5.55 Sphere5 -0.04 0 -2.59

Cube6 -5.571 0 5.535 Sphere6 -0.21 0 -3.39

Cube7 -9.925 0 7.426 Sphere7 0.39 0 -7.09

Cube8 -5.05 0 -3.581 Sphere8 -0.01 0 -7.92

Cube9 -10.02 0 -6.93 Sphere9 4.942 0 -7.449

Cube10 5.02 0 -6.999 Sphere10 7.72 0 -3.39

Cube11 10.033 0 -3.65 Sphere11 7.68 0 -2.59

Cube12 9.85 0 -12.441 Sphere12 -7.81 0 -7.92

Cube13 5.02 0 -8.063 Sphere13 -7.81 0 -7.15

Cube14 -9.99 0 -8.06

Cube15 -9.929 0 -12.436

Cube16 5.02 0 -12.4

Cube17 9.88 0 -8.06

Cube18 9.94 0 -7

Cube19 5.02 0 -3.59

Cube20 5.02 0 -2.43

Cube21 5.02 0 7.441

Cube22 -5.05 0 -6.92

Cube23 -5.05 0 -8.05

Cube24 -5.05 0 -12.467

Cube25 -10.05 0 -3.58

Cube26 -9.98 0 -2.47

(2) 領域設定用コンポーネントの追加

「InnerProbe」と「OuterProbe」以下に配置したオブジェクトに侵入可・不可属性を追加しま

す。

「InnerProbe」「OuterProbe」の[Inspector]の[Add Component]から

Page 29: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

29

[Add Component]→[Scripts]→[MOengine.Tools.Scripts.Collision]→[Navigation

Probe]

を選択します。

下図のとおり「InnerProbe」の[Type]を[Inner]に、「OuterProbe」の[Type]を[Outer]に

設定ます。

この設定を行うことで、「InnerProbe」「OuterProbe」の配下に追加されるオブジェクトは、すべて

親となるオブジェクト「InnerProbe」「OuterProbe」の属性を持ちます。

※ コリジョン用オブジェクトと同様にオブジェクト個別に[Navigation Probe]のコンポーネン

トを追加しても同様の効果となります。

InnerProbe、OuterProbeをすべて配置し、親オブジェクトにアトリビュートのコンポーネントを追

加したら、経路探索領域の設定は終了です。

作業が終了したら、

[File]→[Save Scene]

で Sceneを保存しましょう。

ステージデータの保存

前項までで設定したステージに関するデータを、MOエンジンサーバ用のデータとして保存します。

メニューから

[MoEngine]→[StageEditor]

と選択して、ステージエディタを起動します。

OuterProbe InnerProbe

Page 30: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

30

[ステージデータを追加]をクリックして新しくステージデータを保存する項目作成します。

[StageMasterを保存]ボタンをクリックして、追加された項目を保存します。

追加した項目の[編集]ボタンをクリックして[StageDataEdit]ウィンドウを開きます。

① StageId

ステージの管理用 IDです。

自動採番されます。編集して別の IDを割り振ることも可能です。

編集する際は、ステージ IDが重複しないよう注意してください。

変更した場合は、StageEditorウィンドウで再度[StageMasterの保存]ボタンをクリックしてく

ださい。

② prefab

ゲームで使用するステージの背景データをプレハブとして保存します。

保存するプレハブのファイル名を指定します。

保存先フォルダ:

C:\Unity\MOengine \Assets\MOengine\Sample\Resources\Stage

➀ ②

③ ④

Page 31: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

31

ファイル名は

SimpleStage.prefab

とします。

③ コリジョンデータ

コリジョンデータ、及び経路探索用プローブデータを保存します。

保存するコリジョンデータのファイル名を指定します。

C:\Unity\MOengine\Master

ファイル名は

SimpleStage.cbin

とします。

④ ステージ初期化スクリプト

ステージのを保存します。

保存するステージ初期化スクリプトのファイル名を指定します。

保存先は以下を指定します。

C:\Unity\MOengine\Master

ファイル名は

SimpleStage_ini.inc

とします。

※ levelscript.mos内のステージ初期化スクリプトを読み込み指定した箇所を書き換えます。

以下のファイルを書き換えます。

フォルダ: moe_for_unity\tool\MOScriptConverter\level

ファイル: SimpleStage.mos

書き換える箇所は以下の通りです。

// ステージ初期化スクリプトをインクルード

#include "stage_init.inc" // ステージエディタから自動出力されます

// ステージ初期化スクリプトをインクルード

#include "SimpleStage_init.inc" // ステージエディタから自動出力されます

⑤ ステージスクリプト

参照するステージスクリプトのファイル名を指定します。

ファイル名は

Page 32: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

32

SimpleStage.bin

とします。

上記項目の入力が終了したら、[編集データを保存する]をクリックして編集状況を保存します。

本項の操作でステージの編集データが保存されました。

MO エンジン用のデータを出力する

前項までで編集したデータを MOエンジン用のデータとして出力します。

(1) プレハブデータ

[プレハブを作成]ボタンをクリックすると、作成したシーンの[StageRoot]以下のオブジェクト

がプレハブ化され、指定されたフォルダに保存されます。

(2) ステージ初期化スクリプト

ここまでの作業でプレイヤー/エネミーの配置情報が作成されいないため、ここでは保存しません。

(3) コリジョンデータ

Page 33: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

33

[コリジョンデータを出力]ボタンをクリックして、背景の壁コリジョン、及び経路探索用プローブ

データを保存します。

保存されたコリジョンデータは以下に保存されます。

フォルダ: C:\Unity\MOengine\Master

ファイル: SimpleStage.cbin

コリジョンデータは、サーバで使うため、以下のフォルダにコピーします。

コピー先のフォルダ: \server\BattleServer\bin\Data\collision

Page 34: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

34

ステージのプレハブデータを

4.2. キャラクタを追加しよう

MOエンジンのゲームにキャラクタを追加します。

MOエンジンでプレイヤー/エネミーキャラクタを制御するためにアクション用のスクリプトを作成しま

す。

【プレイヤー/エネミーキャラクタ共通】

・アクションスクリプト

プレイヤーのアクションを作ってみよう

UnityのMecanimを使って作成されたアニメーションデータをゲームキャラクタとして登録しましょ

う。

以下が使用するキャラクタの AnimationClipと AnimatorControllerが保存されているフォルダです。

AnimationClipが保存されているフォルダ:

C:\Unity\MOengine\Assets\MOengine\Sample\Resources\Unit\SimplePlayer\Clip

AnimatorControllerが保存されているファイル:

フォルダ:

C:\Unity\MOengine\Assets\MOengine\Sample\Resources\Unit\SimplePlayer\Animator

ファイル: SimplePlayer.controller

AnimatorControllerとステートにアタッチされている AnimationClipの内容は以下の通りです。

Page 35: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

35

ステートにアタッチされている AnimationClip一覧

ステート アニメーション 内容

idle idle.anim 待機状態

run run.anim 移動モーション

attack01 attack01.anim 攻撃モーション

damage01 damage01.anim 被ダメージモーション

down01 down01.anim ダウンモーション

down02 down02.anim ダウンモーション

down03 down03.anim ダウンモーション

以上のデータを基にMOエンジンサーバでキャラクタのアクションデータを処理するスクリプトを作成

します。

スクリプトの作成にはキャラクタエディタを使用します。

メニューから

[MoEngine]→[CharacterEditor]

と選択して、キャラクタエディタを起動します。

キャラクタエディタを起動すると[開始]のノードだけが表示されたウィンドウが起動します。

このウィンドウ上でマウスの右クリックでノード追加のメニューが開きます。

プレイヤーキャラクタの AnimatorController

Page 36: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

36

ノードを配置し、各ノードの[Out]と[In]をつなぐことで処理の流れを作成します。

エディタ中で頻繁に使うノードに[ステータスラベル]というノードがあります。

ノードのテキストボックスにラベル名を付けて他の処理から呼ぶ出すこともできます。

また、[エディタを開く]ボタンを使用してネストして処理を記述することが可能です。

※ 処理の流れの詳細は 2015年 6月 10日現在、記述中です。

ノードの機能や入出力データの種類は、『モノビット MOエンジン for Unity オフィシャルドキュ

メント』の「5.1.7.1. キャラクタ制御機能」を参照してください。

以下はプレイヤーキャラクタのアクションスクリプトをエディタで作成した例です。

基本的なアクションだけを記述しています。

スポーン

Page 37: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

37

移動

攻撃

エネミーからの被ダメージ

死亡

リスポーン

(1) 基本処理

ゲーム開始からのプレイヤーキャラクタのアクションの遷移です。

(2) プレイヤーキャラクタの初期化

ゲーム開始時のプレイヤーキャラクタデータの初期化処理です。

Page 38: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

38

(3) アイドル状態

プレイヤーの入力無し、エネミーからの攻撃も受けない状態です。

(4) プレイヤーキャラクタの移動

プレイヤーキャラクタの移動アニメーションを指定します。

Page 39: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

39

(5) 攻撃時のウェイト処理

(6) 被ダメージ時処理

(7) プレイヤーキャラクタ死亡時処理

Page 40: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

40

(8) 割り込み処理終了

(9) 与ダメージ時

(10) 入力に対するプレイヤーキャラクタのアクションの選択

Page 41: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

41

(11) プレイヤーキャラクの移動開始

(12) プレイヤーキャラクタの攻撃開始

Page 42: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

42

以上でプレイヤーキャラクタの基本的な動作スクリプトのフローになります。

入力が終了したら、[保存]ボタンをクリックしてフローを保存してください。

フォルダ: C:\Unity\Master

ファイル名: SimplePlayer.xlm

続いてキャラクタのアクションスクリプトをMOエンジン用のデータとして出力します。

[スクリプトを出力]ボタンをクリックして、保存してください。

フォルダ: C:\Unity\Master

ファイル名: SimplePlayer.mos

以上の保存の操作を行うと、ヘッダファイルも一緒に出力されます。

ファイル名: SimplePlayer_param.h

上記” SimplePlayer.mos”及び” SimplePlayer_param.h”は、バイナリファイルにコンバートする必要

があります。

そのため、上記二つのファイルを提供されたパッケージの以下のフォルダにコピーします。

フォルダ: \tool\MoScripts\player

プレイヤーキャラクタの登録

プレイヤーキャラクタのデータから MOエンジンサーバの管理データを作成します。

(1) ユニットマスタ登録

ユニットマスタは、ゲーム内で表示するプレイヤー/エネミーなど動的なオブジェクトに関する管理デ

ータを記録しています。

プレイヤー/エネミーキャラクタなど、ゲーム上で使用するオブジェクトはユニットマスタに登録しま

す。

ユニットマスタではひとつのユニットに対して以下のデータを登録します。

プレハブ

AnimationClip

初期ステート

プレイヤーアクションのスクリプト

メニューから

[MoEngine]→[MasterEditor]→[Unit]

と選択して、ユニットマスタエディタを起動します。

Page 43: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

43

[ユニットデータ追加]をクリックし、新規にユニットデータをを追加し、[編集]ボタンをクリック

して、詳細データを登録しましょう。

① UnitId

ユニット(ゲームで使用する動的オブジェクト)を管理するための IDです。

自動採番されます。編集して別の IDを割り振ることも可能です。

編集する際は、ユニット IDが重複しないよう注意してください。

② Prefab

ゲーム内でユニットとして使用するプレハブデータ(*.prefab)を指定します。

指定するファイルは

フォルダ: C:\Unity\MOengine\Assets\MOengine\Sample\Resources\Unit\Prefabs

ファイル: CH001_ASUKA_110000000.prefab

➀ ② ③

④ ⑤

Page 44: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

44

とします。

③ Animator

ゲーム内で使用する AnimatorContoller(*.controller)ファイルを指定します。

フォルダ:

C:\Unity\MOengine\Assets\MOengine\Sample\Resources\Unit\SimplePlayer\Anim

ator

ファイル: SimplePlayer.controller

④ StarAnimation

AnimatorControllerの開始ステートを指定ます。(AnimatorControllerの[Entry]の次のステー

ト)

ステートは

idle

と入力します。

※ プロジェクト内からファイル選択はできません。直接ステート名を入力してください。

⑤ Script

ユニットを制御するスクリプトファイルを指定します。

前項で作成したプレイヤーキャラクタのアクションスクリプトを指定します。

なお、スクリプトファイルは MOエンジンサーバで使用する際にバイナリ変換するためファイル名

の拡張子が異なることに注意してください。

script/simple_player_root.bin

と、入力します。

※ プロジェクト内からファイル選択はできません。直接スクリプトファイル名を入力してくださ

い。

⑥ Size

プレイヤーのコリジョンのサイズです。

現状、コリジョンの形状は Sphere固定です。

Sizeは

左図はプレイヤー(青線)、エネミ

ー(赤線)のコリジョンを視覚化し

たものです。

ユニットを中心としたスフィアとし

て設定されます。

Page 45: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

45

1

を入力します。

上記入力が終了したら、[編集データを保存する]をクリックしてデータを保存してください。

(2) プレイヤーマスタ登録

ユニットマスタに登録したキャラクタデータをプレイヤーとして使用するために、プレイヤーマスタ

に登録します。

メニューから

[MoEngine]→[MasterEditor]→[Player]

と選択して、プレイヤーマスタエディタを起動します。

[プレイヤーデータ追加]をクリックしてプレイヤーキャラクタの登録欄を追加します。

① プレイヤーID

プレイヤーキャラクタを管理するための IDです。

自動採番されます。編集して別の IDを割り振ることも可能です。

編集する際は、プレイヤーIDが重複しないよう注意してください。

② ユニット ID

プレイヤーキャラクタとして使用するキャラクタをユニット IDで指定します。

ユニット IDの指定はプルダウンリストから選択します。

前項で登録したキャラクタのユニット IDを選択しましょう。

③ 名前

➀ ② ③

Page 46: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

46

ゲーム内で使用するキャラクタの名前です。任意の名前を付けましょう。

上記入力が終了したら、[プレイヤーマスタを保存]をクリックしてデータを保存してください。

エネミーのアクションを作ろう

UnityのMecanimを使って作成されたアニメーションデータを作成し、ゲームキャラクタとして登録し

ましょう。

サンプルは、スパイダーのデータを使います。

以下が使用するキャラクタの AnimationClipと AnimatorControllerが保存されているフォルダです。

AnimationClipが保存されているフォルダ:

C:\data\MoEngine\action_demo\client\Assets\MOengine\Sample\Resources\Unit\Enem

y\spider\Animation

AnimatorControllerが保存されているファイル:

フォルダ:

\data\MoEngine\action_demo\client\Assets\MOengine\Sample\Resources\Unit\Enemy\

spider\Animator

ファイル: SpiderAnimation.controller

AnimatorControllerとステートにアタッチされている AnimationClipの内容は以下の通りです。

Page 47: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

47

ステートにアタッチされている AnimationClip一覧

ステート アニメーション 内容

idle idle.anim 待機状態

move01 move01.anim 移動モーション

attack01 attack01.anim 攻撃モーション

damage01 damage01.anim 被ダメージモーション

down down.anim やられモーション

以上のデータを基に MOエンジンサーバでキャラクタのアクションデータを処理するスクリプトを作成し

ます。

スクリプトの作成にはプレイヤーキャラクタと同様にキャラクタエディタを使用します。

メニューから

[MoEngine]→[CharacterEditor]

と選択して、キャラクタエディタを起動します。

エネミーキャラクタの AnimatorController

Page 48: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

48

以下はエネミーキャラクタのアクションスクリプトをエディタで作成した例です。

プレイヤーキャラクタと同様に基本的なアクションだけを記述しています。

スポーン

移動

攻撃

エネミーからの被ダメージ

死亡

リスポーン

(1) 基本処理

(2) エネミーキャラクタデータの初期化

ゲーム開始時のエネミーキャラクタの初期化処理

(3) アイドル状態

Page 49: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

49

割り込み処理が入るまで、待機状態が続きます。

(4) 被ダメージ時

プレイヤーキャラクタの攻撃による被ダメージのアクション。

(5) エネミーキャラクタ死亡時

エネミーキャラクタのヒットポイントが0になった際の死亡アクション

Page 50: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

50

(6) 割り込み処理終了

(7) AIによる割り込み処理発生時のアクション選択

スパイダーの AIに割り込みが入り、その内容によって分岐処理が発生した際の遷移です。

移動か攻撃が遷移先にあります。

エネミーの AIについては[4.2.3エネミーのアクションを作ろう]を参照してください。

(8) 移動開始

エネミーキャラクタが移動を開始。

Page 51: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

51

(9) 攻撃開始

(10) 与ダメージ

プレイヤーキャラクタにダメージを与えた際の

以上でエネミーキャラクタの基本的な動作スクリプトのフローになります。

入力が終了したら、[保存]ボタンをクリックしてフローを保存してください。

フォルダ: C:\Unity\Master

Page 52: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

52

ファイル名: SimpleSpider.xlm

続いてキャラクタのアクションスクリプトをMOエンジン用のデータとして出力します。

[スクリプトを出力]ボタンをクリックして、保存してください。

フォルダ: C:\Unity\Master

ファイル名: SimpleSpider.mos

以上の保存の操作を行うと、ヘッダファイルも一緒に出力されます。

ファイル名: SimpleSpider_param.h

上記” SimpleSpider.mos”及び” SimpleSpider_param.h”は、バイナリファイルにコンバートする必要

があります。

そのため、上記二つのファイルを提供されたパッケージの以下のフォルダにコピーします。

フォルダ: \tool\MoScripts\enemy

エネミーキャラクタの登録

プレイヤーキャラクタと同様にエネミーキャラクタもユニットマスタの登録を行います。

(1) ユニットマスタ登録

プレイヤーマスタ同様にエネミーキャラクタの以下のデータを登録します。

プレハブ

AnimationClip

初期ステート

プレイヤーアクションのスクリプト

メニューから

[MoEngine]→[MasterEditor]→[Unit]

と選択して、ユニットマスタエディタを起動しまし、[ユニットデータの追加]をクリックして追加さ

れた項目で[編集]をクリックします。

Page 53: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

53

⑦ UnitId

ユニット(ゲームで使用する動的オブジェクト)を管理するための IDです。

自動採番されます。編集して別の IDを割り振ることも可能です。

編集する際は、ユニット IDが重複しないよう注意してください。

⑧ Prefab

ゲーム内でユニットとして使用するプレハブデータ(*.prefab)を指定します。

指定するファイルは

フォルダ: C:\Unity\MOengine\Assets\MOengine\Sample\Resources\Unit\Prefabs

ファイル: spider_07_00_00.prefab

とします。

⑨ Animator

ゲーム内で使用する AnimatorContoller(*.controller)ファイルを指定します。

フォルダ:

C:\Unity\MOengine\Assets\MOengine\Sample\Resources\Unit\Enemy\spider\Ani

mator

ファイル: SpiderAnimation.controller

⑩ StarAnimation

AnimatorControllerの開始ステートを指定ます。(AnimatorControllerの[Entry]の次のステー

ト)

ステートは

idle

と入力します。

※ プロジェクト内からファイル選択はできません。直接ステート名を入力してください。

⑪ Script

ユニットを制御するスクリプトファイルを指定します。

前項で作成したプレイヤーキャラクタのアクションスクリプトを指定します。

なお、スクリプトファイルは MOエンジンサーバで使用する際にバイナリ変換するためファイル名

の拡張子が異なることに注意してください。

script/simple_spider_root.bin

➀ ② ③

④ ⑤

Page 54: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

54

と、入力します。

※ プロジェクト内からファイル選択はできません。直接スクリプトファイル名を入力してくださ

い。

⑫ Size

プレイヤーのコリジョンのサイズです。

1

を入力します。

上記入力が終了したら、[編集データを保存する]をクリックしてデータを保存してください。

(2) プレイヤーマスタ登録

ユニットマスタに登録したキャラクタデータをプレイヤーとして使用するために、プレイヤーマスタ

に登録します。

メニューから

[MoEngine]→[MasterEditor]→[Enemy]

と選択して、エネミーマスタエディタを起動します。

[エネミーデータ追加]をクリックしてエネミーキャラクタの登録欄を追加します。

① エネミーID

エネミーキャラクタを管理するための IDです。

自動採番されます。編集して別の IDを割り振ることも可能です。

編集する際は、プレイヤーIDが重複しないよう注意してください。

② ユニット ID

エネミーキャラクタとして使用するキャラクタをユニット IDで指定します。

➀ ② ③ ④

Page 55: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

55

ユニット IDの指定はプルダウンリストから選択します。

前項で登録したキャラクタのユニット IDを選択しましょう。

③ 名前

ゲーム内で使用するキャラクタの名前です。任意の名前を付けましょう。

ここでは「シンプルスパイダー」と入力します。

④ AIスクリプト

エネミーキャラクタの動作を決める AIのスクリプトのファイル名を指定します。

AIスクリプトについては、事項で解説します。

ここでは

script/simple_spider_ai.bin

と、入力します。

上記入力が終了したら、[プレイヤーマスタを保存]をクリックしてデータを保存してください。

エネミーキャラクタの AI を作ってみよう

AIエディタで新規 AIファイルを作成します。

AIエディタの操作は、AIエディタ特有の機能のノードもありますが、キャラクタエディタとほぼ同様で

す。

※ 処理の流れの詳細は 2015年 6月 10日現在、記述中です。

ノードの機能や入出力データの種類は、『モノビット MOエンジン for Unity オフィシャルドキュ

メント』の「5.1.8.1. AI制御機能一覧」を参照してください。

(1) 基本処理

Page 56: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

56

(2) アイドル状態

アイドル状態で[プレイヤー探知]で指定された範囲内にプレイヤーキャラクタが存在しないか探知

処理を行います。

(3) アプローチ

検知したプレイヤーキャラクタのユニット IDの取得とプレイヤーキャラクタの座標を取得します。

取得した座標が指定の範囲内であれば攻撃行動を遷移します。

➀[開始]

ゲームがスタートした後、「idle」のステ

ートを繰り返します。

➀[開始]

ゲームがスタートした後、「idle」のステ

ートを繰り返します。

Page 57: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

57

(4) 攻撃開始

(5) アプローチ開始

入力が終了したら、[保存]ボタンをクリックしてフローを保存してください。

フォルダ: C:\Unity\Master

ファイル名: simple_spider_ai.xlm

Page 58: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

58

続いてキャラクタのアクションスクリプトを MOエンジン用のデータとして出力します。

[スクリプトを出力]ボタンをクリックして、保存してください。

フォルダ: C:\Unity\Master

ファイル名: simple_spider_ai.mos

以上の保存の操作を行うと、ヘッダファイルも一緒に出力されます。

ファイル名: simple_spider_ai_param.h

上記”simple_spider_ai.mos”及び”simple_spider_ai_param.h”は、バイナリファイルにコンバートする

必要があります。

そのため、上記二つのファイルを提供されたパッケージの以下のフォルダにコピーします。

フォルダ: \tool\MoScripts\enemy

MO エンジン用キャラクタデータを出力する

(1) ユニットマスタの出力

プレイヤー/エネミーキャラクタデータ双方の登録が終了したあとに、ユニットデータを MOエンジン

用のデータとして出力します。

[UnitMasterを保存]ボタンをクリックしてユニットマスタ情報を保存します。

保存先は以下です。

フォルダ: C:\Unity\MOengine\Master

ファイル名: UnitMaster.json

上記ファイルをサーバで使うため、以下のフォルダにコピーします。

Page 59: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

59

コピー先のフォルダ: \server\BattleServer\bin\Data\master

(2) プレイヤーマスタの出力

プレイヤーキャラクタデータの登録が終了したあとに、プレイヤーデータを MOエンジン用のデータ

として出力します。

[PlayerMasterを保存]ボタンをクリックしてプレイヤーマスタ情報を保存します。

保存先は以下です。

フォルダ: C:\Unity\MOengine\Master

ファイル名: PlayerMaster.json

上記ファイルをサーバで使うため、以下のフォルダにコピーします。

コピー先のフォルダ: \server\BattleServer\bin\Data\master

(3) エネミーマスタの保存

エネミーキャラクタデータの登録が終了したあとに、プレイヤーデータをMOエンジン用のデータと

して出力します。

Page 60: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

60

[EnemyMasterを保存]ボタンをクリックしてプレイヤーマスタ情報を保存します。

保存先は以下です。

フォルダ: C:\Unity\MOengine\Master

ファイル名: EnemyMaster.json

上記ファイルをサーバで使うため、以下のフォルダにコピーします。

コピー先のフォルダ: \server\BattleServer\bin\Data\master

Page 61: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

61

4.3. キャラクタを配置しよう

[4.1ステージを設計しよう]で作成したステージ上にプレイヤー/エネミーキャラクタの初期出現ポイン

トと再出現ポイントを配置します。

[4.1ステージを設計しよう]で作成したステージのシーンを読み込みます。

フォルダ: C:\Unity\MOengine \Assets\MOengine\Sample\Resources\Stage

ファイル: SimpleStage.prefab

メニューから

[MoEngine]→[StageEditor]

と選択して、ステージエディタを起動します。

プレイヤーキャラクタの出現位置を設定しよう

Page 62: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

62

[チーム初期情報を配置]ボタンをクリックします。

[TeamInfo]というオブジェクトが作成され、その下に[Team]というオブジェクトが作成されま

す。

対戦ゲームなので、相手の配置情報を策するため[チーム初期情報を配置]ボタンをクリックしま

す。

二つの[Team]オブジェクトの名前を変更します。名前は

[TeamInitA]

[TeamInitB]

としましす。

各オブジェクトの[Inspector]に入力情報(スクリプト)が表示されているので、必要な情報を入力

します。

Transform プレイヤーの出現する座標等の情報

画面上の座標 (下図) をマウスでドラッグして座標を指定することも可能です。

Type 初期値入力済みのため入力不要です。

Team ID チームの ID (青チーム、赤チーム) を入力。

Range (未実装)出現範囲。

以下を参考にして入力してください。

Page 63: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

63

同様にプレイヤーキャラクタのリスポーン座標を配置します。

StageEditorの[チームリスポーン情報を配置]をクリックして[TeamInfo]の下に

[TeamRespawn]を二つ作成し、それぞれの名前を

[TeamRespawnA]

[TeamRespawnB]

とします。

初期情報の配置同様に、以下を参考に必要な情報を入力してください。

Page 64: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

64

入力が終了したら、[編集データを保存する]をクリックして保存しましょう。

エネミーキャラクタの出現位置を設定しよう

プレイヤーの配置同様にエネミーの配置も行います。

[敵を配置]ボタンをクリックすると[EnemyInfo]というオブジェクトが作成され、その下に

[Enemy]というオブジェクトが作成されます。

Page 65: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

65

さらにもう一度[敵を配置]ボタンをクリックしてエネミー2体を配置します。

それぞれのオブジェクト名前を[Enemy]から[Spider]に変更します。

Type 変更せず、[Default]のままにします。

Unit Id 前項で入力した敵のユニット IDを入力します。

以下の内容を参考にそれぞれ入力してください。

※ [Unit Id]は、[4.2.4エネミーキャラクタの登録]で登録したユニット IDを指定してください。

編集時に識別しやすくするため、出現するエネミーのオブジェクトを [Enemy] にドラッグ&ドロッ

プして子要素として配置します。

スパイダーのオブジェクトは以下にあります。

フォルダ: C:\Unity\MOengine\Assets\MOengine\Sample\Resources\Unit\Prefabs

ファイル: spider_07_00_00.prefab

Page 66: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

66

これでキャラクタの配置は終了です。

MO エンジン用ステージデータを出力する

プレイヤー/エネミーデータを配置が完了した後に、MOエンジン用のステージデータを出力します。

(1) ステージマスタの出力

MOエンジン用のデータとして出力します。

[StegeMasterを保存]ボタンをクリックしてユニットマスタ情報を保存します。

保存先は以下です。

フォルダ: C:\Unity\MOengine\Master

ファイル名: StageMaster.json

上記ファイルをサーバで使うため、以下のフォルダにコピーします。

コピー先のフォルダ: \server\BattleServer\bin\Data\master

Page 67: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

67

ステージ初期化スクリプトの出力

[ステージ初期化スクリプトを出力]ボタンをクリックしてステージ初期化スクリプトを出力しま

す。

保存先は以下です。

フォルダ: C:\Unity\MOengine\Master

ファイル名: SimpleStage_init.inc

上記ファイルをサーバで使うため、以下のフォルダにコピーします。

コピー先のフォルダ: \tool\MoScripts\level

Page 68: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

68

4.4. MO エンジンサーバにデータを反映しよう

MOエンジンサーバで使用するデータをサーバのデータフォルダにコピーして、MOエンジンサーバが読み

込めるように処理します。

スクリプトのバイナリ変換

これまで作成したスクリプトファイルを MOエンジンで読み込めるようにバイナリ化します。

対象になるファイルは以下の通りです。

フォルダ Package \tool\MoScripts\level

ファイル SimpleStage.mos

SimpleStage_init.inc

フォルダ Package \tool\MoScripts\enemy

ファイル SimpleSpider.mos

SimpleSpider_param.h

simple_spider_ai.mos

simple_spider_ai_param.h

フォルダ Package \tool\MoScripts\player

ファイル SimplePlayer.mos

SimplePlayer_param.h

バイナリにコンバートするには、上記のファイルを所定のフォルダに保存し、以下のバッチファイル

を実行します。

実行用バッチファイル:

Package\tool\MoScripts\mos_all.bat

バッチファイルを実行すると、拡張子が”mos”のファイルと同名で拡張子が”bin”になっているファイル

が生成されます。

これらのファイルがバイナリにコンバートされたファイルです。

さらに、これらのバイナリにコンバートされたファイル(*.bin)ファイルをすべて以下のフォルダにコ

ピーします。

コピー先のフォルダ: \server\BattleServer\bin\Data\script

Page 69: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

69

ソース編集

登録したデータを使ってゲームが起動するよう、ソースの以下の箇所を編集します。

(1) ステージ選択

以下のファイルの該当箇所を編集することで作成したステージを読み込みます。

フォルダ C:\Unity\MOengine\Assets\MOengine\Sample\Scripts\System

ファイル MOEngineInterface.cs

SystemNodeManager.Instance.moeFrame.SendStageSelect( 1 );

上記の末尾の「( 1 )」を、ステージエディタで登録したステージ IDに変更します。

(2) プレイヤー

以下のファイルの該当箇所を編集することで登録したプレイヤーキャラクタを使用します。

フォルダ C:\Unity\MOengine\ Assets\MOengine\Sample\Scripts\Scene

ファイル TeamSelectManager.cs

// プレイヤーID設定

//this.PlayerId = (int)UnityEngine.Random.Range(100.0f, 105.0f);

this.PlayerId = 102;

上記の末尾の「102」を、プレイヤーマスタエディタで登録したプレイヤーIDに変更します。

以上の操作が終了したら[0

Page 70: MO エンジン for Unity クイックスタートガイドUnityが起動し、Unityの画面が表示されます。これで空の状態のプロジェクトが作成されました。

クイックスタートガイド

70

サンプルゲームをプレイしよう]の内容通りにゲームを起動しましょう。

作成したステージ上で、登録したキャラクタが配置され、ゲームがプレイできます。