トップページ⇒tech
365コメント112KB

ゲームプログラミング相談室[3]

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
ゲームプログラム技術についての質問スレッド。
駄スレ立てる前にココで聞きましょう。

■旧スレ
○パート1
http://piza.2ch.net/tech/kako/969/969984472.html
○パート2
http://piza2.2ch.net/test/read.cgi/tech/985540361

■関連スレ
○鬱だ氏のう DirectX 2 (DirectXに関する話題全般)
http://piza2.2ch.net/test/read.cgi/tech/997101556
○初心者はここで聞け!DirectX相談室 (おもに初級用らしい)
http://piza2.2ch.net/test/read.cgi/tech/991795568
0002デフォルトの名無しさんNGNG

         ,  _ ノ)
      γ∞γ~  \
     曰 |  / 从从) )
     | | ヽ | | l  l |     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ノ__丶从ハ~ ーノ___  <  さくら!2番ゲットなんかしないもォォォォン!!
     ||ロリ||/)\>< | ¢、 \______________________
  _ ||吟||/  8 / ̄丶.)
  \ ||醸||  . ̄ ̄ ̄ ̄\
  ||\`~~´  (<二:彡) \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
   .  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
0003デフォルトの名無しさんNGNG
>>1
おつかれさん!
0004デフォルトの名無しさんNGNG

   | \
   |Д`;;) ダメダ、、、・・・・モウゲ・・・ンカッ・・・・イ・・ダ
   |⊂
   |


     ♪  Å
   ♪   / \   ランタ タン
      ヽ(;оД`)ノ   ランタ タン
         (  へ)    ランタ ランタ
          く     タン


   ♪    Å
     ♪ / \   ピカァ トコロント!
      ヽ( оДо)ノ  ティッカム!!
         (へ  )    キュピ ティチ
             >    ピカァ!
0005デフォルトの名無しさんNGNG
http://piza2.2ch.net/test/read.cgi/tech/1002290332/
0006早起きさんNGNG
で、結局 GetGlyphOutline でのグレイスケールビットマップは、TTフォントなら常に取得できると考えていいのか?
オーバーサンプリングなんてやってられないのだが。
00076NGNG
グレイスケールっつーかモノスケールな。すまん。
0008デフォルトの名無しさんNGNG
>6
失敗する環境は存在するラシイ
素直に大きくGGO_BITMAPして縮小するか
オプション画面でも設けて失敗する環境ではGGO_BITMAPで取得するようにするべし

某プロばっかりのゲームプログラマーのMLでは無印Win95とNT,2000の特定環境で
不都合が出る場合があるのでGGO_GRAYn_BITMAPは使用してはいけない
GGO_BITMAPに関しては環境依存は存在しないという結論になってた

取り合えずこの程度のことを面倒くさがる奴はゲームプログラマーには向いてないので
趣味ならともかくプロなら転職をお奨めする
0009デフォルトの名無しさんNGNG
>某プロばっかりのゲームプログラマーのML
どこのこと?
0010デフォルトの名無しさんNGNG
>>8
どう失敗するのかおしえてくれ

それと
>GGO_BITMAPに関しては環境依存は存在しないという結論になってた
本気でそういうこといってるならばちょっとヤバい
http://support.microsoft.com/support/kb/articles/Q159/4/27.asp
0011デフォルトの名無しさんNGNG
>>8
>無印Win95とNT,2000の特定環境
それおしえてくれると助かるんだが
0012デフォルトの名無しさんNGNG
>>6

正直、
『不具合出る条件の特定作業が面倒くさい』尚且つ『不具合出したくない』ならば
Non-Antialiasedでやって。そんなん我慢できないよ嫌じゃ嫌じゃ絶対嫌じゃ
ってんなら素直にベジェの曲線情報からイメージ生成したほうが早えーだろ。

             と言いたい。
00138NGNG
>9
エロゲプログラマ御用達のところ

>10
真っ黒が返ってくるってのだったかな?>無印Win95
NT,2000での不都合に関してはあるらしいってんで詳細は書かれてないね>過去ログ見ると

おっと(・・)
NTでは依存発生するのか、いいこと知った

>11
明確な判断材料がないってんじゃなかったかなぁ
0014デフォルトの名無しさんNGNG
もう無印Win95なんて切り捨てていいんじゃない?
正直、あまり古い環境の奴を甘やかすのは好きじゃない。

ところで、GGO_GRAYn_BITMAPのパフォーマンスってどうなのかな?
誰か自前処理と比較してみた人いない?
「使い物にならないほど遅い」「信じられないほど速い」等の話があれば聞きたい。

俺が使うとしたら、DirectX Graphicsの文字描画ルーチン用だから、
GGO_GRAYn_BITMAPが使えないような環境は迷わず切り捨てだな。
まぁ、DirectX Graphics使うんなら1/2までの縮小はアクセラレータで処理できるから
無理にGGO_GRAYn_BITMAP使わなくてもいいんだけどね。ただ、それだとテクスチャ
サイズの制限が痛い。
Voodooも切り捨てていいのかな?
0015デフォルトの名無しさんNGNG
>>14
>もう無印Win95なんて切り捨てていいんじゃない?
>正直、あまり古い環境の奴を甘やかすのは好きじゃない。
>Voodooも切り捨てていいのかな?

趣味ならさ、そんなん好きなようにやっちゃっていいよ。
お友達同士でVoodoo持ってる人間がいないと分かればさ、
そこでスパっと切っちゃって全然大丈夫だろ?
それで済むならそうしちゃえ。
0016デフォルトの名無しさんNGNG
>>15
なんかパックマンのピンキーみたいに陰険なカキコだな。
0017デフォルトの名無しさんNGNG
>>16
え、そう?
うがった読み方すれば確かに読めるとは思うけど・・・・。
でも、ここ相談室だから趣味でやってるほうが普通だし
漏れもその一人だし何とも感じなかった。

むしろ、あんま細かい互換性の確保にエネルギ注ぐより
完成にこぎつける方向で頑張ったほうが有意義だと漏れは思うYO

相談室的にいけば、だけどね
001817NGNG
× うがった読み方すれば確かに読めるとは思うけど・・・・。
○ うがった読み方すれば確かにそんな感じに読めるとは思うけど・・・・。
0019デフォルトの名無しさんNGNG
>DirectX Graphics使うんなら1/2までの縮小はアクセラレータで処理できるから

これ、何の事なのかうまく読み取れんかったんだけど、
要するにテクスチャの縮小フィルタオプションでバイリニアフィルタリングを指定して
1/2縮小描画して2xサンプリングのAnti〜な出力を得るとかその辺の話だよね。

もしそうだとしたら、自前の2xサンプリングルーチンを使う場合と同様に、
例えば、ゲーム立ち上げ時とか必要なシーンの直前とか用途に合わせて
適当なタイミングでAnti〜な出力結果をまとめて生成して文字コードによる
UV参照テーブル作るような、ごく普通の使い方でいけばいい。

そうすれば、Voodooのテクスチャ寸法の制限(256×256)で生ずる手間は
他の方法と同様だし、ゲーム中文字描画が必要なシーンでのメモリ消費量も
同じになる。

というか、“あえて互換性とかを気にするんだとしたら”
この方法の場合、縮小フィルタでバイリニアが使えるかどうかとか
3Dカードのほうにも注意する必要があるし、もちろん代替処理が要る。
だから特別にメリットがあるというわけでもない。
0020デフォルトの名無しさんNGNG
古い環境を切り捨てるも、古い環境をフルに使うも、
好きにすれば良いと思うよ。誰も強制はしない。
0021デフォルトの名無しさんNGNG
そうだな。
0022_NGNG
age
0023デフォルトの名無しさんNGNG
サービスパックとIE4ぐらいは載ってて欲しいよね。
0024デフォルトの名無しさんNGNG
今、あえてNT4でゲームする奴がいるとしたら
多分職場のマシンでやってんだろうなぁ。たまらん。
0025デフォルトの名無しさんNGNG
>NT4でゲームする奴

うぇ〜ん。そんな大人、修正してやる。
00266NGNG
>8
なにやら機嫌を損ねさせてしまったようだな。正直、悪かった。
ちなみにオーバーサンプリングやってられんってのは、実行時コストの話。

ま、それほど致命的な問題でもなさそうなので、GGO_GRAYn_BITMAPでいっとくわ。
趣味プログラムだしなー。
不具合が無視できないようなら、アドバイス通り、オーバーサンプリングに切り替えるよ。キャッシングしとけばコストも抑えられるかもしれんしな。
0027デフォルトの名無しさんNGNG
>>26
>キャッシングしとけばコストも抑えられるかもしれんしな。
あ、それやっておいたほうがいいよ。
00288NGNG
>26
つーかここは失礼アマチュアの人のが多いんだね……
雰囲気読めてなかったよゴメン


キャッシングに関してはGetGlyphOutline()を使用しているといってる人
2人共に独自の方法でキャッシュしてるとのたまってたよ>そのMLでは

GetGlyphOutline()自体が比較的重いAPIだから
根本的に時間にクリティカルな処理を行うのには向かないと思う
画面中に一度に表示する文字数によっては
どの処理よりもボトルネックになる可能性があるよ
0029デフォルトの名無しさんNGNG
3Dゲーになると切り捨てるも何も・・・なあ・・・
0030デフォルトの名無しさんNGNG
>>29
ウダウダ言わんと好きなようにやれ。
0031デフォルトの名無しさんNGNG
そろそろ製品でもvoodooを捨てる傾向が見え始めているよ。
voodooといっても256*256テクスチャ制限のあるやつね(3以前)
003214NGNG
>>19
日本語の文字全部はテクスチャに入りきらないでしょう。
英数字だけならもちろん静的データとして持つよ。(そもそもGetGlyphOutlineなんて使わない)

主な使い道はチャットなんで、事前に用意するのはまず無理です。
でも、チャットにアンチエイリアスいらないか。
003319NGNG
>>14

>日本語の文字全部はテクスチャに入りきらないでしょう。
>英数字だけならもちろん静的データとして持つよ。(そもそもGetGlyphOutlineなんて使わない)

ちょっと待った。何故そんなトホホな話になるんだ。
うーん、そういう話は何処にも書いていないんだが。
スマンけど、なんか会話がスレ違ってきちまってる気がする。

整理された有益な会話を望むレスならば、まずは会話の流れとして

>要するにテクスチャの縮小フィルタオプションでバイリニアフィルタリングを指定して
>1/2縮小描画して2xサンプリングのAnti〜な出力を得るとかその辺の話だよね。

という確認部分について返事があると嬉しいんだが。
正直、この前提が当たってるのかどうかも分からんと
返答に窮してしまうよ。

よろしく頼むな。
00346NGNG
>28 への質問ではないが、GetGlyphOutline() は重いのかな?
TextOut() を始めとする GDI のテキスト描画 API は、内部でこいつもしくは
相当なルーチンを呼んでいると思い込んでたよ。
つまり Windows でテキスト描画するのに最も高速なのは、
GetGlyphOutline() で独自にグリフを取得して、DC 絡みの調整処理を飛ばして
自力で描画する方法だと思ってた。
紳士プロフェッショナルな方がおられたら、教えていただけるとありがたい。
0035デフォルトの名無しさんNGNG
TextOut()とかと比べりゃ圧倒的に軽いけど
他の画面描画周りの演算と比べるとGetGlyphOutline()は重いってだけじゃない?
なのでテキスト描画のみに限れば6は正しいよ

ただキャッシングした場合と毎回GetGlyphOutline()するのを比べると
圧倒的にキャッシングが勝つってだけ
キャッシュが一切期待できないようなことをするならまた別だね
0036デフォルトの名無しさんNGNG
>日本語の文字全部はテクスチャに入りきらない
それは通常使う意味でのキャッシュ(動的キャッシュ)ではないでしょ。
一回使った文字だけ、次はロードしなくてもいいようにキャッシュに
貯めておくのに使うテクスチャサイズは自由。
入りきらなくなれば利用頻度の少ない文字を捨てるだけ。
00376NGNG
>7 で言い換えた部分だけど、グレイスケールで問題無かったな。
つーかモノスケールって表現の方がおかしい気がする。
あんまり恥ずかしかったので自分で突っ込んでおく。

>35
フォローありがとう。文章読めない奴だな、俺は。

で、ふと思ったんだが、GetGlyphOutline() の GGO_GRAYn_BITMAP だけど
こいつの返すグレイレベル数からみて内部でオーバーサンプリングしている
のかもしれん。(n=2 で 5、n=4 で 17、n=8 で 65)
となると、GGO_BITMAP&自分でオーバーサンプリングでも、
実行コストをどうこう言うのは馬鹿げていたかもな。

GGO_GRAYn_BITMAP が異常データを返す条件がはっきり分かれば、
GGO_BITMAP に切り替えるふんぎりがつくのだが、本当に誰か知らないだろうか。
ゲームプログラマ失格でもいいからさ。知ってたら教えて欲しいよ。
0038デフォルトの名無しさんNGNG
>>37
>で、ふと思ったんだが、GetGlyphOutline() の GGO_GRAYn_BITMAP だけど
>こいつの返すグレイレベル数からみて内部でオーバーサンプリングしている
>のかもしれん。(n=2 で 5、n=4 で 17、n=8 で 65)
あなたはFreeTypeのソースでもよむとよかろう。
http://www.freetype.org/

ついでにいうと、これをつかえばOSに頼らずに
アンチエイリアス描画できるぞ。
00396NGNG
>38
情報ありがとう。
でも、FreeType1 は高品質グリフを取得するのに
APPLE とのライセンス契約が必要みたいだし、
FreeType2 は GPL なんだね…。(;´Д`)
わがままでごめんよ。そろそろ逝くわ。
0040デフォルトの名無しさんNGNG
>>39
よく読めー
GPLじゃない、もっと制限の緩いFreeTypeライセンスを使えるよ。
それとVM(Appleの特許部分)はやってみればわかるがなくても十分。
0041通りすがりのNGNG
少し気になったのですが、
エロゲプログラマ御用達MLって、何処にあるのでしょうか?
少々興味が有りましたので...
00426NGNG
>39
アーカイブの LICENCE.TXT を読んで理解した。
FTL と GPL の二者択一だったのねん。マヌケだたよ。
早い話、doc に FreeType コードを使用した旨を明記しとけばいいんだね。

ソースはまだ読んでない。へたれなんで多分理解できないしな。(;´Д`)
ただ FAQ を読むに、オーバーサンプリングやフィルタリング無しで、
256 level の anti-aliased イメージを生成しているわけか。優秀だな。
謹んで有効な選択肢の一つに入れさせてもらっておく。>FreeType2
00438NGNG
>41
ア○スソ○トの妹○雄○さんが運営してるところだよ
0044デフォルトの名無しさんNGNG
なんなんだお前らは。
有用な議論してるのかと思ったら……

プロファイルしろや!!!!!
バカの巣窟。
0045デフォルトの名無しさんNGNG
そして44は巣窟を「すくつ」と読んでいるに1票
0046デフォルトの名無しさんNGNG
プロファイルを取るにはコードが必要、で上の方の話は
コーディング前にベストな手法を他人から聞き出して楽しよーって話(w
004741NGNG
>>43
早速のレス、ありがとうございます。

ア○スソ○トは判るのですが、
妹○雄○と言う方の事は、私の知識ではまったく見当が付きません。
今回はあきらめることにします。

有り難うございました。
00488NGNG
>47
○尾○大さんだよ>後はgoogleへ
0049デフォルトの名無しさんNGNG
>>46

ゴミ溜め2chの情報乞食に自分で調べろゆーても話聞かんもん。
適当にあしらうなり放置プレイするなりホラ吹き込んで弄ぶなり
好きにしたらええがなー
0050デフォルトの名無しさんNGNG
高低差のあるマップで移動範囲を取得したいんですけど
良いアルゴあります?
17ms以内に処理を終らせたいので・・・
0051 NGNG
>>50
BBXに書いてた人?
0052デフォルトの名無しさんNGNG
>51
BBX?
0053デフォルトの名無しさんNGNG
>>51
違〜う
SRPGを作りたいんです。
タクティクス・オウガみたいの
0054デフォルトの名無しさんNGNG
>>53
SRPGのマップ程度なら、どんなに糞遅いコード書いたとしても17msもかからん。
0055デフォルトの名無しさんNGNG
>>50
それこそプロファイルかけろと言われかねん。
バリバリ3Dでもない限り描画以外の処理はそんなにかからんよ。
素直に実装してみそ。
0056デフォルトの名無しさんNGNG
>>50

まず、その17ms以上かかったという衝撃的ソースコードを
禿しくキボンヌー
0057デフォルトの名無しさんNGNG
http://www.campus.ne.jp/%7Eishigami/CREATION/MAKING/SESS02.htm

は使えない?
0058デフォルトの名無しさんNGNG
WINDOWSのGDIだけしか使わないでアルファブレンディングを表現するにはメモリを直接操作しないと駄目ですか?
0059デフォルトの名無しさんNGNG
>>58

W2K限定ならGDIでも一応は出来るよ。
使い方はここ(↓)に載ってるから。
http://www.microsoft.com/japan/developer/library/default.asp
0060デフォルトの名無しさんNGNG
>>58
http://www.microsoft.com/japan/developer/library/jpgdipf/_win32_alphablend.htm
0061デフォルトの名無しさんNGNG
英語版によるとWin98以降でも使えることになってるが
Win98のAlphaBlendはバグバグで使い物にならん。
実質WinMe/2000以降限定。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6ig4.asp
0062デフォルトの名無しさんNGNG
http://support.microsoft.com/support/kb/articles/Q303/9/16.ASP
0063デフォルトの名無しさんNGNG
>59-62
感謝。ゲーム作成ソフトに、デザインのためのGDIのみでのABが必要だったのです。
もうwinXPも出るしwin98,95ユーザは範囲に入れないことにします。
0064Win98ユーザーNGNG
>>63
デザインの都合のためだけに捨てられるのか・・・(´Д`)
0065デフォルトの名無しさんNGNG
>>64
ゲーム用のツールでって意味だろ?
製作者側でしかつかわんなら問題ないでしょ。
オープン系の開発ならともかく。
0066デフォルトの名無しさんNGNG
動かないゲームは遊ばなければ良い。ただそれだけの話。

そういえば、某フリーウェア雑誌は、
Win2kでの動作保証はしないと書いてあったな。
0067Win98ユーザーNGNG
動かないことが悲しいんじゃない。捨てられることが切ないの・・・(´Д`)
0068デフォルトの名無しさんNGNG
>Win98ユーザー

はいはい。分かった分かった。悲ちい悲ちい。

■人生相談板
http://piza2.2ch.net/jinsei/
■心と宗教板
http://mentai.2ch.net/psy/
■人権問題板
http://ton.2ch.net/rights/

仲間に慰めてもらえ。
後、心療内科に行け。
0069デフォルトの名無しさんNGNG
>>67
まだ結構使われてるだろうWin95なんて、MSにも捨てられてるじゃん。
世の中には、Nimda防ぐためにIE6入れようとして、インストールできないやからもいるんだよ(藁
0070Win98ユーザーNGNG
>>68,69
もっと面白いこと言って・・・(´Д`)
0071デフォルトの名無しさんNGNG
>>70
正直、そろそろ他所に逝ってほしい。
0072Win98ユーザーNGNG
>>71
面白い。次はマ板にでもいくか・・・(´Д`)
0073デフォルトの名無しさんNGNG
http://www.cbook24.com/bm_detail.asp?sku=99924304
この本買った人いますか?評価きぼんです。
0074デフォルトの名無しさんNGNG
>>73
昨日書店でパラパラ見たけど、要るか?

この手の〜の作り方本を買うくらいなら、他の基礎的な本を買って読んだ方が
いいんじゃないの?
基礎が出来れいればこの程度の応用ならできるだろうから。
0075デフォルトの名無しさんNGNG
>>74
この板に「RPGの作り方教えてくださ」ってクソスレ立てる奴が一人でも減ってくれるなら、
俺的にはこの本の存在価値を認めてあげても良い。
0076デフォルトの名無しさんNGNG
>>75
かれらが作りたいのはFFだから(藁
0077デフォルトの名無しさんNGNG
彼らってリディアたん一人でしょ。
っつうか、上げんな。
007875NGNG
>>77
007975NGNG
>>77
正直スマン。78の間違い書き込みもスマン。
0080デフォルトの名無しさんNGNG
まず本を読まずに自分で作って、ゲーム作りの厳しさを知ってから読んで欲しいな。
0081デフォルトの名無しさんNGNG
それでは >>73 の言う本は、「ゲームづくりに一度は挫折した人向けの本」ということでよろしいか?
0082デフォルトの名無しさんNGNG
じゃあ、その本は幅広いニーズが見込まれるということか。
凄いじゃないか。Game Programming Gemsで消化不良おこして
腹をくだすぐらいなら、それ買ったほうがいい。いいよ。>>73
0083デフォルトの名無しさんNGNG
そう?
読んでないけど、キャラクタをクラスにするとか、スクロールのやり方とか、そういう簡単な事しか書いてないような気がする。
0084デフォルトの名無しさんNGNG
それが世の中の需要なんだろ。需要。

「よーし、パパはC++覚えてゲーム作っちゃうぞー」とか言ってるの。もう見て(以下略)

そりゃ売れるさ。
0085デフォルトの名無しさんNGNG
アニメーションを含めてドット絵描く
エディタってどれが良いの?
0086デフォルトの名無しさんNGNG
エッジでしょう。EDGE。
0087デフォルトの名無しさんNGNG
GraphicsGaleもあるでよ。
0088デフォルトの名無しさん NGNG
俺はPaintShopPro3でドット打ってるが、何か
0089デフォルトの名無しさんNGNG
>88
PSPってどうやって点打つの?
太いブラシとかエフェクトしかないんだけど。
ver7なんだけど機能が削られたのかな。
0090デフォルトの名無しさんNGNG
エフェクト関連のツールで、何か良いツール無い?
0091デフォルトの名無しさんNGNG
>>85
漢なら68エミュレータ上でEELを使うしか。
0092デフォルトの名無しさんNGNG
>>73
作者さんは、アドベンチャ−ゲームプログラミング書いた人だね。
これからはじめる人や挫折組みにはいいのでは?
0093デフォルトの名無しさんNGNG
>>85
EDGEとD-Pixedかな。
D-Pixedは昔使ってたけどアンドゥが一回しかできなかったり、
範囲選択中に不用意にクリックするといつのまにか変なところに貼り付け去れちゃってたり
したんで、徐々にEDGEに移り中。
うちのグラフィッカさんは移行が面倒らしく、何度もデータ消しながら泣く泣く使ってる。
データ消えて時に叫ばれる奇声はもう聞きたくないので、そろそろ乗り換えてほしい・・・。

EDGEもD-Pixedになれた身にはちょっと、操作の面倒くささがあってなかなか慣れられないけど。おれは
0094デフォルトの名無しさんNGNG
>>92
プログラム言語が理解できなくて挫折した人のほうが多いと思われるのでツクールを推奨。
009588NGNG
>>89
遅レス御免。

 Ver.3の頃のPSPは今とは別物と考えた方がヨシ。
 イラスト系の絵を描こうとすると相当使えないシロモノだけど、
逆にドット打つのにはかなり便利。
 なんというか、アイコンエディッタ系のソフトを強化したという感じ。

 レイヤー機能が無いのが痛痛痛々々・・・・
0096デフォルトの名無しさんNGNG
定期age
0097デフォルトの名無しさんNGNG
話題がないで脛。
0098デフォルトの名無しさんNGNG
そうで脛
0099デフォルトの名無しさんNGNG
age
0100デフォルトの名無しさんNGNG
ハロー(注意報)。
えっと、Game Programming Gemsの誤植表とかないですか?
クォータニオンの乗算とか盛大に間違えてる気がする。

とりあえず自分で導出したからいいけど、
他にもたくさんあるんちゃうかみたいなー。
0101デフォルトの名無しさんNGNG
コンピュータ本は、コレクション趣味のあるひと以外は
初版に手を出してはいけないの法則。
■ このスレッドは過去ログ倉庫に格納されています