Alternativa3Dの最近のブログ記事

前回Alternativa3D(A3D7.7)でJiglibFlashを使えるところまで行ったので、今回はキャラクタ用コリジョンを作ってみます。

最初に考えていたのは、回転しないようにした縦長のカプセルコリジョンを作って歩く方向に力を加えていくものだったんですが、実際やってみると設定が悪いせいか動くカプセルの衝突判定がなんだかおかしい。他のボックス・球・カプセルとぶつかった時にピクピクしたり簡単にすり抜けたり。設定で何とかならないか色々試してみたもののなかなか改善できなかったので、結局動くカプセルはなるべく使わないようにする事にしました。カプセル以外のコリジョンが動かないカプセルにぶつかったときは問題なかったんだけどね。

色々と試行錯誤しつつ決めたキャラクタの処理

  • 回転しない球体コリジョンを用意する。
  • 必要ならキャラクタのメッシュと連携させる。一人称視点ならコリジョンだけで。
  • キー入力で前後左右に移動。ジャンプもできるようにする。
  • 必要ならマウスドラッグで視点を動かす。
  • キャラクタの視線ベクトルと垂直ベクトルの外積で水平横方向のベクトルを作り、そこから水平前方向のベクトルも作って前後左右の移動処理に使う。
  • 視線が真上か真下を向いていると上記の計算ができなくなるので角度は制限する。
  • 自分のコリジョンが周囲のコリジョンとぶつかっているか、どの角度で触れているかをチェックして、ジャンプできるか判定する。(空中や絶壁でのジャンプをさせないため)
  • 摩擦があると壁に接触した状態でのジャンプが難しいため0にする。その代わり毎フレーム水平方向のみ移動量を減退させて摩擦っぽくさせる。
  • 摩擦を0にした事でちょっとした坂もずるずる滑ってしまう為、足元がゆるい傾斜+接地中のみ無重力にして滑らないようにする。


Alternativa3D(A3D7.7)でウォークスルーしてみようと思います。3Dな地形の中をキャラクターが歩き回るあれです。

昔PV3Dで作ろうとしていて記事もいくつか書いてたんですが、当たり判定難しいとか、PV3Dのポリゴンソート的に厳しいとかで、1年以上放置してました・・・。今回は当たり判定に物理エンジンライブラリを使ってみる事にします。

ここ最近は出来あがった作品をwonderflに投稿するだけだったので、久しぶりに制作過程をメモしていこうと思います。ただ、Alternativa3Dの基本的な使い方までは解説しないので、そっちを知りたい方はnarutohyperさんのサイトが詳しいのでそちらをお勧めします。
東京てらこ がっつり3D スライド資料 | Alternativa3D7 | 丸林商店

これから作っていくもののソースコードですが、ちょっとしたサンプルは公開できるかもしれないけど、作りこんでくると公開が難しくなるので、あまり期待しない方がいいかも。
更新。。。久々。。。
Papervision3Dに感動して毎日弄っていたり、ウォークスルーコンテンツ作ろうとしていたあの頃が懐かしいです。

ここのブログを放置している間にXREAの有料期間が過ぎてしまって、広告が表示されるようになったり、ディスク容量が減ったりしてしまいました。容量が減った影響でいくつかファイルを削除したので、見れないものがあるかもしれません。

お金を払えばまた元に戻せるんですが、以前からXREAのサーバー障害が頻繁に発生していた事もあって、せっかくなので別のサーバーに移転しようか迷っています。震災の影響なのか、どこのサービスも障害だらけで、いいところが見つかっていませんが。。

そうそう最近はFlashでの3D表現にAlternativa3D(A3D)を主に使っています。前回の記事でちょっとA3Dについて触れたけど、あれからバージョンが上がって一部不具合が修正されて、ロゴも簡単に消せるようになって、3dsMax用プラグインも出ています。A3D関係の記事も増やしていきたいなあ。
alt3dtest.jpg

Alternativa3Dで3Dデモを作ったよ。バージョンは最近出た7.5。
なんだかゲームが始まりそうな雰囲気ですが、残念ながら眺めるだけです。(CAMERAをDRAGにすると画面ドラッグで動かせる)
1  2