スポンサーサイト

一定期間更新がないため広告を表示しています

at , スポンサードリンク, -

-, -, pookmark

ぼくのわたしの3D奮闘絵日記

なんか疲れたのでよくわからない画像をうp

at 00:38, 惟心, プログラミング

comments(0), trackbacks(0), pookmark

勝手に紹介

2chのコミケ実況スレで見たものなんですが,
あんかけスパ様:http://ankakespa.blog136.fc2.com/blog-entry-11.html

はぁー.すごいなぁ...
モデリング綺麗だし,なによりシャドウが綺麗に出てるのがすごい...

バラ刻はシャドウに関して,前まではUniform Shadow Mapsっていう手法を使ってたんだけど,
この手法では大きなマップに対応できなかったり,ジャギがひどいっていう欠点があります.
なので,今Perspective Shadow Maps(PSM)っていう手法を導入してるんだけど,
これがどうにもうまくいかない.なんかうまくシャドウマップが生成されなくて困っております.
一応論文落として読んでるんですが,うまく実装できないんですよ...

PSM失敗
画面右の白い四角がシャドウマップ.見当違いのところに深度情報を書き込んでいる?

PSMをもし実装したとしても,正直あんかけスパ様のように綺麗に見せられるか疑問が残りますね.
というか,バラ刻は全体的に画面が安っぽいんだよなぁ...
ポストエフェクトをいっぱい掛ければどうにかなるレベルじゃなくて...
モデルの問題かなぁ...トゥーンシェーディングが微妙ってのもあると思うけど...

at 21:15, 惟心, プログラミング

comments(0), trackbacks(0), pookmark

Keynote

ご無沙汰です.
ごく一部で話題の「アクロバティック燃え萌えシューティングゲーム(笑)」こと
「薔薇の刻印(仮)」の進捗報告です.

結論からいうと,今壁にぶつかっております...

とりあえず物理エンジンPhysXで布の表現がようやくできました!
が,いざスキンメッシュと組み合わせようとしたら,
OBBに布が絡みついてカオスになった...
多分直方体が複雑に重なり合ってる形状だから,衝突検出がカオスになってると推測.

のでOBBはやめて,スキニング用のボーンと,
物理エンジン上の球やカプセルといった簡単な形状を,
一対一で対応させてみようと考えています.
こうすればかなり面白いことが出来そう.

スキンメッシュ制作は,今までMetasequoia + RokDeBone2でやってきましたが,
Metasequoiaには,Keynoteなる凄いプラグインが存在するのを確認!(実は前から知ってましたが...)
何が凄いかって,いちいちファイルを吐かずにボタン一つで
モデリングとアニメーション制作が切り替えられるってことだよ!

これを使わない手がない!と思い,さっそくKeynote用にボーンを作り直す

が...

何かがおかしい,ってかグロい変形をする...(特に股関節部分)
アンカーってのでウェイトマッピングするらしいが,どうもちゃんと動作しない様子.
命名規則や材質設定をちゃんとしてるはずなのになぁ...

で,勉強のために天体少女図鑑様のモデルデータをダウンロードして拝見しました.
...なんつーか凄すぎ!
モデリング上手だし,ボーン多いし,アンカー形状複雑だし,こんなの絶対作れねぇわ...
眼球を顔と切り離して,ボーン仕込んで視線移動とか,口のモーフィングとか,やってることが凄い.

で,ムキになってその日の翌朝,横浜の某大型本屋へ走りモデリングの本を2冊買ってしまった!
前買ったのをあわせてこれで3冊.お金だけは一丁前に使ってるけど,ホントに作れる日が来るのかねぇ...


ローポリ スーパーテクニック
ローポリ スーパーテクニック    
3D Character Animation Manual ローポリアニメーションのすべて
3D Character Animation Manual  
ローポリアニメーションのすべて
ローポリモデリング
ローポリモデリング    

at 00:47, 惟心, プログラミング

comments(0), trackbacks(0), pookmark

OBB(Oriented Bounding Box) + Skinned Mesh

スキンメッシュからOBB(Oriented Bounding Box, 有向バウンディングボックス)を取得しようと試みていますが,難しいねぇ...

D3DXLoadHierarchyFromX関数でフレーム構造を獲得し,各フレームが保持するMeshからOBBを計算.
ここで得られたOBBを物理エンジンの形状データに投げて,アクターを生成しようと考えています,

スキンメッシュでなければ単純に頂点情報をそのまま使ってOBBを計算できるけど,
スキンメッシュの場合は,変形後の頂点情報を使わなければ正しく作成できません.
やっぱり変形後の頂点情報は,地道に計算で出すしかないのかなぁ...

<参考サイト>
電波の缶詰 様:http://www.nomuraz.com/denpa/
雨弓のゲーム製作ブログ 様:http://ameblo.jp/amayumi/

at 12:03, 惟心, プログラミング

comments(0), trackbacks(0), pookmark

STGにおけるボスの行動獲得

気晴らしに簡単なゲームでも作ろうかと思っている今日この頃でして,
それならシューティングゲームはどうだろうかという話があがりました.

ただ作るだけではつまらないだろうから,
ボスの行動を強化学習で獲得させてみたらどうかという方向性で,
ヨッシー(通称)としばらく議論をしてました.



強化学習(きょうかがくしゅう, Reinforcement Learning)とは、
ある環境内におけるエージェントが、現在の状態を観測し、取るべき行動を決定する問題を扱う機械学習の一種。
エージェントは行動を選択することで環境から報酬を得る。
強化学習は一連の行動を通じて報酬が最も多く得られるような方策(policy)を学習する。
引用:http://ja.wikipedia.org/wiki/強化学習



実現の上で問題となったのは,「現在の状態」をどう定義するかということです.
画面(視野)をたとえば8×8=64のグリッドに分割して,各グリッドに弾や機体があるかないかを{0,1}で表現し,
このグリッド情報を状態と定義すると,全状態数は...

2^64 = 18,446,744,073,709,551,616!!

これはひどい!
計算量やメモリ消費量があまりにも現実離れだろうよ...

で,私は,
「SOM(自己組織化マップ)使って64入力→100状態くらいにすればいいんじゃね?」と主張するも,
「SOMの入力データ間の近さって,ただのユークリッド距離じゃん.グリッド情報渡すだけでちゃんと分類できんのかよ」
と突っ込まれ...
「じゃ,じゃあ視野のなんかしらの特徴量を入力として与えて分類すればいいっしょ...
 たとえば画面のエッジを抽出するとか,色のヒストグラムとるとか...」
「それってホントに意味あるのかよ!」
...みたいな感じの話になって,結局SOMを使うっていう案は没になってしまったわけです.
SOM使ってみたかったんだけどなぁ〜.



自己組織化マップ(Self-Organizing Map, SOM)は,
T.Kohonenにより1981年頃に発表された教師なし学習ニューラルネットワークで,
入力パターン群をその類似度に応じて分類する能力を自律的に獲得していくニューラルネットワークである.
SOMでは,入力データに対して,そのデータの特徴を最もよく捉えたある1つのニューロンが発火する.
引用:http://www.intlab.soka.ac.jp/~matsumi/material/NC/SOM/SOM.html



ちなみに解決法はまだ出てません.
相対位置を用いたりとかいろいろ考えているけど,どうもうまくいかなさそうなんだよなぁ...

at 03:03, 惟心, プログラミング

comments(0), trackbacks(0), pookmark