ブログのヘッダーで、人もドラッグで飛ばせるようにしたよ。
建物の屋根にも当たり判定つけたので乗せたりできます。
ドラッグして初めて当たり判定が発生するんだけど
負荷軽減の為に一定時間止まってると元に戻っちゃうから
積みあげて遊ぶとかは難しいね・・・

人の動きはBox2Dを使った物理演算での動きと
あらかじめ設定しておいたラインに沿った単純な動きを切り替えてます。

header4.png
Box2Dのデバッグ表示(ドラッグしたり足を踏み外した人だけ演算対象にしてます)

header5.png
通常の動きで使うライン(演算対象になっていない人はこのラインに沿って動く)

Box2D楽しいな~。Papervisionがなかなか進まない・・・
header1.png
特にゲーム性はなくて、ワラワラしてるのを眺めるだけです。
Box2DFlashAS3の勉強も兼ねて車を物理演算させてみたよ。
つまんで放り投げたりできます。たまにしかこないけど・・・
キャラクターも飛ばしたかったけど、重そうなので考え中。。

header2.png
あと特に意味はないけど、一人一人にパラメータ持たせてみました。
クリックすると色々見れます。
メーターは左から、イライラ・疲労・トイレ・空腹
MobableType弄くりすぎておかしくなったから一からセットアップしなおし。。
ついでにドメインもとったのでタイトルも変えてみました。
デザインはまだ静止画だけどそのうちギミックとか仕込みたいな。
というか最初はヘッダー画像をぽちぽち描いてただけなんだけど、
サイドバーを地下フロアにした瞬間TheTowerみたくなってしまった・・・

あとここ最近ネット浦島太郎状態で驚く事ばかりだったんですが、
数年ぶりにヒョーゴノスケさんのサイトに行ったら凄い作品が公開されてました!
KINPIRAってゲームなんだけどかなり面白いです。
楽しくてフィールドを黙々と更地にしてました。
ポリ数と描画クオリティ的に制限だらけのFlash3Dばかり弄ってたんで
こういうの見るとまたShockwave3Dやりたくなってしまう。。
もうlingoとか書き方忘れちゃったけどね・・・
前回のエントリー
「DisplayObject3D.world」でモデルのワールド空間での
移動・回転・スケールの変換行列が取得できる

と書いたんですが、どうやらworldプロパティは
シーンがレンダリングされるタイミングで初めて値が更新されるみたいです。

てことは、モデルを回転してからworldプロパティにアクセスしても
レンダリング直前では回転を適用する前の情報しか取れない事になる・・・
逆にレンダリングしてからアクセスしてしまうと、
例えば常に回転しているモデル上をキャラが歩く場合、
モデル回転→レンダリング→ワールド座標を取得して交差判定→キャラを動かす
という処理の流れになってしまって
キャラクターの描画が遅れる事になってしまう。。
かといって正確なworldプロパティを取得する為だけに
2回レンダリングするのも無駄すぎる・・・

色々調べて、どーしてもいい方法が見つからなかったので
worldプロパティを使わずにワールド空間での変形情報(Matrix3D)を調べる事にしました。
Papervision3Dでウォークスルーをさせようと思ってます。
キャラクターが水平な地面を動くだけなら壁の判定だけすればいいんですが
凹凸のある地形に沿って動かしたいので
足元のポリゴンの高さを調べる必要があります。
checkheight.png

Shockwave3DにはmodelsUnderRayっていう
レーザーを飛ばしてポリゴンに当たった座標が調べられる機能があったんで
Papervision3Dにもあるかなーって調べたけど見つかりませんでした。。
見つけられなかっただけで本当はあるのかもしれないけど、
諦めてmodelsUnderRay的な機能を作る事にしました。
やってることは、対象のメッシュモデルの全三角ポリゴンに対して、
視線と三角形が交差しているかひたすらチェックしていって、
交差しているものがあったら交差情報を返すという感じです。
1  2  3  4  5  6