【Unity】モノビットエンジンで通信同期 その2:ユニティちゃんを同期
モノビットエンジンでユニティちゃんのプロジェクトを通信同期させてみた。
公式資料ではノンプログラミングでの手順のみのため、今回はテストではスクリプトで移動させている部分をなるべくそのままで通信させる方法について。
基本的にはノンプログラミングの方法とほぼ同じ。
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シーンを改造する。
・明るさの調整
シーンを開いた直後だとライトが明るすぎるため調整。
「Directional light for UnityChan」の「Light」の「Intensity」を「1」に変更。
明るさはお好みで。
4.自動接続スクリプトを設定
空のゲームオブジェクトを追加し、「Monobit Auto Login Template」をアタッチ。
「Monobit View」の「Monobit ViewID」を「1」に変更。
5.ユニティちゃんの設定
「Hierarchy」の「unitychan_dynamic_locomotion」に「Monobit Transform View」と「Monobit Animator View」をアタッチする。
元々ある「Face Update」のチェックを外す。※Monobit Auto Login TemplateのGUIと重なるため
「Monobit View」に「Monobit Transform View」と「Monobit Animator View」を登録する。
Addで増やしてコンポーネントをD&Dして登録する。
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してプレハブ化する。
Hierarchy内の「unitychan_dynamic_locomotion」は削除。
4で用意したからのゲームオブジェクトの「Monobit Auto Login Template」の「Prefab」に先ほどプレハブ化した「unitychan_dynamic_locomotion」を登録する。
8.カメラについているスクリプトを無効にする
「Monobit Auto Login Template」内でカメラをTPS視点にしているので、Hierarchy内の「Main Camera」についている「ThirdPersonCamera」スクリプトを無効にする。
9.バックグラウンドで動くようにする
Player Settingsの「Run In Background」にチェックを入れる。
10.ビルドして実行確認
ビルドしてエディターと通信同期を行ってみる。
※同ポイントにプレイヤーが生成され、コリジョンでおかしくなるので最初にログインする方をちょっと移動させておくといい。
無事同期できれいればOK。
手数的にはノンプログラミングの手順より少なくなっている。
既存のプロジェクトを同期させる場合はこんな感じかな?