note.x

Drive Test 03(要:FlashPlayer9)

[←] [→] キー … ハンドル
[z] キー … アクセル
[x] キー … ブレーキ
[↓] … バック

遅々たる歩みで進行中。
低コストでZソート補正する screenZOffset を適用。
こんなのがあるの今まで知らなかった。こういう地味な機能がいっぱいあるのがAway3Dのいいところ。

objA.screenZOffset = -1000;
objB.screenZOffset = 500;
※objA,Bは、任意の Object3D オブジェクト。

値が小さいほど他より手前にあるものとして描画される。
Zソート時のインデックスに強制介入というローテク。ローテク最高。

これのおかげで、負荷をほとんど増やさずに車の影を追加できた。ただの黒っぽいポリゴンだけど、影がつくと印象がスゲー変わるなぁ。車が横転すると影も一緒に横転するのはご愛敬。



trick7のteraさんを筆頭に、豪華執筆陣で連載中の「Flash開発の新機軸 ActionScriptライブラリ」で、3Dライブラリに関する記事を担当させていただきました。

全3回を予定していて、一発目の今回は概要編。コードは一切出てきません。PV3Dとかをガンガン使ってる人には欠伸が出るような内容かもしれないですが、初心者向けということでひとつ。

次回からのチュートリアルはPV3Dを例に取っての解説です。興味のある方は目を通してやってください。


Drive Test 02(要:FlashPlayer9)

[←] [→] キー … ハンドル
[z] キー … アクセル
[x] キー … ブレーキ
[↓] … バック

まともな挙動にするには JigLib の vehicles パッケージにかなり手を入れなくちゃならなさげ。
パラメータ調整でどこまでいけるか模索中。
ブレーキが機能してなかったんでちゃんと実装。ブレーキランプも光らせた。JigLibのSetHBrakeメソッドって0.5以上の数値を与えないと意味無くて、しかも0.5を超えた途端にホイールをロックするハンドブレーキっぽいものだった。

前回のデモと違ってグリップをズルズル気味にしたので、ケツが滑るタイミングに上手く合わせてカウンタ当てると、なんとなくドリフトっぽい動きが見られていい感じ。キーボードだとシビアだけど決まるとキモチいいー。

確認用に投げやりな三角コーナーを設置してみたけど、バウンディングボックスだと天地がひっくり返ったりして上手くない。うーむ。
道は果てしなく長い。


Drive Test(要:FlashPlayer9)

[←] [→] キー … ハンドル
[z] キー … アクセル
[x] キー … ブレーキ
[↓] … バック

描画周りのチューニングは置いといて、操作系とJigLib組み込んでみた。
JigLibは、手続きが簡単でわかりやすいんだけど、各パラメータの意味がさっぱりわかんねーのが参る。ちゃんと詰めの調整するために簡易エディタとか作らなきゃだなぁ。
とりあえず、アンダー傾向の強いセッティングに。このほうが実車っぽく見える気がする。おもいっきりオーバーステアにするとラジコン挙動になって、それはそれで面白かった。
まだまだ先は長い。


Performance Test(要:FlashPlayer9)

パフォーマンス出ねー。
背景モデルが一体成形なのがマズイんじゃねーかと考えて、ある程度のサイズで分割したりテクスチャの解像度を半分にしたりとかやってみたけど劇的な変化が見られないんで、やっぱりポリゴン数かなぁと思ってたら、BitmapRenderSession割り当てたView3Dのサイズを2の累乗に固定すると、いきなり5fpsとか速くなったりすることがある。ボトルネックがどこにあるのかどーにもわかんね。

こういうのはPV3Dのほうがいいかもだけど、あえてAway3Dでやってみるべ。
道のり長ぇーなぁ。