読者です 読者をやめる 読者になる 読者になる

ロードバイク時々ものづくり

ロードバイクおよびゲーム開発について

【Unity】モノビットエンジンで通信同期 その2:ユニティちゃんを同期

モノビットエンジンでユニティちゃんのプロジェクトを通信同期させてみた。
f:id:vrcycling:20170515004929p:plain

公式資料ではノンプログラミングでの手順のみのため、今回はテストではスクリプトで移動させている部分をなるべくそのままで通信させる方法について。
基本的にはノンプログラミングの方法とほぼ同じ。

1.ユニティちゃんデータのDLとインポート

DATA DOWNLOAD-利用規約 | UNITY-CHAN! OFFICIAL WEBSITE
上記よりユニティちゃん3Dモデルデータ1.2.1をDLしてインポート。
※MUNにも含まれているが、既存プロジェクトを後から通信を入れる、という体のためこの順番で。

2.Monobit Unity Networking 2.0のDLとインポート

Monobit Unity Networking 2.0 (MUN) - モノビットエンジン公式サイト
上記よりクライアントアセットをDLしてインポート。

3.Locomotionシーンを開く

[UnityChan] - [Scenes]フォルダ内のLocomotionシーンを改造する。
f:id:vrcycling:20170515001017p:plain

・明るさの調整
シーンを開いた直後だとライトが明るすぎるため調整。
f:id:vrcycling:20170515001157p:plain
「Directional light for UnityChan」の「Light」の「Intensity」を「1」に変更。
f:id:vrcycling:20170515001226p:plain
明るさはお好みで。
f:id:vrcycling:20170515001250p:plain

4.自動接続スクリプトを設定

空のゲームオブジェクトを追加し、「Monobit Auto Login Template」をアタッチ。
「Monobit View」の「Monobit ViewID」を「1」に変更。
f:id:vrcycling:20170515001646p:plain

5.ユニティちゃんの設定

「Hierarchy」の「unitychan_dynamic_locomotion」に「Monobit Transform View」と「Monobit Animator View」をアタッチする。
元々ある「Face Update」のチェックを外す。※Monobit Auto Login TemplateのGUIと重なるため
f:id:vrcycling:20170515002410p:plain

「Monobit View」に「Monobit Transform View」と「Monobit Animator View」を登録する。
Addで増やしてコンポーネントD&Dして登録する。
f:id:vrcycling:20170515002600p:plain

6.ユニティちゃんの移動スクリプトの改造

通信時に他のプレイヤーのユニティちゃんを動かせないようにする。※詳細はその1を参照
「UnityChanControlScriptWithRgidBody」スクリプトを改造する。
まずは冒頭部分に追加。

public class UnityChanControlScriptWithRgidBody: MonoBehaviour {

public class UnityChanControlScriptWithRgidBody : MonobitEngine.MonoBehaviour {

続いてFixedUpdateに以下を追記。

void FixedUpdate ()
{
    if( !monobitView.isMine )
    {
        return;
    }
7.ユニティちゃんをプレハブ化してプレイヤーとして登録

ここまで変更を行った「unitychan_dynamic_locomotion」をAssetsに「Resources」フォルダを作成し、D&Dしてプレハブ化する。
f:id:vrcycling:20170515003659p:plain
Hierarchy内の「unitychan_dynamic_locomotion」は削除。

4で用意したからのゲームオブジェクトの「Monobit Auto Login Template」の「Prefab」に先ほどプレハブ化した「unitychan_dynamic_locomotion」を登録する。
f:id:vrcycling:20170515003854p:plain

8.カメラについているスクリプトを無効にする

「Monobit Auto Login Template」内でカメラをTPS視点にしているので、Hierarchy内の「Main Camera」についている「ThirdPersonCamera」スクリプトを無効にする。

9.バックグラウンドで動くようにする

Player Settingsの「Run In Background」にチェックを入れる。
f:id:vrcycling:20170515004147p:plain

10.ビルドして実行確認

ビルドしてエディターと通信同期を行ってみる。
※同ポイントにプレイヤーが生成され、コリジョンでおかしくなるので最初にログインする方をちょっと移動させておくといい。
f:id:vrcycling:20170515004929p:plain

無事同期できれいればOK。
手数的にはノンプログラミングの手順より少なくなっている。
既存のプロジェクトを同期させる場合はこんな感じかな?