開発ログ

■2006年  ■2007年  ■2008年  ■2009年  ■最新10件

2007/12/31
今年最後の更新。
みくを増やしていったときに急激に重くなるのはビデオカードではなくCPU負荷が原因でした。
モーション再生部分に気になる部分があったので、ちょいと改良したらとんでもない速度出たー!

100人描いてもダイジョーブ!
GeForce6800程度でも9フレームでます。超軽い!

ということで、早速この処理負荷軽減パッチをリリースいたします。

HatwuneBench_1.01Patch.zip
注)パッチですのでコレ単体では動きません。

中にexeファイルが1つ入ってるのでそれで上書きしてください。
タイトル画面のバージョン表記がv1.01になればokです。



2007/12/28
フェイシャル以外の互換性は一応取れたので、とりあえず。

あいかわらずスカートのボーンがどうにもこうにも。
揺れ物処理の実装もしないと・・・ううむ。

てか銀様こういうの似合わねー!!
強いてやるならエージェントですかねぇ。
ごまえーは雛に躍らせたい。



2007/12/17
例の知人に60fpsの動画作ってもらいました。
今回は事情により音質重視となっております。


みくx16のカオスっぷりも堪能していただくため、最後に30秒ほど入れましたw


ダウンロード版も用意しました。ただし音声は入っていません。

中画質版をダウンロード(640x480 60fps Ql75 wmvフォーマット 音声無し 37MB)
はとぅねベンチ デモムービー(中画質)


高画質版をダウンロード(1024x768 60fps Ql83 wmvフォーマット 音声無し 98MB)
転送量ヤバすぎで自鯖では耐えられなかったので、代わりに各所アップローダーへ。
はとぅねベンチ デモムービー(高画質) ミラー1 pass:miku
はとぅねベンチ デモムービー(高画質) ミラー2 pass:miku
はとぅねベンチ デモムービー(高画質) ミラー3 pass:far

どこか繋がったところからDLしてください。
サイズでかいので注意。スペック低いと再生もたつきます。



2007/12/13
無事冬コミ用のマスター入稿も済み、のんびりと雑務をしております。
掲載用のSS撮り溜めたりとか、ニコニコうp用の音の最終調整とか。

キャプチャに詳しい知人にお願いして、60fpsのぬるぬる動画を作ってもらってるところです。
アナログキャプチャ?らしいのでちょっと変色するみたい。
近いうちにホームページでその高画質版をアップします。音はありません。
イベントやショップで頒布予定の「はとぅねベンチ」にも音は付きません。ご了承ください。

ニコニコ動画には音付き(低画質の音質重視)でアップする予定ですので、あとは各自ごにょごにょ・・・ですかね。
原曲をお持ちの方はそれをあてがってください。ボーカルはもちろんやよいで。Full版はちょっと編集要るかも。
Otomania様が歌わせたミクもマジオススメです。



記事にするのが遅れましたが、今回も、しあわせ1500先生にジャケット絵を書いていただきました。ありがとうございます!
付加価値増し増しだー!増し増しだー!


店頭ではこの絵を目印にお探しくださいませ。
取り扱い店の詳細は決定次第追ってアナウンスいたします。


ちなみにジャケット裏とレーベルはこんな感じになっております。
 



さて、随分ご無沙汰してしまったMesogearsの方なんですが、実はこちらもプレスしちゃいました。
こちらはまだ未完成なので、イベントのみの頒布となります。
進捗状態が気になる方はこの機会に是非どうぞ。



「はとぅねベンチ」と「Mesogears v0.70」は、イベント頒布時はどちらも500円の予定です。
「はとぅねベンチ」のショップ委託の場合はこれよりちょっと高くなるかと思われます。



それでは久々のMesogearsのスクリーンショット。
はとぅねみくが鞄の横に背を向けて座ってるわけですが、


銀様のモーションでそれなりに動きます。


髪の毛やスカートのモーションの互換性が低くて、稀に変な動きします。
今回のバージョン(v0.70)のおまけ要素みたいなものなのでご容赦くださいまし。
Mesogearsのプレイヤーはローゼンキャラのみで統一しようと思ってますので、
以降のバージョンでは「はとぅねみく」は自重する予定でおります。
「はとぅねみく」は「はとぅねベンチ」の方でがんばってもらいましょう。



2007/12/09
マスター入稿まで残り1日。はとぅねのほうはなんとか形になりました。
あとはメソギアと印刷物周りをなんとかしないと・・・。

タイトル画面。UIがちょっとやっつけ気味でスイマセン。
ロゴは知り合いのプログラマー様に作っていただきました。ありがとうございます!
右下にフレームレートを大きく表示。

肩幅とか手とかもうちょっと弄りたかったのすが、さすがにもう間に合いそうにありません。

はとぅねx16。位置とモーションがランダムなおかげでテラフリーダム。
コリジョン無視。突き抜けようがお構いなし。自重しないバックダンサー達。

描画に約2秒ほどかかってるので0.5fpsといったところでしょうか。1fps以下は計測不能・・・。



2007/12/03
モーションデータ読み込み時に、1秒間隔のシークテーブルを自動生成するように改造。
これを参照させることで例の処理落ちは回避できるようになりました。

それからもう一つ、モーションにプログラムが干渉できる機構の実装。
某ライブラリに習いアニメーションモディファイアと呼ぶことにします。
既存のエンジンではXSIで作成したモーションをただ再生するだけでしたが、
今回のこの実装により、プログラム側からいろいろできるようになります。
主に首振りと眼球の制御に使います。揺れ物やIK処理の下地にもなるので、
なるべく汎用性の高い状態になるように気を使いました。

まずは眼球でテスト。カメラを追わせます。
カメラと頭の差分角度を、眼球のアニメーションモディファイアに適用。
不自然にならないようにするための細かい調整がとても大変です。
白目防止用のクランプ処理は必須ですね。


ちょっとした変化ですが、破壊力抜群です。



アイマスのように、カメラに反応するまでちょっとディレイを持たせてみようと思います。
0.5秒くらいがいいかなぁ。



2007/11/26
5体表示して遊んでみました。
以下のシーンだと71fps出てます。

同じモデルなのでキャッシュが効いているのでしょうね。
GeForce8800なら10体くらい余裕で出せそうな予感がします。
なんだかほんとにベンチマークっぽくなってきたw
今まではシーン編集ツールみたいな感じだったので、なんだかなぁという感じでしたが・・・。
これはちょっと面白いアイデアなので、描画人数を任意で変えられる機能を付けようと思います。

ただし新たにバグを発見してしまうことにもなりました。
長いモーションの場合、後半になればなるほど処理負荷が上がるんです。しかも指数関数的に。
ソロで踊ってたときは処理負荷が目立たなかったため気が付けませんでした。

おそらくキーフレーム補間の際に、毎回頭から検索してるんではなかろうかと思うのですが、
なにしろずいぶん前に書いたモジュールなので、追うのが大変です・・・

それから、先週中に動画お披露目みたいなこと書きましたが、
もうしばらくお待ちください・・・。



2007/11/18
ミクの調教完了。
先日製作しておいた伴奏と合成します。
GoMyWay_HatuneMix.mp3(ボーカル強調版)
GoMyWay_HatuneMix2.mp3(音量バランス調整&強めのリバーブ追加版)

同じじゃつまらないと思って2番にしてみました。
れぅ〜もちゃんと入れてありますw
1:05あたりの「さあ今〜」のところ、「さ」と、その前の歯茎音を強調するための「s」の音階を
思い切って離したらポルタメントが良い感じになりました。


ところで初音ミクって、歌詞をそのまま入力してもあんまりうまく歌ってくれないんですね。
なので日本語なのに結構空耳だったりします。

「GO MY WAY!! GO前へ!!」 → 「ごまぃ ふぇーぃ♪ ごまっっ えーぃ♪」

ってな感じで入力して、ちょっと弾むように歌わせてみたりとか、ここら辺の空耳あてがう作業はちょっと楽しい。
他にも「はひふへほ」→「ぱぴぷぺぽ」にした方が良く聞こえるところとか。変な癖ばっかり・・・

「ほら一人一人が」 → 「んほらぴーいとーりーぴーいとりーっがーん」

なんというエセ空耳(;´д`)


さて・・・今からこの曲に合わせてフェイスアニメを修正します。



2007/11/16
いつまでもotomania様の初音ミクに甘えてちゃいけないので、音楽も自分で再現することにします。
ずっとモデリング・モーション作業が続いてたので気分転換に丁度いい。

まずはミクを調教する前に伴奏を作っちまいます。
ミクの綺麗な高音を生かすため、キーを二つほど上げて製作しました。
GoMyWay_Inst.mp3
トランペット、ベース、ドラムでシンプルな構成に。あ、あとオルゴールもちょっと。
まだミクは調教中なのでミキシングしてません。


画像無いと寂しいので、製作風景でものっけときます。


ピッチベンドの調整は面倒なので結構いいかげんだったりします。


1:01〜1:09あたりのドラム。やっぱりドラム打ち込んでる時が一番楽しい。


ミクの調教の方も半分くらい終わりました。軽くネタも仕込んでいますw
コーラスも調整中。
来週中にはお披露目できるかと思います。



2007/11/10
ステージモデルに照明追加。
照明のモーションは付けてないので固定です・・・。後でちゃんと回してあげようと思います。

640x480のサイズで実行したものをキャプチャ。
今回は16:9にしてみようと思います。AviUtlでサイズを調整。


やっぱり背景付くと結構違うものですねぇ。
上下に黒幕付けて4:3にしたらなんかPV風な感じになりました。

早速flvにエンコードしてうぷ。




2007/11/09
ステージモデルにテクスチャを張りました。

あとはコレに照明のビームが入ればそれっぽくなるでしょうか・・・

キャラクターのシャドウは丸影の応用で、十字の形をした影の絵を貼った板ポリを
踵とつま先の位置に表示してるだけです。Y座標は固定。床よりほんの少し上です。
足が床から離れたら、離れた距離に応じてアルファを変化させるようにしました。



2007/11/08
口を2パターンのみでパクパクさせていたところを、あいうえお+閉じの6パターンにしました。
音に合わせてつけるのがものすごく大変・・・。でもなんとか終了。
2パターンだけでも十分な感じだったんですが、せっかく作ったターゲットが勿体無かったので。

アイマスっぽいカメラのプログラムも大体出来ました。スクリプトでの制御にも対応。
あとは要所要所で切り替わるようにスクリプトを書いていくだけです。この辺はまぁ適当に。

そして現在は背景モデルの作成中。

ここで力尽きました。テクスチャは後日・・・



2007/11/06
グレアフィルタのパラメータが結構悩ましいです。
かけすぎると肌色が膨張するし、さらにぱんつが発光しやがります。
なかなか良い数値が見つからない。やっぱり擬似だからですね。本家HDRには敵いませんわ。
まぁそれはおいといて、眼球もシェイプアニメに対応しました。
ついでに、おでこ広すぎな感じだったので調整しました。



スピード制限 のところ。
黒目の部分を80%スケール。そしてちょい寄り目な感じに。

っつーか髪の毛があああ!!付け根に近い部分はウェイト影響弱いから回避不能orz
ボーンを割るしかないですが、データとエンジンの大規模な改造になるので今は諦めます・・・。


今週末あたりにでもまた動画アップしようかと思います。



2007/11/05
ギャラリーがあんまり太い太いうるさいので、細くしてやることにしました。


特にこの辺を。


・・・あれ?おっかしいなぁ、なんだか逆効果な気がするけど。気のせいですよね?


他にもいろいろ修正。顔の頂点もかなり変更しました。
髪の毛テクスチャのハイライト部分を強めにしました。グレアフィルタとの相乗効果を狙います。


左上のデバッグ表示はカメラの情報です。
独自スクリプトによるカメラ編集機能の実装が地味に進んでます。
モーションやフェイスアニメも編集可能になる予定。



2007/10/31
頂点シェーダーによるトゥイーニング(中間フレームを生成する処理 語源はbetweenらしい)の実装完了。
あとはモーフターゲット(キーになる形状データ)を量産してシェイプアニメに関しては1段落という感じでしょうか。
まぁその量産作業がまた大変なんですが。

シェーダーはテクスチャ用のストリーム8本を座標x4と法線x4に割り当てて、4種類の形状をブレンドできるようにしました。
シェイプウェイトの変動がアニメーションとなります。正規化して、4つの形状にそれぞれ掛けて足すって感じです。
ただし線形補間なので変形中は法線がちょっとおかしいかも。トゥーンレンダリングだからほとんど気にならないので放っておきます。

対応頂点数が少ないせいか、処理負荷がよく分かりません。
多分そんなに重く無いはず・・・。


瞬きの変形途中。

じと目こわっ!
銀様なら似合いそう。ターゲットとして作ってしまってもいいかも。

ウインクとか。

いぇー!!のところ。
ジャケ絵にでも使おうかなぁ。
しあわせ1500先生に教えてもらったフォトショの選択範囲の拡張機能。
有効活用させていただいておりますヨ!



2007/10/29
口の中を作りこみ。


歯も作りましたが骨格の矛盾がバレるのであんまり見えないようにしたいです・・・。
確かアイマスは歯の描画してなかったような。特定の表情の時だけだったかなぁ。
そもそもこれ口開けすぎかもしれない。



2007/10/27
シェイプアニメの実験中。
XSI上でシェイプ周りを弄り倒してみたものの、dotxsiで出力すると必ず頂点データが
全フレームプロットされてしまうという、なんとも汎用性の無い結果に困ってます。
ただ再生する分にはいいんですが・・・。ゲーム中のインタラクティブな操作が難しい。

とりあえずこんな感じ。顔はフリーズモデルを表示してる状態。アニメーションはこれから。
データ構造の見直しのためもうしばらく時間かかりそうです。



2007/10/21
体型が気になったのでちょっとダイエット。てかまだ太いか・・・。弄りすぎるとバランス崩壊が怖ひ。


髪の毛のモーション難しい。

ボーン2本だけで制御してるので、腕が突き抜けてしまうのはどうしようもないです・・・。

ひとまず動画アップ。
カメラは胸の辺りをXZ追従&Y固定というのを作りましたが、面白みも何にも無いなぁ。

初音ミクには到底及ばないモデルなので「はとぅねみく」に改名します・・・。
コメント見たらやっぱり太いって言われてる('A`) 所詮CGデザイナーとしては素人だしそこらへん勘弁なー

さて背景とかカメラとか表情とかどうしたものかなぁ。



2007/10/20
ここ10日ほど更新ほったらかしてモーションの研究してました。
IK操作はかなり手馴れました。重心移動とかも違和感ない程度に上達したと思います。
リグは複雑すぎるので使ってません。なので体のひねりとかはまだまだ厳しいなぁって感じです。

以下を見れば何を踊ってるか分かる人には分かるかと。







相当時間かけてます。ファンクションカーブ編集作業は優に100時間は超えているかと思う・・・。


スカートも手付けでやってみましたが、けしからんことになりました・・・


腰の下降中と速いY軸回転中にぶわっと広がるように付けたんですが、
まったくけしからん、ほんとにまったく。
止め絵だとこんな感じですが、動画だと結構上級者向けです。いろんな意味で。


現在髪の毛の動きを調整中。


なんという寄生獣。


髪の毛の調整が終わったらひとまず動画アップしてみます。



2007/10/09
久々にXSI立ち上げてモデリング作業。

俺の新しい腋を見せてやる!(誤植的な意味で)

はいはいまそっぷまそっぷ。
真紅も作らんで何やってんの!とか言われそうです・・・
ネタのために適当に作るつもりが、気合入れてボーンのウェイト付けまでしてしまいました。
せっかくだから葱でも持たせてゲームに出そうかなぁ。



葱作成。
早速持たせてみました。

ヤベェ。なんか楽しくなってきた。
ちょっとこれで動画作ってみよう。



動画出来た。
早速アップ。




2007/10/06
ポストエフェクト第二弾。フィードバックブラーのテスト。
描画したフレームバッファをテクスチャとして取っておいて、次のフレームにブレンドする手法です。
今回はブレンドする際にちょいと拡大処理を入れています。


キャラクター等はぼやけてしまいますが、爆発エフェクトはグレアフィルタも相まってやたらゴージャスになります。
スクリーンの中心を原点に拡大しているので、集中線みたいな効果も出てる気がします。

常時このブラーをかけてプレイしていたら、なんか気持ち悪くなってきた・・・。
止め絵だと映えるんだけどなぁ。
ボス撃破時とかに限定して入れようかなと思います。



2007/10/01
久々の進捗動画。

・グレアフィルタ
・新カメラ
・ヒットエフェクト(血飛沫の追加とヒットマークの変更)
・ミニマップ
・ジェム
・クリティカル
・レベルアップ
・オクルージョンカリング(カメラに木がかぶった時に半透明化)
・スコアログ
・タイムエクステンド
並べてみるといろいろ入った感じがします。
しかしながら肝心の新モデルと通信は相変わらず手が付いておりませぬー。
体験版の公開ももうしばらくかかりそうです。
スコアアタックが熱くなりそうな感じ。



2007/09/27
経験値となるジェムを追加。
やっとゲームらしい要素が・・・


敵やオブジェクトを攻撃したときに、敵Lvやコンボ状態を加味しつつばら撒く予定です。
序盤は小さい赤や黄色が主で、ダイヤは後半のボスあたりから出そうかと。



2007/09/25
ヒットマークエフェクトとミニマップシステムの追加。


ヒットマークが血飛沫で埋もれた感じだったので、少し強調するような感じにしました。
剣の角度に合わせてポリゴンを回転させてます。これでバッサリ感アップ。

ミニマップはちょいと面倒でした。
高い位置に設定したカメラからのレンダリング結果を、テクスチャとして貼り付け。
現在はマップモデルをそのままレンダリングして使用している状態。
さすがに処理が重たいので、ミニマップ用の簡易モデルを用意する予定です。



2007/09/23
・・・初音ミクにどっぷりです。


今回もソースも晒します。
VOCALOID2用シーケンスデータ(.vsqファイル)です。
Miku_UtenaOP.zip

ヘッドフォンで大音量のミク声聞きながら、ウン十時間と調整していたせいで、
なんかもう耳が物故割れそう。まだ気になるところがたくさんありますが、
これ以上調整続けても泥沼な感じなんで諦めます。正直、選曲ミスだと思った。

ちょっと寄り道が過ぎました。そろそろ本流に戻ります。



2007/09/19
微妙に開発は進んでますが、視覚的な変化が乏しいため更新する気が起きないというか、
え?いやほんと、カメラ周りのコードなんてもうほとんど一新・・・
・・・って以下を見られたら信憑性なんて皆無ですね


ハイスイマセン。正直VOCALOID2 初音ミクで遊びすぎました。
使い慣れているcherryっていうMIDIシーケンサ(作者はTMIDIの人)のインターフェイスに酷似してて、
すんなり弄り倒すことが出来たんですよね。もう面白くって。
勢い余って初音ミクをモデリングしてアイマスのモーション作ろうかとも考えましたが、
さすがにちと作る気力無いです。音だけ作って力尽きた感じです。なので動画はやっつけ編集。
そのうちまた気が向いたらということで。

せっかくなのでソース晒します。
VOCALOID2用シーケンスデータ(.vsqファイル)です。
Tunak Tunak Tun(通称:ベリーナイスジャンキー組合)
おまけ
FF2 反乱軍のテーマ
こっちは歌詞入ってません。音符をひたすら打ち込んだだけ。



2007/09/05
このゲームにはグロテスクなシーンが(略


攻撃がヒットした座標からちょっと遅れて血飛沫という
明らかにモンスターハンターの影響を受けたであろうエフェクトを追加しました。

しかし、ちょっとやりすぎたかも。画面真っ赤。
せっかくのヒットマークが隠れて見えません。



2007/09/03
グレアフィルタの高速化。
ぼかし処理のために16回も重ね描きしていた部分を、ガウス関数を使用する手法に変更。
偉大なるt-pot様のガウスフィルタを参照。
うちは未だにHLSL使ってないので、これをアセンブラに落とし込み。
texld命令の従属テクスチャのせいで結構つまずきました・・・
シェーダーコードは複雑になってしまいましたが、これなら2回の描画で済むのでおそらく軽くなるでしょう。

GeForce6800にて、背景モデルとプレイヤーモデル1体の表示時を計測
変更前 80fps
変更後 104fps

結果、やはり高速化になりました。しかもぼかし具合が前に比べて断然キレイ!!
グレアフィルタ無しの状態だと121fpsだったので、どちらにしろこのような処理は非常に
高負荷な処理だという事が分かるのですが、この画面効果なら許容範囲ではないかなーと。

以下はちょっと極端な例ですが、

明るい光が暗い部分に回り込む様子がでてます。
黒い羽の先端が特に分かりやすいですね。



ただの白い色(RGB(255,255,255))なのに、
うおっまぶしっ
という感じが出てると思いますがどうでしょうか。



2007/08/31
ポストエフェクトの実験。
StretchRectでフレームバッファをテクスチャにコピー出来ることがわかったので、いろいろやってみるテスト。
最初からテクスチャにレンダリングするというのでもいいけど、マルチサンプリングが効かないため断念。


まずはグレアフィルタ(ブルームエフェクト?)(擬似HDR?)をやってみました。

ピクセルシェーダーでRGBをそれぞれ0.8ほど減算しながらもう1枚のテクスチャに描画。
ぼかし処理を施すため、ちょっとずつ座標をずらしながら16回ほど重ね描き。
これを加算ブレンドでフレームバッファに描き戻しています。

元テクスチャ


輝度抽出&ぼかし処理


結果

暗いピクセルはそのまま。明るいところがより明るくなるというエフェクトです。
ぼかし処理によって、光が回り込む効果もでます。
バイリニアフィルタによるぼかしも効果的なため、加工するテクスチャは
フレームバッファより一回り小さいサイズを使っています。


以下は輝度抽出部分で青成分を多く残した場合の例。

フィルタ前


フィルタ後

スカートの十字架模様の部分を見ると、光が回りに溢れているのがよく分かると思います。


以下は失敗例?


強烈に効果が出すぎて白飛びしまくり。
爆発エフェクトなんかは真っ白になっちゃいます。
でもこれはこれで、演出として使い道ありそうな感じもします。

普段は抑え目に。

画質向上しまくり。
そもそもポストエフェクトなんて贅沢な処理なんだから、向上してもらわなきゃ困るんですが。
当然負荷もやばいことに。動作テスト用のノートじゃまともに動かなくなりましたorz

ビデオカードの性能に大きく影響される処理ですが、
今のところ開発用のGeForce6800でなら余裕で動いてます。



2007/08/27
フォグ(霧)を実装。
カメラからの距離で頂点の色を変える簡単な奴ですが、遠近感が引き立ちます。


これはフォグのパラメータを RGB(200,225,255) Near(10m) Far(200m) に設定した例
カメラから10mまではポリゴンオリジナルの色で、そこから200mまで線形にフォグの色に変わっていきます。
木の色を見てみると、手前と奥で違いが出ているのが分かります。
空と雲のポリゴンはカメラから200m以上の距離にありますが、マテリアルごとにフォグの有無を
指定可能にしたので、これだけフォグを適用せずにそのままの色で描画しています。


フォグカラーを黒にした場合、別の演出効果が期待できます。

ダンジョン内や、外の夜なんかに使えそうです。
ただし遠くに光源があったとしても、フォグカラーで塗りつぶされてしまうので、
使いどころに注意しないといけないかも。
まじめにやるなら、カメラの座標を追従するポイントライトかなー。



2007/08/25
v050のバグ修正。
二頭スプーのファイアブレスチャージ中に倒すと、落ちる
という結構ヤバ目な物。

頒布数が少なかったこともありますが、比較的簡単に出せる上記バグの報告が
知人以外から上がってこないのを見ると、難しすぎて倒せてないんだろうか。
と思ったのでバグ修正ついでにちょこっとだけバランス調整。(敵の攻撃頻度とダメージ量の低減)

さらに、スキニング処理をしている部分をボーン影響数によって分岐。
これは1〜3ボーンしか影響してないのに4ボーン処理してた部分が高速化の対象。
おかげでシェーダーファイル数が約4倍に膨れ上がりました。
手間だったわりには気休め程度の高速化にしかならず。うー。

以上をv0.51とし、v0.50用のパッチという形でリリースします。


2007/08/23
冬コミ応募しました。

無事カタログに載るといいですが。



2007/08/19
夏コミで流したデモ公開しまーす。
ニコニコとYoutube両方とも同じ内容ですが、ニコニコ版のほうが高画質です。

http://www.nicovideo.jp/watch/sm870367

http://www.youtube.com/watch?v=QfQch3iVP7E

夏コミで頒布したCD-Rには、容量がもったいなかったのでレッツゴー人形師のムービーを入れました。
デモムービーにも妙なカットインとして含まれてますが、ゲーム内容とは無関係なのであしからず。
混乱するような動画で申し訳ないッス。



2007/08/13
( Д)  ゚ ゚

あ・・・ありのまま 今 起こった事を話すぜ!

しあわせ1500氏にタイトル画面のグラフィックを描いてもらえることになった』
↓ラフ画像公開の許可をいただきました


な・・・ 何を言っているのか わからねーと思うが
おれも何をされたのかわからなかった・・・

頭がどうにかなりそうだった・・・

キャラ追加だとかマップ追加だとか
そんなチャチなもんじゃあ 断じてねぇ

恐ろしいまでのクオリティアップの片鱗を味わったぜ・・・



----
というわけで、今回ROMの最大のサプライズです。
つーか私自身が一番サプライズしちゃってるわけですが。
まさか本当にプロに協力してもらえるとは思いませんでした。
しかもなーんと、氏のサークルスペースに「Mesogears v0.50」の委託までお願いできてしまったりする始末。
コミックマーケット72
08/19(日) 東地区 ト-08a 「しあわせまんじゅう」
3日目なので、1日目に来れない方はこちらでどうぞ。
でもやっぱり手焼きなので部数はちょっとしか出せないかも。



2007/08/10
ベースを作成してからおよそ1年近く放置していたエネミー回りのプログラムに、久々に手をつけました。
新規モーション関連、プレイヤーとの判定、ダメージ処理、SE付け、etc...

ぱふぁ


バツン

バランス調整等はまだ先です。

それと新しいエフェクトをいくつか作成したりとか。

チャージ中 SEも付きました。

チャージLv4

どちらもパーティクルをプレイヤーの近くにランダムで配置し、
左手首のボーンを追従しながら収縮するような動き。
細長くするために、パーティクル配置時に頂点バッファをいじって長方形にしてあります。

夏コミまでもうほとんど時間無いってーのに、開発ペース上がらない・・・MHFやりたい・・・


2007/08/03
MHFたーのしー!!
プレイ中の画面をキャプチャして遊んでみたよ。
http://www.nicovideo.jp/watch/sm757678

はいスイマセン。開発とは一切関係ありません。
もうすぐチケット切れるので、そしたら開発に専念します・・・。


以下本題。
現状を動画にしました。
http://www.nicovideo.jp/watch/sm758338



2007/08/01
プレイヤーセレクト画面を構築中です。
テーブルクロスとカーテンのモデリング。テクスチャ作成がしんどい。
2D周りの処理も追加。
ステータスの値は仮です。項目すらも気分次第で変更します。

カーソルを高速で動かすと頭が動きまくってちょっと不気味。


マップ担当のfukurou氏から待望のにゅーマップモデルが届きました。
ステージ2はクロックタワーの予定。自然物はキツイそうです。

歯車は別オブジェクトにして回してもらおうと思います。



2007/07/26
プレイヤーセレクト画面を構築中です。
空いてるスペースにはあともう二体が納まる予定・・・

選択するとこっちを向くモーションを作成。 こっち見んな。

参考
D&D Shadow over Mystara Play Demo←これの45秒あたり



2007/07/19
更新頻度縮小キャンペーン中。理由はお察しの通りです。




ひとつのオブジェクトを複数のシェーダーで構成してみるテスト。
蝶番などの金属パーツにフォン、それ以外はランバートですが、
外側の皮と中の布で若干パラメータを変えてあり、影のきつさが違います。

この程度のテクスチャでも不慣れなので、製作に時間掛かりすぎてだるいです。
だいたいモデリング3時間テクスチャ描き4時間MHF10時間くらい。あれ?



2007/06/29
解像度不足でボケボケだったオプション画面を変更。

Photoshopのフィルタ面白い。いろいろ試してみてます。



2007/06/28
夏は2ステージまでの予定。
ボリューム不足な感じではありますが、クオリティ重視ということで大目に見てください。
マップとエネミーの一部を手伝ってくれている某氏が多忙なため、無茶言えません。
冗長性のある配置オブジェクトなんかは、こちらも出来るだけサポートしていきたいと思います。
手始めに木とか。


スクリプトで配置オブジェクトにスケールも指定できるようにしたので、
Scale_Y=-1でミラーモデルを演出することが可能になりました。

今まではユニークなマップモデルとして1本1本個別に処理していたのが、
これによって同一モデルを参照するようになるので、データサイズと処理速度が若干軽くなります。

今回は頂点カラーにも挑戦してみました。
幹のくぼんでる部分と、葉っぱの付け根部分をちょっと暗い色に設定しています。

テクスチャとランバートの拡散反射と頂点カラーだけでも、かなりリアルな表現が出来そうです。
あとはバンプマッピングを実装すればより良くなるかも。



2007/06/25
鼻と下唇に影が出る様にしたりとか、相変わらずまだフェイスモデルを弄ってるわけですが、
キリが無いのでそろそろこの辺にしとこうかと思います。


残り2体にフェイスモデルを移植。
全くのコピーではなく、目元や輪郭あたりを微妙に変えてあります。





2007/06/22
フェイスモデルを更に調整しました。

顔全体のバランス、頬と鼻のテクスチャ、口の形を修正。
口のラインは、中心が細くて端が太い形に。猫口とはちょっと違います。

長時間ずーーーーっと同じモデルをいじくりまわしてるおかげで感覚が麻痺してきました。
んもう改良なのか改悪なのか自分では分からなくなってきた・・・。
らき☆すたのこなたのせいで、むしろ猫口でもいいような気もしてるし、うーむ。

↓動かすとこんな感じ。
http://www.nicovideo.jp/watch/sm493186



2007/06/20
輪郭シェーダーを改造しました。
輪郭の太さに座標変換を終えた頂点のW値を乗算することで、スクリーン上では太さを一定に保てるのですが、
カメラとの距離によってモデルの大きさが変わると、相対的に太さが変わって見えてしまうのが問題でした。
かといって、今までのようにモデルと同じように計算しても当然太さが変わります。
そこで、中間をとることにしました。
(元の輪郭の太さ + Wを乗算した輪郭の太さ) / 2
これでまぁまぁ妥協できる範囲のクオリティになったかと。

さらにフェイスモデル修正。
全体のXスケールの調整、鼻と口周りを作り直し。前髪もちょこっといじってます。


斜め45度を向いたあたりから鼻のラインが出るような形にしました。

後のモーフィングを見越して、まぶたと口にはテクスチャは使用せずにポリゴンで造形。

口は今までの半分くらいの大きさにしました。

ここまでカメラが引いても、口のラインが何とか認識できてるので大丈夫でしょう。
後方の銀様オブジェクトまで遠ざかるとさすがにアウトっぽい感じ。
蒼と翠にもこれから移植します。
ちなみに背景オブジェクトはゲームとは関係ありませんw



2007/06/16
最近プログラム書く意欲が沸かない・・・
てことで今週はほぼどっぷりXSI漬け。
ボーンの終端にあるエフェクタを使ったIK操作と、コンストレイントについていろいろ勉強しました。
カスタムパラメータもちょいとだけかじりました。
足首のエフェクタをグローバル固定オブジェクトに拘束すると、腰を移動させても足が滑らなくなったりとか。
これなかなか便利ですわー。モーション作成がかなり楽になる予感。

ただちょっとゲーム素材として使用するには問題があります。
現在のメソギアエンジンでは、XSIから出力したdotXSIデータのIK関連の解析が未完全なので、
IKをFKにプロットしなきゃならんのです。
分かりやすく書くと、
IK処理してアニメーションを付けた所は、関連するボーンの全フレームにキーフレームを打たなきゃならない。
ってことでデータ量が膨大になってしまうんです。
コレに関してはアニメーションエディターのフィットで軽減できますが、範囲指定できないのが辛い。
それから、第一ボーンのプロパティで「チェイン/サブチェインビヘイビア」の項目が「2D」になっていると、
ボーンのロール回転がdotXSIデータに出力されないという現象が判明。ずーっと悩んでました・・・。



ぐだぐだ書きましたが、簡単に足を固定できるメリットはものすごくでかいので、当分この手法でやっていこうと思います。
新しく習得した手法を使って何か作ってみようということで、レッツゴー陰陽師を。
http://www.nicovideo.jp/watch/sm461166
勢いで背景オブジェクトなんかも作ってしまいました。
フェイスのシェイプアニメとかカメラ演出とかが今後の課題かなぁ。



2007/06/10
ニコニコ動画に高画質を維持したままアップするテスト。
今まではDivXエンコードのaviでアップしてましたが、flvだとキレイにアップできるっぽい。
flvでアップしたとしても、ビットレートが600kbpsを上回ると再エンコードを食らって
画質が劣化してしまうようですが、はてさて。
http://www.nicovideo.jp/watch/sm429563
サイズは512x384にリサイズ。コレが最適らしい。
ビットレートを調整して約580kbps。
うまくいきました。

この手法でゲーム中のキャプチャ動画もアップしてみます。
http://www.nicovideo.jp/watch/sm429645
フォンシェーディング。動画だと違和感無いかも。
武器は蒼星石が逆手、翠星石が両手持ち。
攻撃モーションは個別に作らないとダメですね・・・。



2007/06/09
トゥーンとフォンの融合。背景はランバート。



うん。浮いてる。でもコレいいんだ。イニシャルDっぽくしたかったんだヨ。

新造の二体には、今日のこのキャプチャのために
ひとまず待機モーションだけこしらえてみました。



2007/06/07
金属用のシェーダ書いてみました。
基本はフォンシェーディングですが、ちょいと小細工かましてあります。
スペキュラー計算部分で、視線の反射ベクトルと光源ベクトルの内積を計算した後、
0以下にならないように飽和処理をするところを、絶対値計算で済ませます。
そうすると逆側からもスペキュラー成分が作用し、見る角度によってはフレネルっぽい効果が出ます。

せっかくなので剣モデルの装飾部分を作り込みました。
複雑な形状の方がテスト的に都合がいいので。

逆光に近い角度になると、結構イイ感じなグラデーションが出ます。


ハサミとジョウロにも新しいシェーダを適用。


曲線部分がきれいに出るように、更にポリゴンを割ってしまいました。
また処理が重く・・・。


2007/06/01
ジョウロ作成。

テクスチャ苦手なので細部もポリゴンで作ってたら、2136ポリでした。
曲線多いと膨れ上がるなぁ・・・

色が微妙。なんというか・・・薄い?
テクスチャいじる前にひとまず金属用のシェーダ書いてみます。



2007/05/30
ニコニコにアップしてみるテスト。
http://www.nicovideo.jp/watch/sm377588
youtubeもいいけどニコニコのほうが簡単でした。日本語だしね。


----2007/06/01追記----
誤解の無いように書いておきますと、このモーションは今のところゲームとは関係ありません。
(待機中のランダムアクションに入れたりとかでもいいけどw)
あくまでエンベロープウェイトのテスト用なのですよ。

ただまぁ予想以上に好評っぽいので、別カテゴリとして続きは時間があるときに挑戦します。



2007/05/30
髪の毛巻きました。贅沢にポリゴン使って。

モデリングは大体終わり。あとはウェイト調整をちまちまと。

ビューアーにてトゥーンレンダリングの見栄えテスト。

頭から垂れてる布は固定なので、腕がモーションによっては突き抜けてしまいます。
手付けでは調整キビシイのでクロスシミュ実装するまで保留しときます。


プレイヤーモデル強化月間終了。
夏のイベントにはキャラクターセレクト画面を追加して、3種類の中から選べるようにします。
専用モーションは製作時間的に微妙なところ。ひとまず銀様の共有。

ちなみに3体それぞれのポリゴン数はおよそ
水銀燈:11000
蒼星石:12000
翠星石:15000
といったところ。
蒼星石はあれからだいぶ削ったけれどもまだ最適化の余地あり。

来月はプログラム書きに戻ります。
プレイヤーへのダメージが無いとゲームにならんので、そこらへんを優先で。



2007/05/28
途中経過デスゥ。




2007/05/24
ハサミ作成。

装飾部分は最初テクスチャだけで表現してたのだけど、
どうしても凹凸がうまく描けなかったのでポリゴンを刻むことにしました。

金属の表現としてはまだちょっと物足りない。
スペキュラーと環境マップの実装を急がねば。

それにしてもサブディビかけたわけでもないのに2000ポリとか。うーむ・・・。
ウェイト編集の必要が無いものだと、ポリゴン分割することに歯止めが効かないんですよねぇ。



2007/05/22
帽子作成。
銀様シーンで作成していたモーションを流し込んでみるテスト。

トゥーンも良い感じです。ハイライトが消えて柔らかくなりますね。



2007/05/18
ケープのディテールとウェイト調整。

背骨と肩と上腕のボーン影響をうけて変形してます。
しわの形を崩さないようにするのにえらい苦労したー。

これでほぼ完成。あとは帽子とかハサミとかの小物。
ポリゴン数はトータルで銀様の1.5倍ほど。こだわりすぎかも。

内側の体モデルとか見えない部分も全部残してます。
無駄かもしれないけど、今後の拡張とかも考えて。



2007/05/16
袖の作りこみとケープのベースモデル。あともうちょいってところ。

今回は頂点ウェイト編集も並行してやってます。
効率がいいかどうかは微妙。

平ポリには輪郭描画効果が期待できないので
テクスチャで輪郭を作ってしまいました。



2007/05/15
靴、ズボン、ベスト作成。

体は銀様をコピー。
残りは袖とケープ。難しそう。
あと帽子か。



2007/05/06
ふぃー。肩こった。
こんなもんでどうでしょうか。


後頭部がテラカオス。




2007/05/05
途中経過




2007/04/30
ボスのボーンとウエイト付けは先週の内にあらかた終わってたんですが、
「スケルトン -> 対称に複製」
で生成したボーンの部分だけなぜかゲーム上でうまく再生できなくて悩んでました。
それが今日ようやく判明。ニュートラルポーズのY軸回転に-180が入ってた。
対応策を忘れないうちにここにメモしておこ。
「対称に複製したボーンのルートを選択 -> Transform -> ニュートラルポーズの解除」
これでよしと。


ボスの待機、タックル、ジャンプ、ファイアブレスのモーション作成。
それと爪モデル追加。

XSIのプレビューだとpngの半透明表示できてないので鼻が真っ黒・・・

それにしても4足歩行難しいわー。ライオンの動画をいろいろと漁って研究中。
旋回モーションとかは難しいので保留です。
方向転換で足が滑りまくっててもキニシナイ。



2007/04/21
スラッシュアウト1面のボスといえば

ツーヘッドライオン

ですよねー。





・・・ですよねー。



残念ながら、サンクリ配布版にはこいつのモーション間に合いそうにありません。
骨入れてウェイト付ける余裕なかったので、固定配置オブジェクトとしての登場となります。orz
web公開版にはなんとかモーション入れたいなー。



2007/04/17
モーションをテコ入れ中。
ボーン数増えすぎて、正直キツイ。
新規モーションがまだまだ山ほどあるというのに。このままじゃマズいなぁ。
ひとまず既存モーションは今週末のサンクリまでにはなんとかしなきゃ。

気分転換も兼ねて、XSIのプレビュー画面をキャプチャして遊ぶ。
軽く編集してメイキング映像っぽくしてみました。
http://www.youtube.com/watch?v=pxnRfDyX4_E
モーション作成は、指がボーン数多いわりには楽。一方、服や髪が大変。
動きの予測が付かないから、キーフレームを打ちにくい。
ほぼ全フレームにキー打っちゃってる感じ。データ増えすぎてウボァー。

ちなみにIK使ってません。全部FK操作。リグも無し。コンストレイントも無し。(だから足の接地があまい)
もっとXSI勉強しないとだめですね。
このペースだといつまでたってもゲーム完成しないし、アートワークに関してはちょっと手を抜こうかしら・・・。

ところでYoutube画質劣化しすぎ。
元ソースは、400x300、20fps、DivX6.5.1、1-パス、2000kbps。
アップ前はノイズなんてほとんど無いのに。何がいけないのか。
高画質を維持してるものは一体どうやってるんだろう。



2007/04/14
指にボーン入れたら作ろうと思ってたもの。
http://www.youtube.com/watch?v=nLLXe3asLsk
想像以上にモーションのトレースって大変だってことを痛感しました。
5秒作るのに3日くらいかかってます。もう力尽きたorz 続きは気が向いたら。

こんなことやってないでサンクリに向けての作業進めないと。



2007/04/11
眼球、髪、羽、服にボーン仕込みました。
ボーン総数75本!
もうやけくそ。シェーダー1.1は完全に見放しました。

丸1日かけてウェイト調整。
今後のモーション作成がしんどいことになりそうです。


流行ってるっぽいので。YouTubeに動画をアップしてみました。
http://www.youtube.com/watch?v=hkS6sHc-JwQ
新しくボーンを入れた部分の稼動テスト。
ひらひらしてるのは、布シミュではなく手付けです。
とりあえずテストということで。
はやいとこプログラムで自動化しないと、今後のモーション制作で死ねる・・・。


表情付くと違うなぁ。
ゲーム中はもっと引いたカメラなので、変えたところで分からないでしょうね。
イベントシーンでアップになるカットを作るときはいいかもしれません。



2007/04/10
指にボーン入れました。
指1本につき3つのボーン。合計30個。
ゲーム用モデルとしてはちょっと贅沢すぎたかも。


今までのモデルが21ボーンだったので、一気に51ボーンに。
指だけで倍以上です。処理やばい。
また低スペックユーザーの切り離しがksk

内部処理的な話をすると、ボーン1個計算するのに
頂点シェーダの固定レジスタを3つ消費します。
51ボーンだと、51 * 3 = 153個必要になります。
頂点シェーダ1.1が保証する固定レジスタ数は96個
頂点シェーダ2.0が保証する固定レジスタ数は256個
ということで、1.1はアウトさんなわけです。(リファレンスで動作するかもしれないけど)

ビデオカードでいえば、RADEON9200、GeForce4あたりはやべーです。
最低でもRADEON9600、GeForceFX5200以上ないと動きません。
オンボードではIntel945Gあたりはきついかも。

最近売られているデスクトップPCなら、余裕でシェーダー3.0積んでるようなので安心です。
ノートはまだちょっとスペック不足な感じです。



2007/04/07
スプーにもトゥーン。


なかなか良好です。キモさが緩和されたような気が。

しかし右手が・・・
先月末あたりにウェイト調整してて、シンメトリコピーしてしまったんだった。
またグーにするの大変だし、いい加減ボーン入れるべきですね。



2007/04/05
法線方向に拡大して云々で輪郭描画やってみました。

前のテクスチャをサンプルするやり方よりキレイに出ました。
やはり板ポリの服には効果がないですね。両面化するのやだなぁ。どうしよう。

ちなみに輪郭の太さはカメラとの距離によってモデルと同じように変わります。
本来ならば一定にするために拡大値にwを掛けるのですが、カメラを引いたときに
モデルが真っ黒になったり、逆にアップにしたときに輪郭の印象が弱くなったりと、
どうも気に入らない挙動だったのでやめました。


それと、ピクセルシェーダー1.1やっつけで対応してみました。
分かってたけどやっぱり処理重いわ!
うちのサブマシンのRadeon9200(シェーダー1.4)では、銀様表示だけで40fps。
メインのGeforce6800(シェーダー3.0)では300fps付近を維持してるんですが・・・

多分シェーダー2.0以上に対応してるかしてないかが大きな分かれ目でしょうね。
今月のサンクリで出すバージョンは、このクオリティーでゲーム中もぬるぬる動かしますが、
低スペックなマシンを使用されてる方は注意が必要かもしれません。



2007/04/04
マテリアルごとにトゥーンテクスチャを設定できるように改造。
理由はこれ。
osakana.factoryの記事ベッキーの髪の陰は何故ピンクなのか

これを参考に、RGBをHLSに変換して
輝度(Luminance)と彩度(Saturation)の度合いで色相(Hue)をマイナス方向にずらす
ってーの試したけど、どうも違和感がある。黄色っぽい部分はいいのだけど・・・。
各係数の微調整が必要くさい。(単に自分の計算が間違ってるだけかもしれないが)

いやぁ感覚でやってのける絵師って偉大!

というわけで、自動算出は諦めて、肌のマテリアルのみ目算にて変更。
 → 

トゥーン改めベッキーシェーディング。もしくはベキ子シェード。

前に比べて輝度が若干高いかな?でもまぁ悪くないですね。

ベースのテクスチャにトゥーンテクスチャの乗算と、ハイライトテクスチャの加算で
1枚のポリゴン描画は贅沢にも3枚のテクスチャを使用しております。
で、これに加えエッジ用の4枚でしたが、きたないのでエッジ検出を一旦止め。
別案で、法線方向にポリゴンを引き伸ばして前面カリングという方法で、
それなりにキレイにでそうな気がします。重そうだけど。
後でテストしてみよう。



2007/03/31
トゥーンシェード実装。
これよりピクセルシェーダー1.1はサポート外となります。
2.0以上対応のビデオカード買いましょう。


アニメっぽい!
顔の形もだいぶ変えました。しもぶくれ解消。

シェーダーは法線で2階調テクスチャをサンプルしてブレンドする方法。
多分一番メジャーな奴でしょう。

エッジ検出も同じ方法で、端のほうギリギリの所だけ黒にした2階調テクスチャでやってるんですが、
これはあまりキレイに出ません。
エッジ検出のほうは別の方法を模索した方がよさそうです。
ポリゴンが粗いところだと真っ黒になったりするし。
服は裏側をちゃんと作ってやらないと端の法線がちゃんと出ないなぁ・・・。



2007/03/24
服にもテクスチャを貼り付けました。

フォトショで素材作成。

謎の模様含む。

ヘッドドレスのフリルとかスカートの十字架とか、今までアホみたいにポリゴンで作ってたのを削除。
しわをだすために割りまくってたポリゴンもほとんどマージしました。
でもその分某個所にポリゴン割いたので、トータルではあんまり変わってない。・・・むしろ増えた。


せっかく貼ったテクスチャも、ここまで寄らないと分からないというのが残念。




2007/03/19
dotXSIデータのバージョンを、3.0から3.6に変更。
読み込み部分とバイナリ変換まわりの修正。
これで面倒なマテリアルコンバータの必要が無くなった!!

そのかわり、出力したデータをSIで読み込んで再編集が出来なくなった。(読めることは読めるが、テクスチャが壊れる。)
どうもSI_ShapeとSI_TriangleListの中で、"TEX_COORD_UV"付近のフォーマットが変わったらしく、
自分で出力したにもかかわらず正常に読めないくさい。アホかと。

簡易ビューアーを自作したことにより、SIでは出力オンリーでも問題なくなったため、
使用するdotXSIデータのバージョンの切り替えを決行。
ついでにそのビューアーにモーション再生機能を追加。



システム関係がだいたい一段落したので、テクスチャの貼り方を勉強してみようかと。

まずはフォトショップでテクスチャ素材をカキカキ。髪とか目とか。
髪は毛先が半透明になるようにアルファを調整。


んで次に、SI上でのテクスチャUV編集。
複雑そうなので今まで敬遠してたけれども、慣れればメタセコよりも扱いやすい。
UV投影方法の種類が豊富。頂点のマージと切り離しも割と楽。

ちなみに眼球はハイライトを片側に寄せるため、シンメトリではない。

そしてビューアーでの実行結果

歪みは後で調整するとして・・・。
毛先がテクスチャのアルファで透明になるのはいいけど、描画順に気を付けないとなぁー



2007/03/12
DirectXのフォント機能があんまりにも重たいので、
独自のテキスト描画システムを実装。
ただしアスキーコード 32(0x20) 〜 126(0x7e) のみ。
フレームレート等のデバッグ文字列出力は、これに置き換えます。

タイトルロゴを修正。オプション画面用の素材作成。

2Dデザインに関しては、どうしても素人っぽさが拭えない。
いまさら勉強する気も起きないので、こんなもんで我慢するしかないんだけどー。
シンプルイズベスト、ですよ。多分。おそらく。
・・・お金があったらプロにでもお願いしたいですね。

んで、オプション画面はこんな感じになりました。

こういうの難しくはないのだけれど、割とめんどくさくて実装に時間掛かるから
いつも後回しにしちゃうんですよね。そろそろ作っとかないと。


・・・あー、難しくないとか言っといて、線形に減衰する音量計算で半日くらい悩んでたんだorz
おかげさまでBGMのクロスフェードなんかも出来るようになりました。



2007/03/05
UVスクロール実装。
頂点シェーダ内でUVをちょいとずらしてやるだけの簡単なもの。
マテリアルにUVスクロール属性を設置。
スクロールスピードも設定可能。
movie001.wmv
マップの空や水面にも有効活用出来そうです。



2007/03/04
コリジョンを形成するポリゴン1つ1つに属性を持たせられるようにしました。
コリジョンデータのマテリアル名を見て、特定の文字列があるかどうかで判断しています。
分かりやすいようにビューアーで色を変えて表示。

青い部分は透明属性を追加したもの。
マテリアル名に"_Alpha"という文字列が含まれていた場合に適用します。
この部分は、プレイヤーやエネミーは通れないが、カメラはすり抜けるという処理になります。



2007/03/03
モデル・モーション・コリジョンのdotXSIデータを、
テキスト形式から独自バイナリ形式にすることにしました。

1週間くらいかけてインポート・エキスポートの実装、変換用のツールの作成。
おかげでロード時間がほぼ無くなりました!!
データサイズも圧縮されてなかなか良好です。

以下は変換用のツール画面。
簡易ビューアー機能も付けてみました。

雑魚mobプロトタイプ




2007/02/26
領域進入系トリガーの可視化

これもデバッグのため。
四角形はトライアングルストリップで2個、
円形はトライアングルファンで16個の三角形を描画しています。

以下はスクリプトの一部の例です。


	// 円領域進入トリガー追加(名前, 中心x,y,z, 半径, 発動イベント)
	AppendTriggerEnterCircle("EndTrg", -31.5, 2.1, -59.5, 1.4, ClearEvent)


橋を渡ってる途中、前方にエネミーを出すなんていうイベントは、

	// 四角領域進入トリガー追加(名前, 中心x,y,z, 幅x,z, Y軸回転角度, 発動イベント)
	AppendTriggerEnterSquare("sq02", 16.5, -3.2, -35.0, 2.5, 5.0, 0, AppendEnemy03)
これを踏むと、AppendEnemy03というイベントグループを実行するという寸法です。

AppendEnemy03
{
	// エネミー追加(名前, 種類, X, Y, Z, 向き)
	CreateEnemy("Spoo13", SPOO, 19.0, -3.0, -35.0, -90)
	CreateEnemy("Spoo14", SPOO, 19.0, -3.0, -34.0, -90)
}

とまぁこんな感じで、デバッグがだいぶやりやすくなりました。
まだ座標の打ち込みとかが面倒だったりしますが・・・。
やっぱりエディターほしいなぁ。



2007/02/25
スクリプト回りの実装

プレイヤーがこの場所にきたらこの敵を出して、倒したら次はここに・・・

なーんてのを今まではハードコーディングしてたんですが、
そういうの全部外に出すことにしました。
現在のゲームシーケンスに必要な処理を洗い出して、
簡単な独自仕様のスクリプト命令に置き換えました。

以下はそのプロトタイプ。
コメントを書けるようにしてあるので、見ただけで大体どんな動きかは分かると思います。
Init
{
	// マップ生成(名前, モデルデータ, コリジョンデータ)
	CreateMap("Map1", "floor.xsi", "collision.xsi")

	// ゲート生成(名前, モデルデータ, コリジョンデータ, X, Y, Z, 向き)
	CreateGate("Bridge1", "Bridge.xsi", "Bridge_collision.xsi", 10.5f, -4.f, -35.f, 90)
	CreateGate("Bridge2", "Bridge.xsi", "Bridge_collision.xsi", -28.5f, 2.0f, -73.f, 0)

	// プレイヤー発生位置設定(名前, X, Y, Z, 向き)
	SetGeneratePoint("Player01",  0.0, 2.0, 0.0, 180)
	SetGeneratePoint("Player02", -0.5, 2.0, 0.5, 180)
	SetGeneratePoint("Player03", -1.0, 2.0, 1.0, 180)
	SetGeneratePoint("Player04", -1.5, 2.0, 1.5, 180)

	// 初回エネミー発生イベント
	// 四角領域進入トリガー追加(名前, 中心x,y,z, 幅x,z, Y軸回転角度, 発動イベント)
	AppendTriggerEnterSquare("sq01", 2.0, 0.1, -8.0, 24.0, 4.0, 0, AppendEnemy01)

	// クリアイベント
	// 円領域進入トリガー追加(名前, 中心x,y,z, 半径, 発動イベント)
	AppendTriggerEnterCircle("EndTrg", -31.5, 2.1, -59.5, 1.4, ClearEvent)

	// BGM再生
	PlayBGM("daichi.wav")
}

AppendEnemy01
{
	// エネミー追加(名前, 種類, X, Y, Z, 向き)
	CreateEnemy("Spoo01", SPOO,  0.0, 1.0, -17.0, 0)
	CreateEnemy("Spoo02", SPOO, -1.0, 1.0, -17.0, 0)
	CreateEnemy("Spoo03", SPOO, -2.0, 1.0, -17.0, 0)
	CreateEnemy("Spoo04", SPOO, -3.0, 1.0, -17.0, 0)

	// 殲滅トリガー追加(名前, 発動イベント)
	AppendTriggerAnnihilation("an01", AppendEnemy02)
}

AppendEnemy02
{
	// エネミー追加(名前, 種類, X, Y, Z, 向き)
	CreateEnemy("Spoo05", SPOO, 2.0, -2.0, -35.0, 0)
	CreateEnemy("Spoo06", SPOO, 2.5, -2.0, -34.0, 0)
	CreateEnemy("Spoo07", SPOO, 3.0, -2.0, -35.0, 0)
	CreateEnemy("Spoo08", SPOO, 3.5, -2.0, -34.0, 0)
	CreateEnemy("Spoo09", SPOO, 4.0, -2.0, -35.0, 0)
	CreateEnemy("Spoo10", SPOO, 4.5, -2.0, -34.0, 0)
	CreateEnemy("Spoo11", SPOO, 5.0, -2.0, -35.0, 0)
	CreateEnemy("Spoo12", SPOO, 5.5, -2.0, -34.0, 0)

	// 殲滅トリガー追加(名前, 発動イベント)
	AppendTriggerAnnihilation("an02", UnlockGate01)
}

UnlockGate01
{
	// ゲートロック解除
	Unlock("Bridge1")
	Unlock("Bridge2")
}

ClearEvent
{
	// ここにクリアイベントを記述

	// エリア終了処理
	ReleaseArea()
}
フォーマットはほぼこれで決まり。
パーサーがようやく完成し、今のところ問題無くスクリプト通りにゲームが動いています。

だらだらと一週間くらい掛かったような気が・・・。
ベースは出来たので、後は必要になったら命令を増やしていく感じ。
こっからは楽です。
ゲームのバランスをちょっと弄る度にコンパイルとか、もうしなくて済むわ!

贅沢を言えば、エネミーやトリガー等を視覚的に編集できるエディターを作って、
そっからこのスクリプトを吐き出すってーのが最高なのです。
でもそれは多分ゲーム作る以上に大変だと思うのです・・・。



2007/02/14
キャラクターや配置オブジェクト等のマップ以外のものは、
球・立方体・円柱といったプリミティブな形状の
コリジョンモデルで処理速度を稼ぎます。

今のところ球しかないのですが、これも例によって可視化。
面は省いてワイヤーフレームのみにしました。


実はプレイヤーって上半身にコリジョン無かったりします。


かなりアバウトなのがバレバレだわー。


もちろんこれも開発中の限定機能なので、リリース時には消してしまいます。



2007/02/13
某氏の要望により、コリジョンモデルの可視化。





ファンクションキーにON/OFF切り替え機能を割り当てました。
リリースコンパイル時はゴッソリ削除しちゃいますが・・・。

ゲーム自体には関係無いものでも、デバッグ中なんかはこういうの重宝するんです。



2007/02/09
夏コミ参加申し込み書投函してきました。
今回は受かりますように・・・。

使い勝手の悪かったマテリアルコンバータの見直し。
xsiファイルのD&D対応。処理速度改善等。
地味に効率アップかしら。



2007/01/16
夏コミ参加申し込み書作成しました。(投函は来月6日以降)

サークルカットは、ゲームのキャプチャ画像を紙に出力して貼り付け。
前回は青ペンで記入してしまったために、某スタッフさん他数名から囲まれて罵られるという
非常に貴重な経験をさせていただきました。本当にありがとうございました。

夏までにはキャラやマップの充実はもちろん、ネットワーク対応も考えてます。
ボスとかアイテムとかクエストとか、とにかくやりたいこといっぱい。
風呂敷広げすぎて破綻しないように気を付けます。







[Back]