11 月 30 2008
PV3Dでレースゲーム制作 22 - デモ走行追加
» デモ走行を見る (要: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;
}
配列を元に車の運転を再生するのは、リプレイモード搭載の回と同じやり方です。
