ダウンロード - モノビットエンジン公式サイト

MO エンジン for Unity
クイックスタートガイド
2015 月 6 月 15 日
株式会社モノビット
クイックスタートガイド
更新履歴
版数
日付
改定履歴
1.03
2015 年 7 月 23 日
バイナリファイルのコピー先フォルダ名の誤りを
修正
1.02
2015 年 6 月 15 日
ゲームプレイ時に発生するエラー回避方法を
追記。
1.01
2015 年 6 月 12 日
フォルダ構成、ファイル名等誤記の修正
1.00
2015 年 6 月 10 日
初版作成
2
備考
クイックスタートガイド
目次
1.
はじめに ...................................................................................................................... 5
1.1.
2.
MO エンジンの概念を理解しよう .................................................................................. 5
MO エンジンをインストールしよう..................................................................................... 6
2.1.
Windows PC の環境設定をしよう................................................................................. 6
2.2.
Unity をインストールしよう........................................................................................ 7
2.3.
MO エンジンクライアントをインストールしよう .............................................................. 8
プロジェクトを作成 ............................................................................................. 8
MO エンジンクライアントのインポート .................................................................... 8
[Master]フォルダのコピー................................................................................. 9
サンプルゲームのデータをインポート .................................................................... 10
2.4.
3.
MO エンジンサーバをインストールしよう..................................................................... 10
サンプルゲームをプレイしよう ........................................................................................ 11
3.1.
ゲームシーンを開く ................................................................................................ 11
3.2.
通信設定 .............................................................................................................. 11
クライアント設定 ............................................................................................. 11
サーバ設定 ...................................................................................................... 12
3.3.
4.
ゲームをスタートしよう ........................................................................................... 13
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
3
クイックスタートガイド
4.4.
MO エンジンサーバにデータを反映しよう..................................................................... 68
スクリプトのバイナリ変換 .................................................................................. 68
ソース編集 ...................................................................................................... 69
4
クイックスタートガイド
1. はじめに
1.1. MO エンジンの概念を理解しよう
MO エンジンとは独自スクリプト(MO-Script)で駆動するネットワークゲームエンジンです。
MO エンジンのサーバはバトルサーバと呼び、インゲームのプレイヤーの入力、敵キャラクタの行動、イベ
ントの処理、ステージクリア条件の判定など、ゲームの処理を行い、その結果をクライアントに送信しま
す。
クライアント側の MO エンジンは、バトルサーバから送られたデータを基にクライアント(Unity)をビュー
アとしてゲームシーンを再生します。
インゲームの様々な設定や制御情報をバトルサーバが処理を行い、ゲームの制御・調停を行います。
MO エンジンで処理されたデータはクライアントに送信され、クライアントはそのデータを基にゲームシー
ンを再生するビューアとして稼働します。
バトルサーバでゲームの制御を行うスクリプト、マスタデータは、GUI 化された専用のエディタで生成・
編集を行います。
専用ツール類は Unity5 のプラグインとして提供されます。
※ 一部ゲームに固有の仕様に関わるスクリプトは直接編集する必要があります。
5
クイックスタートガイド
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 の場合
6
クイックスタートガイド
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 で動作します。
7
クイックスタートガイド
以下のサイトの[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]
8
クイックスタートガイド
を選択しましょう。
[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
9
クイックスタートガイド
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
10
クイックスタートガイド
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
11
クイックスタートガイド
[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)オプション
オプション
説明
例
12
クイックスタートガイド
-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. ゲームをスタートしよう
前項までの操作で、ゲームをスタートする準備ができました。
サンプルゲームの概要は以下の通りです。
【ゲーム概要】
ステージ中の敵を攻撃して撃破して獲得するポイントを競うゲームです。
いずれかのチームがクリア条件となるポイントを獲得するか、制限時間終了時にポイントが高いチーム
が勝利となります。
【操作方法】
スタート ........................ タイトル画面で[バトル開始]ボタンをクリック
チーム選択 ..................... チーム選択画面で[青チーム]また[赤チーム]どちらかをクリック
キャラクタ移動................ マウスの左ボタンでドラッグ
攻撃 .............................. 左ボタンクリック
スキルパワーチャージ ....... 左ボタンを押したまま
スキル発動 ..................... マウス左ボタンを押したまま、カーソルをスキルアイコンに移動
13
クイックスタートガイド
Unity エディタ上で、
[▶]ボタンをクリックすると、ゲームスタート画面が表示されます。
表示された[スタート]ボタンをクリックします。
※ エラーが発生する場合
以下のエラーメッセージが表示されて[バトル開始]から[チーム選択画面]に遷移しない場合、下記
14
クイックスタートガイド
の説明をご覧の上操作を行ってください。
何らかの理由で
Assets/MOengine/Sample/Scenes/TeamSelect.unity
がロードできないというエラーメッセージです。
読み込めないシーンを指定してロードする手順を説明します。
(1) ビルドセッティングウィンドウを開く
[▶]ボタンを解除し、メニューより
[File]→[Build Settings...]
を選択し、ビルドセッティングウィンドウを開きます。
15
クイックスタートガイド
(2) シーンファイルをドラッグ&ドロップ
ビルドセッティングウィンドウの[Scene In BUild]内に
MOengine/Sample/Scenes/TeamSelect.unity
など、シーンが表示されていない場合、以下のようにこれをドラッグ&ドロップで追加してくださ
い。
選択したシーンをドラッグ&ド
ロップします。
16
クイックスタートガイド
本来リストに表示されるシーンは、以下の通りです。

GameMain.unity

Result.unity

SimpleStageSample.unity

StageEditSampleScene.unity

TeamSelect.unity

Title.unity
(3) チェックボックスの確認
リストにシーンが表示されている場合はチェックが入っているかを確認し、入っていなければチェッ
クを入れてください。
チェックリストにチェックが入
っていなければチェックを入れ
ます。
(4) ビルドセッティングウィンドウを閉じる
[Scenes In Build]に必要なシーンが表示され、チェックボックスにチェックが入った状態で右上の
[×]ボタンでウィンドウを閉じます。
17
クイックスタートガイド
以上の操作が終了した後に、再度ゲームスタートの操作を行ってください。
18
クイックスタートガイド
4. MO エンジンの機能を使ってみよう
MO エンジンのサンプルプロジェクトに含まれているシンプルなデータを使ってゲームを編集します。
ステージ構成、キャラクタのアクション等サンプルゲームよりシンプルな構成のゲームで MO エンジンの仕
様を理解しやすく説明します。
本章では以下の内容を説明します。
(1) ステージ設計
Unity 上で作成した背景を基にコリジョンなどの管理データを作成します。
(2) プレイヤーキャラクタの追加
Unity 上で作成したキャラクタデータを基にプレイヤー/エネミーのアクションを管理するスクリプトを作
成します。
また、キャラクタのプレハブ、AnimationClip、AnimatorController といったアニメーションデータをキ
ャラクタに関連付けます。
(3) エネミーキャラクタの追加
プレイヤーキャラクタの追加同様に、スクリプトの作成、アニメーションデータの関連付けを行います。
また、AI データも作成します。
(4) ステージ配置
ステージ上に追加したキャラクタを配置してゲームがプレイできるように設定します。
(5) データの反映
上記で作成した各種データを MO エンジンサーバに反映させます。
4.1. ステージを設計しよう
MO エンジンサーバが参照するステージのマップデータを作成します。
Unity 上でゲームを制作するときとは異なり、ステージを制御するデータはすべて MO エンジンサーバが
管理します。
本項ではステージに関する以下のデータを作成します。

ステージで使用する背景のプレハブ

壁コリジョンデータ

エネミーがステージ上で経路探索をする際のエリアデータ
プレハブの作成
本項では、シンプルなステージを作成するため、プリミティブオブジェクトを使ってステージのデータ
19
クイックスタートガイド
を作成します。
既存のアセットでオブジェクト配置し、本項に書かれているコリジョンデータ、経路探索領域作成用プ
ローブの配置を行うことで別途ステージを作成することができます。
(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]の下に配置しましょう。
20
クイックスタートガイド
➀地面を配置
メニューから
[GameObject]→[3D Object]→[Plane]
を選択して地面用のオブジェクトを配置して、オブジェクトの名前を「Plane」→「Ground」
に変更します。
Ground
②壁を配置
同様に[Quad]を使って四方の壁を配置して、それぞれオブジェクトの名前を「Wall1」~
「Wall4」に変更します。
21
クイックスタートガイド
Wall1
Wall2
Wall3
Wall4
④ 障害物を配置
今度は[Cube]を使って障害物を配置します。
メニューから
[GameObject]→[3D Object]→[Cube]
を選択して障害物用のオブジェクトを配置して、オブジェクトの名前を「Cube1」~
「Cube3」に変更します。
22
クイックスタートガイド
Cube1
Cube2
Cube3
コリジョン用オブジェクトの設定
キャラクタの移動、壁との衝突などをサーバ側で処理するため、ゲーム内で描画されている背景オブジ
ェクトとは別にコリジョンデータをサーバで管理します。
そのため、背景コリジョンのデータを作成しましょう。
(1) コリジョン用オブジェクト配置
コリジョンデータは Unity のプリミティブオブジェクトで作成します。
コリジョンオブジェクトをまとめて扱えるよう親となるオブジェクトを作成します。
[Hierarchy]タブにある[Create▼]をクリックし、[Create Enpty]を選択してオブジェクトを追
23
クイックスタートガイド
加します。
追加したオブジェクトの名前を「Collision」に変更します。
※ コリジョン用オブジェクトの親オブジェクトの名称を便宜的に「Collision」という名前にして
いますが任意に変更できます。
今回はシンプルな構成のマップなので、
「StageObject」以下のオブジェクトをデュプリケートして背
景コリジョン用のオブジェクトにします。
デュプリケートするオブジェクトを選択して、右クリックから
[Duplcate]
を選択し、オブジェクトの複製を作成し、名前を変更して「Collision」以下に移動します。
コリジョン用オブジェクトの配置座標を背景オブジェクトと同じにします。
(2) コリジョン用コンポーネントの追加
「Collision」以下に配置したオブジェクトにコリジョン属性を追加します。
コリジョン用オブジェクトの[Inspector]の[Add Component]から
[Add Component]→[Scripts]→[MOengine.Tools.Scripts.Collision]→[Collision
Attribute]
を選択します。
追加したコンポーネントの[Attribute]を[None]から、
「Ground」は[Floor]に、「Wall」及び
24
クイックスタートガイド
「Cube」は[Wall]に変更します。
床コリジョン設定
壁・障害物コリジョン設定
コリジョン用オブジェクトの設定は以上で終了です。
経路探索領域の設定
エネミーキャラクタがプレイヤーキャラクタを検知し、追跡する際にプレイヤーキャラクタの座標ま
で移動する経路を探索します。
このとき、侵入可能な領域内で経路を探すため、侵入可能領域を設定します。
侵入の可否の判定は以下のように[InnerProbe]
[OuterProbe]という 2 種類のオブジェクトの配置
場所から生成されます。
25
クイックスタートガイド
InnerProbe
OuterProbe
【侵入可能領域の判定】
任意の InnerProbe は最も近い二つの
InnerProbe で三角形を構成します。
侵入不可領域
構成された三角形の各辺の中間点で侵入可能領
域外(コリジョン内)となる箇所に
OuterProbe を配置します。
左図のように配置すると、
色の箇所が侵入可
能領域としてデータが生成されます。
侵入可能領域
(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 はどちらも同じで以下の通りです。
26
クイックスタートガイド
X
Y
Z
Rotation
0
0
0
Scale
1
1
1
※ InnerProbe に Cube、OuterProbe に Sphere を使うのはツール使用者が識別できるように便
宜的に使用しています。
配置するオブジェクトは、追加するコンポーネント(後述)の設定に依存するため
InnerProbe、OuterProbe どちらも形状を問いません。
また、上記の Rotation、Scale も同様に便宜的なものです。数値によるゲームへの影響はあり
ません。
サンプルステージでは、下図のように InnerProbe と OuterProbe を配置します。
※ Probe の配置は厳密にコリジョン用オブジェクトの座標に重ねる必要はありません。多少のず
れがあった場合でも、経路探索の処理で問題は発生しません。
27
クイックスタートガイド
配置するプローブの座標を以下に列記します。
Position
X
Position
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]から
28
クイックスタートガイド
[Add Component]→[Scripts]→[MOengine.Tools.Scripts.Collision]→[Navigation
Probe]
を選択します。
下図のとおり「InnerProbe」の[Type]を[Inner]に、「OuterProbe」の[Type]を[Outer]に
設定ます。
OuterProbe
InnerProbe
この設定を行うことで、
「InnerProbe」
「OuterProbe」の配下に追加されるオブジェクトは、すべて
親となるオブジェクト「InnerProbe」
「OuterProbe」の属性を持ちます。
※ コリジョン用オブジェクトと同様にオブジェクト個別に[Navigation Probe]のコンポーネン
トを追加しても同様の効果となります。
InnerProbe、OuterProbe をすべて配置し、親オブジェクトにアトリビュートのコンポーネントを追
加したら、経路探索領域の設定は終了です。
作業が終了したら、
[File]→[Save Scene]
で Scene を保存しましょう。
ステージデータの保存
前項までで設定したステージに関するデータを、MO エンジンサーバ用のデータとして保存します。
メニューから
[MoEngine]→[StageEditor]
と選択して、ステージエディタを起動します。
29
クイックスタートガイド
[ステージデータを追加]をクリックして新しくステージデータを保存する項目作成します。
[StageMaster を保存]ボタンをクリックして、追加された項目を保存します。
追加した項目の[編集]ボタンをクリックして[StageDataEdit]ウィンドウを開きます。
➀
②
③
⑤
④
① StageId
ステージの管理用 ID です。
自動採番されます。編集して別の ID を割り振ることも可能です。
編集する際は、ステージ ID が重複しないよう注意してください。
変更した場合は、StageEditor ウィンドウで再度[StageMaster の保存]ボタンをクリックしてく
ださい。
② prefab
ゲームで使用するステージの背景データをプレハブとして保存します。
保存するプレハブのファイル名を指定します。
保存先フォルダ:
C:\Unity\MOengine \Assets\MOengine\Sample\Resources\Stage
30
クイックスタートガイド
ファイル名は
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"
// ステージエディタから自動出力されます
⑤ ステージスクリプト
参照するステージスクリプトのファイル名を指定します。
ファイル名は
31
クイックスタートガイド
SimpleStage.bin
とします。
上記項目の入力が終了したら、
[編集データを保存する]をクリックして編集状況を保存します。
本項の操作でステージの編集データが保存されました。
MO エンジン用のデータを出力する
前項までで編集したデータを MO エンジン用のデータとして出力します。
(1) プレハブデータ
[プレハブを作成]ボタンをクリックすると、作成したシーンの[StageRoot]以下のオブジェクト
がプレハブ化され、指定されたフォルダに保存されます。
(2) ステージ初期化スクリプト
ここまでの作業でプレイヤー/エネミーの配置情報が作成されいないため、ここでは保存しません。
(3) コリジョンデータ
32
クイックスタートガイド
[コリジョンデータを出力]ボタンをクリックして、背景の壁コリジョン、及び経路探索用プローブ
データを保存します。
保存されたコリジョンデータは以下に保存されます。
フォルダ: C:\Unity\MOengine\Master
ファイル: SimpleStage.cbin
コリジョンデータは、サーバで使うため、以下のフォルダにコピーします。
コピー先のフォルダ:
\server\BattleServer\bin\Data\collision
33
クイックスタートガイド
ステージのプレハブデータを
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 の内容は以下の通りです。
34
クイックスタートガイド
プレイヤーキャラクタの AnimatorController
ステートにアタッチされている 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]
と選択して、キャラクタエディタを起動します。
キャラクタエディタを起動すると[開始]のノードだけが表示されたウィンドウが起動します。
このウィンドウ上でマウスの右クリックでノード追加のメニューが開きます。
35
クイックスタートガイド
ノードを配置し、各ノードの[Out]と[In]をつなぐことで処理の流れを作成します。
エディタ中で頻繁に使うノードに[ステータスラベル]というノードがあります。
ノードのテキストボックスにラベル名を付けて他の処理から呼ぶ出すこともできます。
また、
[エディタを開く]ボタンを使用してネストして処理を記述することが可能です。
※ 処理の流れの詳細は 2015 年 6 月 10 日現在、記述中です。
ノードの機能や入出力データの種類は、
『モノビット MO エンジン for Unity オフィシャルドキュ
メント』の「5.1.7.1.
キャラクタ制御機能」を参照してください。
以下はプレイヤーキャラクタのアクションスクリプトをエディタで作成した例です。
基本的なアクションだけを記述しています。

スポーン
36
クイックスタートガイド

移動

攻撃

エネミーからの被ダメージ

死亡

リスポーン
(1) 基本処理
ゲーム開始からのプレイヤーキャラクタのアクションの遷移です。
(2) プレイヤーキャラクタの初期化
ゲーム開始時のプレイヤーキャラクタデータの初期化処理です。
37
クイックスタートガイド
(3) アイドル状態
プレイヤーの入力無し、エネミーからの攻撃も受けない状態です。
(4) プレイヤーキャラクタの移動
プレイヤーキャラクタの移動アニメーションを指定します。
38
クイックスタートガイド
(5) 攻撃時のウェイト処理
(6) 被ダメージ時処理
(7) プレイヤーキャラクタ死亡時処理
39
クイックスタートガイド
(8) 割り込み処理終了
(9) 与ダメージ時
(10)
入力に対するプレイヤーキャラクタのアクションの選択
40
クイックスタートガイド
(11)
プレイヤーキャラクの移動開始
(12)
プレイヤーキャラクタの攻撃開始
41
クイックスタートガイド
以上でプレイヤーキャラクタの基本的な動作スクリプトのフローになります。
入力が終了したら、
[保存]ボタンをクリックしてフローを保存してください。
フォルダ:
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]
と選択して、ユニットマスタエディタを起動します。
42
クイックスタートガイド
[ユニットデータ追加]をクリックし、新規にユニットデータをを追加し、
[編集]ボタンをクリック
して、詳細データを登録しましょう。
➀
②
③
⑤
④
⑥
① UnitId
ユニット(ゲームで使用する動的オブジェクト)を管理するための ID です。
自動採番されます。編集して別の ID を割り振ることも可能です。
編集する際は、ユニット ID が重複しないよう注意してください。
② Prefab
ゲーム内でユニットとして使用するプレハブデータ(*.prefab)を指定します。
指定するファイルは
フォルダ: C:\Unity\MOengine\Assets\MOengine\Sample\Resources\Unit\Prefabs
ファイル: CH001_ASUKA_110000000.prefab
43
クイックスタートガイド
とします。
③ 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 は
44
クイックスタートガイド
1
を入力します。
上記入力が終了したら、
[編集データを保存する]をクリックしてデータを保存してください。
(2) プレイヤーマスタ登録
ユニットマスタに登録したキャラクタデータをプレイヤーとして使用するために、プレイヤーマスタ
に登録します。
メニューから
[MoEngine]→[MasterEditor]→[Player]
と選択して、プレイヤーマスタエディタを起動します。
➀
②
③
[プレイヤーデータ追加]をクリックしてプレイヤーキャラクタの登録欄を追加します。
① プレイヤーID
プレイヤーキャラクタを管理するための ID です。
自動採番されます。編集して別の ID を割り振ることも可能です。
編集する際は、プレイヤーID が重複しないよう注意してください。
② ユニット ID
プレイヤーキャラクタとして使用するキャラクタをユニット ID で指定します。
ユニット ID の指定はプルダウンリストから選択します。
前項で登録したキャラクタのユニット ID を選択しましょう。
③ 名前
45
クイックスタートガイド
ゲーム内で使用するキャラクタの名前です。任意の名前を付けましょう。
上記入力が終了したら、
[プレイヤーマスタを保存]をクリックしてデータを保存してください。
エネミーのアクションを作ろう
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 の内容は以下の通りです。
46
クイックスタートガイド
エネミーキャラクタの AnimatorController
ステートにアタッチされている AnimationClip 一覧
ステート
アニメーション
内容
idle
idle.anim
待機状態
move01
move01.anim
移動モーション
attack01
attack01.anim
攻撃モーション
damage01
damage01.anim
被ダメージモーション
down
down.anim
やられモーション
以上のデータを基に MO エンジンサーバでキャラクタのアクションデータを処理するスクリプトを作成し
ます。
スクリプトの作成にはプレイヤーキャラクタと同様にキャラクタエディタを使用します。
メニューから
[MoEngine]→[CharacterEditor]
と選択して、キャラクタエディタを起動します。
47
クイックスタートガイド
以下はエネミーキャラクタのアクションスクリプトをエディタで作成した例です。
プレイヤーキャラクタと同様に基本的なアクションだけを記述しています。

スポーン

移動

攻撃

エネミーからの被ダメージ

死亡

リスポーン
(1) 基本処理
(2) エネミーキャラクタデータの初期化
ゲーム開始時のエネミーキャラクタの初期化処理
(3) アイドル状態
48
クイックスタートガイド
割り込み処理が入るまで、待機状態が続きます。
(4) 被ダメージ時
プレイヤーキャラクタの攻撃による被ダメージのアクション。
(5) エネミーキャラクタ死亡時
エネミーキャラクタのヒットポイントが0になった際の死亡アクション
49
クイックスタートガイド
(6) 割り込み処理終了
(7) AI による割り込み処理発生時のアクション選択
スパイダーの AI に割り込みが入り、その内容によって分岐処理が発生した際の遷移です。
移動か攻撃が遷移先にあります。
エネミーの AI については[4.2.3 エネミーのアクションを作ろう]を参照してください。
(8) 移動開始
エネミーキャラクタが移動を開始。
50
クイックスタートガイド
(9) 攻撃開始
(10)
与ダメージ
プレイヤーキャラクタにダメージを与えた際の
以上でエネミーキャラクタの基本的な動作スクリプトのフローになります。
入力が終了したら、
[保存]ボタンをクリックしてフローを保存してください。
フォルダ:
C:\Unity\Master
51
クイックスタートガイド
ファイル名: SimpleSpider.xlm
続いてキャラクタのアクションスクリプトを MO エンジン用のデータとして出力します。
[スクリプトを出力]ボタンをクリックして、保存してください。
フォルダ:
C:\Unity\Master
ファイル名: SimpleSpider.mos
以上の保存の操作を行うと、ヘッダファイルも一緒に出力されます。
ファイル名: SimpleSpider_param.h
上記” SimpleSpider.mos”及び” SimpleSpider_param.h”は、バイナリファイルにコンバートする必要
があります。
そのため、上記二つのファイルを提供されたパッケージの以下のフォルダにコピーします。
フォルダ:
\tool\MoScripts\enemy
エネミーキャラクタの登録
プレイヤーキャラクタと同様にエネミーキャラクタもユニットマスタの登録を行います。
(1) ユニットマスタ登録
プレイヤーマスタ同様にエネミーキャラクタの以下のデータを登録します。

プレハブ

AnimationClip

初期ステート

プレイヤーアクションのスクリプト
メニューから
[MoEngine]→[MasterEditor]→[Unit]
と選択して、ユニットマスタエディタを起動しまし、[ユニットデータの追加]をクリックして追加さ
れた項目で[編集]をクリックします。
52
クイックスタートガイド
➀
②
③
⑤
④
⑥
⑦ 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
53
クイックスタートガイド
と、入力します。
※ プロジェクト内からファイル選択はできません。直接スクリプトファイル名を入力してくださ
い。
⑫ Size
プレイヤーのコリジョンのサイズです。
1
を入力します。
上記入力が終了したら、
[編集データを保存する]をクリックしてデータを保存してください。
(2) プレイヤーマスタ登録
ユニットマスタに登録したキャラクタデータをプレイヤーとして使用するために、プレイヤーマスタ
に登録します。
メニューから
[MoEngine]→[MasterEditor]→[Enemy]
と選択して、エネミーマスタエディタを起動します。
➀
②
③
④
[エネミーデータ追加]をクリックしてエネミーキャラクタの登録欄を追加します。
① エネミーID
エネミーキャラクタを管理するための ID です。
自動採番されます。編集して別の ID を割り振ることも可能です。
編集する際は、プレイヤーID が重複しないよう注意してください。
② ユニット ID
エネミーキャラクタとして使用するキャラクタをユニット ID で指定します。
54
クイックスタートガイド
ユニット 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) 基本処理
55
クイックスタートガイド
➀
➀[開始]
ゲームがスタートした後、
「idle」のステ
ートを繰り返します。
➀
➀[開始]
ゲームがスタートした後、
「idle」のステ
ートを繰り返します。
(2) アイドル状態
アイドル状態で[プレイヤー探知]で指定された範囲内にプレイヤーキャラクタが存在しないか探知
処理を行います。
(3) アプローチ
検知したプレイヤーキャラクタのユニット ID の取得とプレイヤーキャラクタの座標を取得します。
取得した座標が指定の範囲内であれば攻撃行動を遷移します。
56
クイックスタートガイド
(4) 攻撃開始
(5) アプローチ開始
入力が終了したら、
[保存]ボタンをクリックしてフローを保存してください。
フォルダ:
C:\Unity\Master
ファイル名: simple_spider_ai.xlm
57
クイックスタートガイド
続いてキャラクタのアクションスクリプトを 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
上記ファイルをサーバで使うため、以下のフォルダにコピーします。
58
クイックスタートガイド
コピー先のフォルダ:
\server\BattleServer\bin\Data\master
(2) プレイヤーマスタの出力
プレイヤーキャラクタデータの登録が終了したあとに、プレイヤーデータを MO エンジン用のデータ
として出力します。
[PlayerMaster を保存]ボタンをクリックしてプレイヤーマスタ情報を保存します。
保存先は以下です。
フォルダ: C:\Unity\MOengine\Master
ファイル名:
PlayerMaster.json
上記ファイルをサーバで使うため、以下のフォルダにコピーします。
コピー先のフォルダ:
\server\BattleServer\bin\Data\master
(3) エネミーマスタの保存
エネミーキャラクタデータの登録が終了したあとに、プレイヤーデータを MO エンジン用のデータと
して出力します。
59
クイックスタートガイド
[EnemyMaster を保存]ボタンをクリックしてプレイヤーマスタ情報を保存します。
保存先は以下です。
フォルダ: C:\Unity\MOengine\Master
ファイル名:
EnemyMaster.json
上記ファイルをサーバで使うため、以下のフォルダにコピーします。
コピー先のフォルダ:
\server\BattleServer\bin\Data\master
60
クイックスタートガイド
4.3. キャラクタを配置しよう
[4.1 ステージを設計しよう]で作成したステージ上にプレイヤー/エネミーキャラクタの初期出現ポイン
トと再出現ポイントを配置します。
[4.1 ステージを設計しよう]で作成したステージのシーンを読み込みます。
フォルダ:
C:\Unity\MOengine \Assets\MOengine\Sample\Resources\Stage
ファイル:
SimpleStage.prefab
メニューから
[MoEngine]→[StageEditor]
と選択して、ステージエディタを起動します。
プレイヤーキャラクタの出現位置を設定しよう
61
クイックスタートガイド
[チーム初期情報を配置]ボタンをクリックします。
[TeamInfo]というオブジェクトが作成され、その下に[Team]というオブジェクトが作成されま
す。
対戦ゲームなので、相手の配置情報を策するため[チーム初期情報を配置]ボタンをクリックしま
す。
二つの[Team]オブジェクトの名前を変更します。名前は
[TeamInitA]
[TeamInitB]
としましす。
各オブジェクトの[Inspector]に入力情報(スクリプト)が表示されているので、必要な情報を入力
します。

Transform
プレイヤーの出現する座標等の情報
画面上の座標 (下図) をマウスでドラッグして座標を指定することも可能です。

Type
初期値入力済みのため入力不要です。

Team ID
チームの ID (青チーム、赤チーム) を入力。

Range
(未実装)出現範囲。
以下を参考にして入力してください。
62
クイックスタートガイド
同様にプレイヤーキャラクタのリスポーン座標を配置します。
StageEditor の[チームリスポーン情報を配置]をクリックして[TeamInfo]の下に
[TeamRespawn]を二つ作成し、それぞれの名前を
[TeamRespawnA]
[TeamRespawnB]
とします。
初期情報の配置同様に、以下を参考に必要な情報を入力してください。
63
クイックスタートガイド
入力が終了したら、
[編集データを保存する]をクリックして保存しましょう。
エネミーキャラクタの出現位置を設定しよう
プレイヤーの配置同様にエネミーの配置も行います。
[敵を配置]ボタンをクリックすると[EnemyInfo]というオブジェクトが作成され、その下に
[Enemy]というオブジェクトが作成されます。
64
クイックスタートガイド
さらにもう一度[敵を配置]ボタンをクリックしてエネミー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
65
クイックスタートガイド
これでキャラクタの配置は終了です。
MO エンジン用ステージデータを出力する
プレイヤー/エネミーデータを配置が完了した後に、MO エンジン用のステージデータを出力します。
(1) ステージマスタの出力
MO エンジン用のデータとして出力します。
[StegeMaster を保存]ボタンをクリックしてユニットマスタ情報を保存します。
保存先は以下です。
フォルダ: C:\Unity\MOengine\Master
ファイル名:
StageMaster.json
上記ファイルをサーバで使うため、以下のフォルダにコピーします。
コピー先のフォルダ:
\server\BattleServer\bin\Data\master
66
クイックスタートガイド
ステージ初期化スクリプトの出力
[ステージ初期化スクリプトを出力]ボタンをクリックしてステージ初期化スクリプトを出力しま
す。
保存先は以下です。
フォルダ: C:\Unity\MOengine\Master
ファイル名:
SimpleStage_init.inc
上記ファイルをサーバで使うため、以下のフォルダにコピーします。
コピー先のフォルダ:
\tool\MoScripts\level
67
クイックスタートガイド
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
68
クイックスタートガイド
ソース編集
登録したデータを使ってゲームが起動するよう、ソースの以下の箇所を編集します。
(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
69
クイックスタートガイド
サンプルゲームをプレイしよう]の内容通りにゲームを起動しましょう。
作成したステージ上で、登録したキャラクタが配置され、ゲームがプレイできます。
70