リプレイフレームワーク for Unity
格闘ゲームなどで決着がついたシーンをリプレイ表示するための、リプレイフレームワークを作ってみました。
使えるかどうか分かりませんが、アルファバージョンをGPLにて公開します。
(注)ライセンスは変える可能性があります。
デモ動画
使い方解説動画
デモプレイ(UnityGames)
構成
クラスの関係は次の通りです。
ReplayManagerを操作して記録や再生を制御します。サンプルに含まれているReplayManagerGUIを参考にしてください。
初期発見と初期化処理
記録開始と終了
- ReplayManagerのStartRecordingを呼び出すと記録が開始されます。
- ReplayManagerのStopRecordingを呼び出すと記録が終了します。
リプレイ開始と終了
- ReplayManagerのStartReplayを呼び出すとリプレイが開始されます。
- ReplayManagerのStopReplayを呼び出すとリプレイが終了します。
プレイバック
- ReplayManagerのPlaybackを呼び出すと指定した記録データを各Replayableに設定します。
拡張
任意のコンポーネントを作成し、ReplayTemplateやサンプルを参考にして、該当する関数を実装してください。(いいモジュールができたら教えてくださいw)
public class SomeComponent : MonoBehaviour { public void RecordStarting () { //記録開始時の処理を記述します。 } public void RecordStopped () { //記録終了時の処理を記述します。 } public void ReplayStarting () { //リプレイ開始時の処理を記述します。 } public void ReplayStopped () { //リプレイ終了時の処理を記述します。 } public void ReplayReset () { //初期化、リセット時の処理を記述します。 } public void ReplayRecording (int dataIdx) { //フレームごとの記録処理を記述します。 } public void ReplayPlaying (int dataIdx) { //特定のフレームのリプレイ処理を記述します。 } public void ReplayPlayingComplete (float t) { //フレームごとのリプレイ処理を記述します。 //引き数tには、リプレイ開始からの経過時間が渡されます。 //tはフレーム間で補完を計算するなどに利用できます。 }