11 月 30 2008

PV3Dでレースゲーム制作 22 - デモ走行追加

Posted by tanjo at 5:18 PM

レースゲームデモ画面

» デモ走行を見る (要:Flash Player 9.0.124.0以降)

デモンストレーションが繰り返し再生されるサンプルです。

デモ走行追加

三人称カメラリプレイ再生車モデルの挙動 と作ってきました。
ということは、走行データを固定の外部ファイルから読み込むようにすれば、市販ゲームなんかによくある「デモ走行映像」が作れるぞ、と。

リプレイの時は操作入力の履歴を順に配列へ保存して、1フレームずつ shift で取り出して再生していました。ですのでデモ走行を作るには、「操作履歴を表す数字ばかりのファイルを用意」→「それを読み込んで配列に変換」→「リプレイ時と同様に再生」という流れでできそうです。

操作履歴ファイルの作成

まあこの辺はてきとうです。区切り文字「,」で数字が羅列したファイルを作ります。
ドライブすると drivingHistory という変数に履歴が記録されるようにしてあるので、実際に走ったあとそれをトレース&コピペしてテキストファイルを作成しました。

//ドライビングヒストリ出力
for (var i:int = 0; i < drivingHistory.length; i++)
{
	trace(drivingHistory[i] + ",");
}

ファイルを読み込み配列に変換

URLLoader.data でテキストファイルの内容をString型で取得できます。String.split() メソッドで文字列を配列に変換し、そして各要素を Number に型変換してやれば、必要な再生用配列の完成です。…もうちょっとスマートなやり方があるのかな。。

var drivingDemoString:String = String(myURLLoader.data);
var drivingDemo:Array = drivingDemoString.split(",");
drivingDemo = strToNumArray(drivingDemo);
function strToNumArray(array:Array):Array
{
	for (var i:int; i < array.length; i++)
	{
		array[i] = parseInt(array[i]);
	}
	return array;
}

配列を元に車の運転を再生するのは、リプレイモード搭載の回と同じやり方です。

Leave a Reply