こんにちは、りくです。
そもそもレプリカ(Replica)とは、「複製品」という意味の単語で、美術品のレプリカや優勝カップのレプリカなどで聞いたことがあると思います。いわゆる限りなく本物に近い複製品のことです。ゲーム制作におけるレプリカも同じような意味合いで使われています。
今回はレプリカ(レプリケーション)について私が勉強したことをお話しします!
|目次
|レプリカって何だろう?
こちらの映像をご覧ください。
-
PLAYER1
-
PLAYER2
左の画面でキャラクターが走ると、右の画面でも同じ髪色のキャラクターが走ります。
このように、ゲームの状態をゲームを共有する各プレイヤー間で一致させることを「同期」といいます。
左の画面では青い髪のRikuAがオーナー(プレイヤー)で、ブロンズヘアのRikuBがレプリカです。
一方、右の画面ではブロンズヘアのRikuBにとってRikuAがレプリカです。
左の画面でRikuBが走っている時、実際には右の画面のオーナー(プレイヤー)であるRikuBが「レプリカを走らせろ!」という指示を送っています。この動作の事をレプリケーションといいます。
同じように、左の画面でRikuAが走っている時、右の画面のRikuAのレプリカが「走れ!」という指示を受け取っているのです。
このように、オーナー(プレイヤー)にとって、自分以外の同期されているGameObjectをレプリカと言い、以上のレプリカを作成して、同期をとるまでの流れのことをレプリケーションと言います。
※キャラクターをはじめ、背景や様々な小道具(設置されている装飾物など)がありますが、それらのことをUnityではGameObject (ゲームオブジェクト)といいます。
|Strix が提供するレプリケーション
Strix Cloudが同期処理のために提供する機能の一つにStrixReplicatorというコンポーネントがあります。
StrixReplicatorコンポーネントをGameObjectに設定することにより、GameObjectの位置やアニメーション、様々な物理挙動を同期させることができるようになります。
<実践編>3Dオンラインゲーム開発~Unity~第2話では、 キャラクターの位置を同期させるために、StrixMovementSynchronizerというコンポーネントを、アニメーションの同期にはStrixAnimationSynchronizerというコンポーネントを、それぞれ設定しました。
また、ゼロから始めるオンラインゲーム開発第2話では、弾を同期させるためにStrixTransformSynchronizerという物理的な移動同期に適したコンポーネントを付けました。
このように、Strix Cloudはコンポーネントを設定するだけで、移動やアニメーション、様々な物理同期を実現することができるのです。