2009年10月アーカイブ

PV3D2.1: レンズフレア

2009年10月27日
Papervision3Dでウォークスルーの実験中。
walkthrough5.jpg
レンズフレアエフェクトをつけてみました。
海面のウネウネはなんか失敗。キラキラさせたかったんだけど・・・

太陽の部分は3dsMaxのレンズエフェクトでレンダリングしたもので、
画面全体にかかる光の輪はFlashの放射グラデーションです。
レンズフレアの仕組みはよくわかってないんだけど、
光の輪が複数個あって、それが画面中央の座標と光源を結ぶ直線上に並んでるって
イメージはあったのでそんな感じで表現してます。

PV3D2.1: 背景と高さ判定

2009年10月17日
Papervision3Dでウォークスルーの実験中。
walkthrough4.jpg
背景をつけてみました。
大きい一枚の画像をカメラの角度に合わせて上下左右にスクロールさせてます。
あと、高さ判定処理を組みなおして少しそれっぽく動けるようにしました。
高い所のモデルの下をくぐったり、高い所から落ちたりできます。

背景の追加

walk4sky.jpg
背景に使った空画像の全体図はこんな感じ。
手前のくっきりしてる雲だけTerragen2でレンダリング・・・というか知らない間に2出てたんだね。
カメラは横に0~360°しか動かないのでその角度と画像のX座標をリンクさせているだけです。
実際は端が切れないように画像を横方向に多めにループさせてます。
横方向は簡単だったんですが、縦方向がカメラから水平線の位置を割り出す必要があって、
今はまだ目分量による簡単な位置合わせしかしていないので正確ではないです。

ちゃんとした水平線の高さの割り出し方を調べるのがベストだと思うんだけど、
物凄い遠くに配置したダミーのDisplayObject3Dが常にカメラの正面(高さは海面)にくるようにして
そのダミーオブジェクトの座標を調べるって方法でもいける気がします。試してないけど・・・
Papervision3DではDisplayObject3D.autoCalcScreenCoords = trueしてから
DisplayObject3D.screenを調べれば基点のスクリーン座標が簡単に調べられるようです。

高さの判定

今までは単純にキャラ上空から真下に飛ばしたレイと地形モデルの最初の交点にキャラを移動させていただけで
モデルの下をくぐったりできなかったんですが、
今回は交差する全ての点の中から次に進める高さを調べているのでそれっぽく動けるようになりました。
(斜面を滑り落ちるような処理は高さ判定の処理とは別物です)
やっている事はだいたいこんな感じです。
heightcheck.png
基本的にキャラクターの移動前の高さと移動後の高さを比べて
先に進めるか進めないかの判定くらいしかしていません。
先に進めなかったら移動前の位置に戻しています。
高さ判定のコードがそれ以外の処理に混ざってしまっているのでコードは割愛しますが
内容はほとんど上の図そのままです。if文だらけになるのはしょうがないのかな。。
こんなに条件が多くなってしまったのは高いところから落下する処理があった為で、
常に足が地面に接地しているだけなら
  • 一番近い高さに移動させる
  • 高さが違いすぎたら元に戻す
この処理だけでもなんとかなりそうな気がします。

条件分岐が多いとはいえ交差判定は今まで通り1回だけで済んでいるので
処理はたいして重くならずに済みました。
ただ高さだけで判定していて正面に壁があるかどうかはまったく調べていないので、
ゲームでよくある壁に沿って滑るような動きができないし、
キャラクタ―が壁に半分めり込んだりします。
複雑な地形での壁の判定はどうしようかな・・・
過去の記事を見直してたら追記したはずのテキストがいつのまにかごっそり抜けてた。
キャッシュから修正しておいたけど、なんだったんだろう。。
再構築した時になんかおかしくなっちゃったのかな・・・

あと最近Alternativa3Dを勉強しようか迷ってます。
作りこんでくるとどうしてもPapervision3Dは表現的な制約が多くて。。
かといってAlternativa3Dは国内の記事が少なくて行き詰った時に大変そうだし、
頑張って使えるようになった後にPapervision3Dがバージョンアップしたら虚しいし。
とりあえずクリッピングといい感じのポリゴンソート(っていうの?)とテクスチャの歪み補正が
常に使える状態になってくれれば幸せになれそうなんだけどなあ。ふがふが。

PV3D2.1: 水の流れの表現

2009年10月 7日
前回のエントリーの続きです。
滝と川を作ったんですがそのアニメーションのさせ方なんかをメモしておきます。

walk3takitsubo.jpg
Papervision3Dでウォークスルーの実験中。
今回は島を作ってテクスチャ貼ってみたよ。
足元の高さ判定の処理はまだちゃんと組んでないので
穴が開いた地形の下もくぐれないし、高い所から落ちると一瞬で着地します。

walkthrough3.jpg
矢印キー:移動
SHIFT+矢印キー:カメラ回転
F:FPSの限界切り替え
W:ワイヤーフレームON/OFF
M:テクスチャの歪み補正ON/OFF
1~4:レンダラ切り替え(デフォルトは1)

PAGE UP:カメラズームイン
PAGE DOWN:カメラズームアウト
HOME:カメラズームリセット

2010年2月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28            

最近のコメント