Blueprint編を1~6までやってきましたが、残りがBugFix関連だったので6で終了です。
見切り発車をしてしまったことを反省。また、1~6については和訳を追加しました。
翻訳の先生に、圧倒的・・・感謝・・・
今回はNetworkReplaysについてです。
リプレイ機能です。
まずは、ShooterGameにお手本があるようなので見てます。
-----------------------------------------------------------
ShooterGameのメインメニューからスタートするにはまず、
「ShooterEntry」というレベルを開きます。
あとはPIEで実行して・・・・とメニューが出てこない。
AnswerHUBで調べてみたところ、4.5以降ではメニューが出てこない報告がありました。
ただし、Package化することで動作には問題ないようです。
ということでPackageを作成します。
Packageはメニューの[File]->[Project]から作成していきます。
自分の場合はWin64を使用しているので赤枠を選択。
完了したら早速exeをたたいてみます。
ShooterGame.exeを選択。
リリースノートに記載があったように"Record Demo"をONにします。
あとはFREE FOR ALL"を押してゲーム開始します。
一度ゲームをプレイすれば録画されるので、
一旦"MAIN MENU"に戻り、今度は"DEMOS"を選択します。
リプレイのログが出てくるのでクリック選択し、Enterで再生します。
上記がリプレイ画面。
シークバーと停止ボタンが白くなっていますが、リプレイを再生できました。
カメラはプレイヤー視点ではなく、別にリプレイ用のカメラで映し出されます。
なので、キーボード操作でワールド内を移動できます。
また、シークバーを制御することでリプレイの指定した地点まで飛ぶことができます。
中央の停止ボタンでリプレイの中断、再開を切り替えます。
以上、ShooterGameのデモ。
-----------------------------------------------------------
では一体どうやってリプレイ機能を実現しているのか。
まずはリプレイデータから逆引きしてみます。
Demosにリプレイデータがあります。
中身を見るといくつかのファイルが入ってます。
このDemo1のフォルダ、32kByteしかありません。
このサイズだけで1分程のリプレイデータが保持できるのはすごいです。
内容はチェックポイント(Game開始地点)だったり、ネットワークのデータだったり。
プレイヤーの挙動の再現はキー入力を見ているようです。
あとは、.headerファイルは、エンジンとの関連情報、.metadataファイルは、リプレイデータとの関連情報のようだ。
リプレイデータの制御は
DemoNetDriverというクラス。
リプレイデータの描画はSlateを使っているのか・・・
メインメニューのリプレイ設定はGameT
hread・・・
現段階だと実装・移植するのが結構大変そうな感じです。
今後パワーアップするらしいので、今後に期待しよう、うん。
本日は覚え書き程度の調査。