CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
reckoning/Simple サンプルデモ

概要

PiaReckoning の 使用方法を解説するためのデモです。

デモの適用範囲

このサンプルデモは、以下の項目に関するデモです。

処理の概要と操作方法

モード選択画面

通信のモードを選択する画面です。 選択するとマッチメイクが行われた後メイン画面に移行します。

入力 動作
A ボタン ローカル通信 (UDS) のホストとして実行します。セッションを作成後メイン画面に移行します。
B ボタン ローカル通信 (UDS) のクライアントとして実行します。 UDS ネットワークを検索して発見したものに参加し、メイン画面に移行します。 UDS ネットワークを検索中に START ボタンを押すと、検索を中断してモード選択画面に戻ります。
X ボタン インターネット通信を使うモードで実行します。 ランダムマッチメイクを行い、参加できるセッションがあればそこにクライアントとして参加、無ければホストとしてセッションを作成します。 その後、メイン画面に移行します。
START ボタン アプリケーションを終了します。

メイン画面

reckoningImage

メイン画面の操作

 画面下から1番目の項目、State: は、CloneProtocolの状態を表しています。 2台~とも State:Active にすることで通信を開始し、データをやりとりします。

 画面下から2番目の項目、Clock: は、時刻を表示しています。時刻の再同期中は、時刻の値の後に R と表示されます。

 画面下の中央の項目、Send: Recv: は、0.5 秒当たりの送受信パケット数を表示しています。


入力 動作
A ボタン CloneProtocol での通信を開始/終了します。
Lスティック 自ステーションの[@]の位置を動かします。
十字キー上下 画面右下の項目(Reckoning,Latency,ChaseType,ChaseRatio,VelScale,StopThreshold,Threshold)を選べます。
十字キー左右 十字キー上下で選んだ状態の値を変更できます。
START ボタン セッションを抜けてモード選択画面に戻ります。

項目の数値の切り替え

 画面右下に列挙されている項目の数値を変更できます。

Reckoning/Unreliable の変更することで、[@]の動き方の変化や、通信量の比較(Send,Recvの値)ができます。他にもChaseTypeを Noneにすることで補正を切る事もできます。

  • Reckoning/Unreliable:[@]の位置の座標をReckoningとUnreliable のどちらの方式で送信するか選択できます.
  • Latency:RTTを調節できます.数値の単位は、msです.設定した数値より約50msほど大きな値になります.
  • ChaseType:Reckoning時に有効な値です.Noneと Chaseを選べます.Chaseにすると送られたデータを補間し滑らかにします.
  • ChaseRatio:ChaseType をChase に設定した時の追従する割合です.
  • VelScale:[@]の動くスピードのスケール値です.大きいほど速く加速し,ブレーキも大きくなります.
  • StopThreshold:Reckoning時にStopフラグの判定のための閾値です.この閾値より移動距離が小さくなるとStopフラグをtrue にして送信されます.
  • Threshold:Reckoning時に予測値とのズレを判定する閾値です.この閾値より大きくずれた場合に標本値を送信します.

エラーが発生するなどセッションを継続できない場合は、自動的にモード選択画面に戻ります。


詳細説明

CloneProtocol を使って通信を行っています。

各ステーションで操作されている[@]を、それぞれ受信した値を用いて画面上に表示します。 (自ステーションで操作している[@]は、ローカルでの座標を用いて表示されます)

画面上の色のついた各行が一つの ReceiveClone に対応しており、そこに登録されている ReckoningCloneElement の値を表示しています。

R は、 ReceiveClone を意味します。 R の後にある数字は、接続先のステーション ID を表します。 その後に表示されている文字は、そのステーションの SendCloneReceiveClone における送受信モードを示します。 その後に表示されている2つの数値は、座標であり、各 ReceiveClone が受信した値を示しています。 ( Reckoning モードの場合は ReckoningCloneElement の値を、 Unreliable モードの場合は UnreliableCloneElement の値を表示します) 左から順に、それぞれ GetValue() された接続先ステーションの[@]の x 座標、 y 座標に対応しています。 これらは、値が GetValue() されたときに更新・表示されます。 (自ステーションで操作している[@]の座標は、ローカルでの x 座標、 y 座標となります) 座標の右に表示されている値は、自ステーションと各ステーション間との RTT を表示しています。