Game Graphic Text Link Blog Index
2009/06/30



タユタマから鵺を追加。

2009/06/29

DLL要らずの試作品

基本的にDLLが入っていなくても動くはず。上手くいけば、姉妹将棋用のグリッドが表示されるはず。

後、エンターキーでフルスクリーン化が出来るはず。

2009/06/28







落書き。やはり筋肉は難しい。

2009/06/27



タユタマから河合アメリを追加。

2009/06/26



タユタマから如月美冬を追加。

2009/06/25

プログラムが問題なく完成した!クリーンインストールしたXPで問題なく起動した!

今月の最後にエンジンのテスト版を公開できるかも。今の状況じゃ公開してもあまり意味がないし。

来月からは一気にゲーム本編をプログラムする作業に移る予定。



2009/06/24

zlibとlibpngを使ったコードを今のプログラムにコピーしてコンパイル。問題なくコンパイルできたのは助かった。

画像をロードしようと思ったら落ちた。なんか最近はこればかりのような気がする。

原因を調べてみると、24 bit png未対応だった。32 bit pngは問題なくロードできるので、そっちに切り替えてみた。

また落ちた。調べた結果、png_read_image内のmemcpyで落ちていた。/MTで作ったらからメモリの受け渡し問題にでも遭遇しているのかな、と思って/MDでビルドしてみた。

またまた落ちた。ここで挫折しかけるも、memcpyの問題ではない可能性も出てきた。そこで問題をおこしそうなD3Dの関数を調べてみた。

そしたらなんと、LockRectが失敗していることが判明。書き込み不可なところにpng_read_imageで何かを書き込もうとしたら落ちるのは仕方がない。

LockRectが失敗している理由を調べると、D3DPOOL_DEFAULTではLockRectが使えないと判明。

そこでD3DPOOL_SYSTEMMEMに切り替えたら問題なく動作した。後はそのテクスチャをUpdateTextureでD3DPOOL_SYSTEMMEMからD3DPOOL_DEFAULTのテクスチャにコピー。見事、画面に画像が出るようになった。

ついでにpng_set_fillerで24 bit pngも32 bit pngとして扱えるようにしておいた。

後は、/MTで全て作り直して動けば成功。

2009/06/23

zlibとlibpngを/MTでコンパイルしてみた。これをゲームに組み込んで、なおかつ画像が表示され、さらにD3DXが入っていないマシンで起動したら成功。

クリアしないといけない問題が多い気がするけど、Card Jankers Sで一回クリアした問題。なんとかなるはず。

2009/06/22



タユタマから小鳥遊ゆみなを追加。

2009/06/21

ゲーム制作をしていると、たまに基本的なことがしっかり出来ているか忘れることがある。ウィンドゥからフルスクリーン化は一般的な処理だけど、裏では色々厄介な処理が必要だったりする。最初の方では出来ていたけど、スプライトを追加してからテストしていなかった。

結果、エラーとともに落ちた。数歩前進したと思ったら実は泥沼にはまっていたような感じ。

以前動いていたのがせめてもの救い。以前の状態に戻したらエラーが無くなった。後はスプライトの何処で落ちているか調べるだけ。

色々調べた結果、スプライト初期化の時に落ちている可能性が高いと分った。それを変更することでウィンドゥからフルスクリーン化で落ちる問題は解決した。

しかし、今度は初期化ルーチンの一部が不正を。基礎を固めるのは大事だけど、この分では何時になったらゲームが完成するのだろうか。

-

拍手ありがとうx2。

2009/06/20



タユタマから泉戸ましろを追加。

-

オリキャラドット絵期待してます

了解です。

2009/06/19

姉妹将棋

C++版制作開始。

まずはルールの見直しからスタート。基本的にはこれで良いと思っている。「騎」を2マス動けるようにしたら面白いかな、と思ったり。

後は「爆」を橋の出口に置けるようにしたらどうかとも考えた。しかし、4つの出口がふさがれたらそれでゲームがクリア不可能になる。自軍の「爆」に載って、自爆を可能にするのも考えたけど、それだと待ち戦法が圧倒的に有利になる。最後の案として「飛」が「爆」に勝てるようにしようとも考えたけど、それだとゲームの肝であるトライアングルが壊れてしまう。

結果、特にルール変更なしで継続、となった。

今月末にはスクリーンショットをいくつか公開したい。ベータ版は来月の第1週目あたりを目標にがんばる予定。

2009/06/18



姉妹将棋の駒テストその1。前回のよりも少し立体的に作っている。木目を廃止して、もっとモダンなデザインを目指したいけど、そう簡単にはいかないだろう。

-

ドット絵でオリキャラはやらないんですか?ピコばとるの敵可愛かったですよ

オリジナルは来月か再来月あたりを予定しています。ネタが見つからないなら予定を繰り上げる可能性もあります。

2009/06/17



Modoテストの続き。一応完成。制作課程を学ぶのがメインだったから、これはこれで終了にしようと考えている。ベルトや上半身と下半身のリンク等改善できる場所は多いけど。

次回は新しい人型モデルの作成に移る予定。Modo 401が今週にもリリースらしいし、新型テストも兼ねて制作する予定。

2009/06/16

一休み

D3DXの件も片付いたから次がゲーム本編の制作に移ることにしよう。心残りなのは制作中に書いた文章がかなり下手だということ。個人ノート+制作後でハイになっていることを差し引いてももう少し読める文章を書きたい。

ドット絵は咲-SAKI-が終わって、次のシリーズ探し。けいおん!と咲-SAKI-で追加で欲しい人がいたら拍手で教えて。

ここ2、3日は3Dをやるとしよう。なんとかモデリング部分は予定通り完成したい。

2009/06/15

D3DXの続き。そして一応終わり。

アンチエイリアスされたフォントを画像に出してみた、どういう形になっているか調べてみた。文字が白、背景が黒、アンチがグレー。

グレーの値を透過値として扱えばある程度上手くいくのではと思い、実行してみた。

黒じゃないピクセルのRGBを白にして、Aを元RGB色に設定。

最初は失敗。画像も画面も駄目。どうしてかと首をかしげていたら、情けない失敗に気づいた。RGBを白にしてからAの値を指定していた。当然Aの値も白になる。

逆にしてみたら、画像は問題なく綺麗なアンチエイリアスがかかったフォントが出来た。画面は相変わらず。

こっちはDirextXのレンダー設定の問題だと思い、少し変えてみた。すぐにアンチエイリアスが表示されるようになった。

これにて本当の完成。

-

拍手ありがとうx2。

2009/06/14



咲-SAKI-から加治木ゆみを追加。

-

拍手ありがとう。

2009/06/13

D3DXの続き。

昨日透明画像の問題をクリア可能と書いたけど、そのわけまでは言及しなかった。勝算はあったけど、確証はなかった。

何故クリア可能かと思ったかというと、他の画像アプリで同じことをやっているから。画像アプリではテキストを画像に埋め込むのは日常茶飯事。私のプログラムでも出来ないわけがない。

ビットマップをメモリ内で作って、DirectXのテクスチャにコピーするレアな行動とは根本的に違う。難易度は低いと踏んだとおり、それほど苦労はしなかった。

色を指定するとき、COLORREFを使うけど、これはRGB限定。アルファを指定できない。COLORREFは元々DWORDだから直接アルファ値を0xff000000みたいな感じで指定しようと思ったけど、どうもGDIのFillRectやTextOut関数ではアルファ値を無視して書き込むみたいだ。

GDIが使えない。それどころか32bit pngでは非透過にしようと思っても透過になってしまう。最初からD3DFMT_X8R8G8B8を指定すれば大丈夫だけど、これはアルファが無いフォーマットだから使えない。

そこでどうするか。GDIによるTextOut関数も外す理由が無い。D3DFMT_A8R8G8B8は外せない。それなら、元データをこの2つの間に改変すれば良いのでは?

最近はあまりやらないけど、DirectX 7時代にはビットマップの生データを一ピクセルずつ弄って、それをテクスチャにコピーとかするのが日常茶飯事だった。

使用しているビットマップは背景が透明な黒、フォントが透明な白。これを非透明な白に変えないといけない。なお、フォントが白なのは画面表示時に色を変更しやすくするため。白文字+赤フィルタで赤文字なんてのが簡単に出来る。

ビットマップを一ピクセルずつ調べて、白だったらそのアルファの値を255にセット。実に簡単だった。

これでテキスト表示はD3DXに頼らず出来るようになった。FPSも2000弱を維持している。

しかし、これで完全に出来た訳ではない。アンチエイリアス非対応なのが一番の問題。なんとか上手い手を考えないといけない。もう一つが一ピクセルずつ調べているところ。アップデータされた部分だけ確認することに変更した方が効率的。

内部処理ばかりに時間をかけるわけにはいかないから、次の次あたりからはゲーム本編を作る間に改造する予定。

2009/06/12

D3DXの続き。

フォントを画面上に表示させることには成功した。しかし、アルファを切った場合限定。恐れていたとおり、作られたビットマップは透明のため、何も表示されないという問題があった。

やっかいな問題だけど、なんとかクリアできると思っている。ここまで来ることの大変さに比べればたいしたことはないだろう。

2009/06/11



咲-SAKI-から吉留未春を追加。

2009/06/10



咲-SAKI-から池田華菜を追加。

2009/06/09





前からだけはどうかと思い、斜めから。パッと見た感じ、男の方が出来がよいような感じがする。

-

拍手ありがとう。

2009/06/08



咲-SAKI-から福路美穂子を追加。

-

拍手ありがとう。

2009/06/07



咲-SAKI-から天江衣を追加。

2009/06/06





女の子ばかり書いていてもまずいから、たまには男を書いてみる。

2009/06/05





前回の横顔が下手すぎたので、今回はもう少しましになるように書いてみた。まだまだだな。

2009/06/04

D3DXの続き。

昨日書いたうち、以下のことは問題なく出来た。

1.ビットマップをメモリ内で作る。
2.テキストをビットマップに書く。
3.ビットマップをテクスチャにコピー。

残る問題は4番の「スプライトと同じように座標を弄って表示」のみ。

ここまで順風満々かというと、そうでも無い。今のところ2つ程懸念材料がある。それをクリアしないと完成は遠いと見るべきだろう。

最初の懸念材料はテクスチャにコピーしたビットマップ。これを確認のためにpngで保存した。プレビューでは見られるのに、ファイルを開ければ空っぽ。bmpで保存すると問題なく見られる。

ここで一つの仮説を立てることが出来る。ビットマップに書いたフォントが実は色つきの透明だということ。最初はフォントを書けば透明度+RGB色を書くと思っていたけど、もしかして、RGB色のみを書いて、透明度は下のビットマップ依存なのかもしれない。

そうなると、ビットマップそのものをさらに弄らないといけなくなる。そうだとしたら、実にやっかいな問題だ。

もう一つの懸念はフォントの幅。一番太いフォントの幅で計算しているけど、これだと拡大表示する際に綺麗な数値が出ないかもしれない。そして、それが1ピクセルほどのずれをおこし、隣のフォントの一部も一緒に描画することになるかもしれない。

これは実際画面で確認しないと何とも言えない。問題が出るようなら、フォントの幅を大きく取れば良いだけ。

2009/06/03

D3DXを使わないスプライト表示は成功した。そうなると、次はフォントになる。以前考えていたやり方はスプライトが変わったこともあり、全部没となった。

とはいえ、それほど大きく変わるわけではないけど。以下の手順で上手くいくのではないかと考えている。

1.ビットマップをメモリ内で作る。
2.テキストをビットマップに書く。
3.ビットマップをテクスチャにコピー。
4.スプライトと同じように座標を弄って表示。

1と4は簡単。2もそれそのものは簡単。3もビットマップからテクスチャにコピーしたことはあるから、それを流用できるはず。

2は見た目以上に鬼門。英数字なら100スプライト分のスペースを確保すればよい。文字の大きさが13x13なら130x130の画像を用意すれば必要な文字が全部入る。

しかし、日本語ではそうはいかない。常用漢字だけで2000弱。45x45スプライトあればなんとかなるか?文字のサイズが13x13とすると585x585の画像が必要になる。

ただ、それもabc...のように順番にスプライト化出来る保証が無い。ユニコードのコードチャートを確認しないと確かなことは言えないけど。

そうなると、いっそ自分のアルファベットを作った方が楽かも。実際、メグチルの中期バージョンで似たことをやったし。ただ、あれはビットマップフォントを画像として保存して、それを読み込んでいたから、今回のメモリ内のとはちょっと違う。

「あの日の夜」という文章があるとしよう。画像そのものは空っぽ。そうなると「あ:0」、「の:1」、「日:2」、「夜:3」という風に内部で記憶する。画像を開ければ、「あの日夜」と表示される。重複があれば書き込まず、それ以外なら末尾に追加。

理論上これで上手くいくはず。しかし、DirectXが相手では理論通りに行ったためしがない。今月の終わりまでには結果が出ているはず。

2009/06/02

ドット絵セクションにけいおん!ピコばとるぅ咲-SAKI-のドット絵を追加。

この2ヶ月のドット絵はこれで追加したことになる。

2009/06/01

毎度おなじみの月初め反省会。

先月の目標と結果


目標結果
ドット絵1010
落書き
フリクラ5終了終了
3DCG


ドット絵はけいおん!が終わって咲-SAKI-を開始。今月もこのまま咲-SAKI-で行く予定。

落書きは無理矢理数を合わせた感じ。もうちょっと力を入れないと。3DCGの方は次第点。今月モデリングが完成すれば万事OKということにしておきたい。

フリクラは大きな問題も無く終了。

今月の目標

1.ドット絵10枚。
2.落書き3枚。
3.新作ゲーム開始。
4.3DCGモデリング完成。

今月のドット絵は咲-SAKI-で終わるかな?違うシリーズは検討中。ドット絵セクションの更新もしないといけない。

新作ゲームはリメイクの予定。ピコばとるぅをやる前に姉妹将棋でシステム周りのテストをするかもしれない。

3DCGは今作っているモデルを完成させるのが当面の目標。テクスチャは次のModoが出るまで様子見。



意見や拍手があればよろしく!

201210
201208
201206
201205
201204
201203
201202
201201
201112
201012
201011
201010
201009
201008
201007
201006
201005
201004
201003
201002
201001
200912
200911
200910
200909
200908
200907
200906
200905
200904
200903
200902
200901
200812
200811
200810
200809
200808
200807
200806
200805
200804
200803
200802
200801
200712
200711
200710
200709
200708
200707
200706
200705
200704
200703
200702
200701
200612
200611
200610
200609
200608
200607
200606
200605
200604
200603
200602
200601
200512