忍者ブログ

[PR]

2024年05月08日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

6月

2009年06月13日

危うく一ヶ月放置するところだった!

住んでるマンションで火災があったりしましたが、データは無事でした。
帰ってきたらめちゃめちゃ煙が上がってて頭が真っ白でしたが。

ちなみに夏コミ落ちましたorz
どちらにせよ、完成は夏を目標に進めていきます。

PR

H1N1

2009年05月19日

新型インフルエンザがかなり広がりそうな感じですねー。
幸い、こちらではまだ感染例は出てないですが、パンでミックが起きた場合などの体制作りで慌しくなってます。
自分が感染源とならないように気をつけないと。


そして時計塔の実況第2弾!



咄嗟の判断が素晴らしいです。最後の1分は怒涛でしたw
この手の動画でWitchが少ないのは、クリアだけだと簡単すぎるせいでしょうかね。
一度クリアして、ルートも分かってしまってるし。

実験

2009年05月17日
固定機能パイプラインとの互換性を度外視して、シェーダーをフルに活用した場合のライティングやポストプロセスを色々と実験していました。

処理負荷や描画ラインが変わりすぎるため、Erstへの導入は取りやめることになりましたが、ポストプロセスの効果の大きさは凄まじいということは感じました。


上のSSは、VSM(分散シャドウマップ)の簡易実装版とSSAO(Screen Space Ambient Occlusion)の超簡易版を組み合わせたものです。

VSMは本来ならチェビシェフの不等式を用いて確率分布によって影生成を行っていますが、これはさらに簡易な実装を行ってます。
見た目にはこれでもかなりソフトな影になっているので、調整すれば軽いVSMとして使えないかなーと考えてます。
SSAOはCRYTEK社が最初に実用化したとされる環境遮蔽に配慮した陰影処理です。が、こちらに関してはSSAOを実装してみたというより、SSAOに発想を得てそれっぽく見える効果を作ってみた感じです。
右側はこれをかなり強調したショットです。
キャラクターの輪郭部にうまく影が作れれば、トゥーンシェードっぽい表現も出来たりしないかなぁと考え中。

法線マップもない△898ポリのローポリモデルとしては、それなりにいい感じに仕上がってるように思います。

ogg再生管理クラスの問題

2009年05月10日
色々とマルチスレッドの勉強をしてました。

現在作ってるErstKerfは、音楽とその他で2~3スレッドしか走らせていませんが、今後のPCの進化の方向性を考えると絶対に必要になりそうです。そこまで負荷の高いゲームを作るなら、ですが。

そのおかげで、Ogg再生開始時の音が切れるような症状の原因がなんとなく掴めました。
といっても、これまでの知識でも頭が回れば気付けていたことなんですが。

今作のOggプレイヤーの仕様では、2つの再生クラス(A、B)を確保しておき、ゲームを開始すると、まずはAのプレイヤーを使って音楽を鳴らします。
曲を変更すると、Aの音楽を指定秒数掛けてフェードアウトさせ、Bの方で新しい曲を再生するようフォーカスを変更し、Aの方はフェードアウトが終わると休止状態になるようにしています。

で、ここで問題になったのが、マルチスレッドでした。
このA、Bの再生プレイヤーは、共にマルチスレッドで音楽をデコード、再生させていたのですが、それを担当するメンバ関数が以下のように宣言されていました。

 static void __cdecl streamThread( void* player );

static装飾詞がついていたために、クラスを2つ確保していても両方ともこの関数を同じメモリ空間で共用することになってました。
互いにメモリの干渉がない場合はいいのですが、streamThreadは基本的にゲーム終了時までループしつづけるので、ローカル変数もその間保持され続けます。
これのせいで、新しい曲を開始したときに以前のローカルメモリが干渉してしまっていました。
今までは、前の曲が終わってから次の曲が始まるまでに間のあるシーンが多かったのでこの干渉が少なく、気付くのが遅れました。

で、直すためにstaticを外そうと思ったのですがこれが難問で、どうやっても_beginthreadに関数ポインタを渡せなくなってしまいました。error c3867がどうにも出来ず、MSDNを参照してもちょっと解決方法が分かりませんでした。
結局、再生用クラスにIDを与え、staticつきのstreamThread関数を2個つくってID==0ならA用のスレッド、それ以外はB用のスレッドを開始という感じに誤魔化すことにしました。

なんか長々としてますが、個人的にこの状態がなんとなく気持ち悪いです。
もし、staticを外したメンバ関数を_beginthreadに渡す方法が分かる方がいましたら御一報下さい。

GWきたよー

2009年05月01日
久々にたっぷり時間が取れる!
5月5日にじゅんくんがM3というイベントで音楽CDを配布します。
パッケージイラストとか担当させて頂いたので、もし参加予定のある方がいたら是非ともゲッツしてみてください。


http://blog.cnobi.jp/v1/blog/user/facb69965cc0e2aa2ab0d154650d346a/1241181907


ゲームの方はアーケードモードの全ボスを一通り実装しました。
おかげでボスモードの方も出来上がりました。
なので、休み中はグラフィックとステージマップの作成に専念しようと思ってます。

はこ

2009年04月25日


昨日買ってきた参考書。
あまりの箱っぷりに感動した。
これはネタになると思って撮影。

論文集みたいなのがついてなければ半分くらいのサイズなんですけどねー。
土日に突入したのでゲームの方を再開してきます。
現在5Bossを実装中です。

レン

2009年04月10日

http://blog.cnobi.jp/v1/blog/user/facb69965cc0e2aa2ab0d154650d346a/1239372782

少し日記のほうをサボってしまいました。
現在、道中をすっとばして4ボスを作成中です。

私生活の方がかなり忙しくなってきたので、出来るところからどんどん進めるようにしてます。
ゴールが見えてたほうがやる気でますので
要所部分を一気にやっていく予定。

ジョイパット入力

2009年03月16日
というわけで、2軸ジョイスティックのゲームパットに対応させました。
PS2コントローラーみたいなやつのことです。
左スティックで移動、右スティックでマウス操作出来るようになってます。
まだ調整が必要ですが、これでマウス操作が苦手でも少し遊びやすくなるかもしれないです。

左手にコントローラー、右手にマウスというWiiスタイルも可能となってます。