MeshSyncServer
DCC ツールでのモデルの編集をリアルタイムに Unity に反映するためのコンポネントです。
同期はTCP / IPを介して行われるため、開発者は別のマシンで DCCツール を使用できます。
また、この接続は、該当の DCCツール にインストールされている MeshSync DCC Plugin のサーバー・ポート設定で設定できます。
プロパーティ
Auto Start
値 説明 On 特定のポートで、自動的にサーバーを起動する。 Off Start/Stop ボタンをクリックして、サーバーを手動で開始、または停止する。 注意:パブリックネットワークで、サーバーが起動した状態では、他のユーザーも MeshSync にアクセスすることができてしまいます。
例えば、Unity のスクリーンを見ることができるなど。Root Object
同期により生成されるオブジェクト群のルートとなるゲームオブジェクトを指定します。 未設定の場合、ルートにオブジェクトが生成されていきます。Sync Visibility, Sync Transform など
該当するプロパーティの同期の有効・無効の設定で、特定の結果を確認するためになど使用できます。
例:Sync Transform を無効にすると、 再生モードでの物理シミュレーションの動作を正確に確認できます。- Update Mesh Colliders
設定が有効で、かつメッシュが更新されたら、MeshCollider のプロパーティも更新します。
Sync Meshes を無効にするとパフォーマンスが向上するので、メッシュの同期が必要ない場合にこの設定をオフにすることをお勧めします。
例:ポーズ・アニメーションのみを編集する場合。- Update Mesh Colliders
Animation Interpolation :アニメーションの補完方法を指定します。
値 説明 Smooth アニメーション曲線をスムーズに補間します。 Linear 隣接するアニメーションキー間で線形補間を行います。 Constant 補間を無効にします。 映画制作のユースケースでは、DCC側のターゲットフレームレートにアニメーションサンプルの数を一致させるために "Constant" が望ましい場合があります。
Keyframe Reduction: アニメーションをインポートする際にキーフレームを減らす。
Threshold: は誤差の許容量。
値が高いほど、キーの数が少なくなり、エラーが多くなります。その逆も同様です。Erase Flat Curves: 最初から最後まで変化がないカーブを削除します。
Z-Up Correction
Z-Up 座標系を持つ DCCツール(3ds Max、Blenderなど)からのデータに対して、Z-Up を Y-Up に変換する方法を指定します。値 説明 Flip YZ すべてのトランスフォームとメッシュの頂点を Y-Up に直します。 Rotate X ルートとなるオブジェクトの Transform に -90 の X 回転をかけることで Y-Up に変換し、メッシュを Z-Up のままにします。 "Flip YZ" はほとんどの場合よりよく機能します。
参考までに、Unity の標準FBXインポーターは "RotateX" と同等の挙動を行います。Sync Material List 有効の場合、シーンビューでオブジェクトのマテリアルを変更すると、マテリアルリストが更新されます(以下を参照)。
また、変更前のマテリアルを使ったオブジェクトは、変更後のマテリアルを使うように更新されます。Progressive Display
値 説明 On リアルタイムで受信途中のシーンの更新を反映していきます。 Off シーン全体のデータの受信が完了してから更新を反映します。 Material List
このマテリアルリストを変更すると、変更前のマテリアルを使ったオブジェクトを変更後のマテリアルを使うように変更します。
マテリアルリストの保存と読み込みは、**Import List** and **Export List** ボタンで実行できます。
Animation Tweak : 様々なアニメーションの調整。
Override Frame Rate キーの時間とアニメーションの長さを維持しながら、フレームレートを変更します。
ヒント:60 FPS をターゲットにしているときに補間がない 24 FPS のアニメーションを再生すると、動きが不安定になります。
これを軽減するための1つの可能なアプローチとして、アニメーションを120FPSに変更することができます。Time Scale
- Scale:時間のスケーリングを適用します。
例えば 0.5 を適用すると倍速になります。
Offset:指定秒分オフセットを加えます。
例えば 5 秒のアニメーションに対して -1 のスケールと、-5 のオフセットを適用すると逆再生になります。Drop Keyframe :フレームの間引きを行います。
30 個のキーが打たれているアニメーションに Step=2 で適用すると、奇数フレームを間引き、15 フレームのアニメーションになります。
同様に Step=3 だと 10 フレームになります。
- Scale:時間のスケーリングを適用します。
Export Assets
メッシュ・マテリアルをアセットファイルにエクスポートして、他のシーンやプロジェクトで利用できるようにします。 通常、MeshSync の同期で生成されたメッシュ・マテリアルは、アクティブなシーンにのみ存在します。
豆知識
UnityのシーンにMeshSyncServerオブジェクトがある場合、次のことができます:
ブラウザーの URL ボックスに MeshSyncServer の IP アドレスとポートを入力すれば、Unityのゲームビューを見ることができます。 (デフォルトでは 127.0.0.1:8080)
ブラウザのメッセージフォームから Unity のコンソールにメッセージを送ることができます。
注意点
必要な MeshSync のアセットは、StreamingAssets/MeshSyncServerRoot に自動的に作成されます。
これらのファイルはそのままにしておく必要があります。本パッケージはその性質上エディタでのみの使用を想定していますが、 アニメーションの同期以外、ランタイムでもモデルの同期は動作します。
意図せず最終ビルドに残さないようご注意ください。