DXライブラリ 総合スレッド その10
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2011/08/18(木) 17:18:15.54ID:vXmrN4yDGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
【公式】
http://homepage2.nifty.com/natupaji/DxLib/
【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
DXライブラリ 総合スレッド その8
http://hibari.2ch.net/test/read.cgi/gamedev/1301818631/
DXライブラリ 総合スレッド その9
http://hibari.2ch.net/test/read.cgi/gamedev/1310904069/
0034名前は開発中のものです。
2011/08/20(土) 01:44:03.83ID:Fwzk+EjB0035名前は開発中のものです。
2011/08/20(土) 01:44:56.97ID:ZoKw5/8i君には選ぶ自由がある
0036名前は開発中のものです。
2011/08/20(土) 02:40:16.77ID:v7MhS9L7CryEngineでも使っとけよ
0037名前は開発中のものです。
2011/08/20(土) 16:18:31.76ID:hqQNNz9LSetDrawBlendModeを使うと描いた四角以外の部分も色が変わってしまう。
DrawBoxで描いた四角の部分だけを透過する方法はないですか?
0038名前は開発中のものです。
2011/08/20(土) 16:22:13.65ID:MeXvMRT50039名前は開発中のものです。
2011/08/20(土) 16:38:32.07ID:hqQNNz9L使い方の問題だけでしたか。
ありがとう。
0040名前は開発中のものです。
2011/08/20(土) 16:42:51.24ID:IWWDN6QR0041名前は開発中のものです。
2011/08/20(土) 17:21:48.78ID:qSqU0IZR0042名前は開発中のものです。
2011/08/20(土) 18:25:38.16ID:3ivERayN0043名前は開発中のものです。
2011/08/20(土) 18:33:43.27ID:IWWDN6QR0044名前は開発中のものです。
2011/08/20(土) 18:41:03.64ID:CTodmPomオーバーロードで引数無しの場合は0xffを与えればいい
0045名前は開発中のものです。
2011/08/21(日) 00:29:39.73ID:gki3mA7k俺たまにマスク使いたくなるけど、リファレンツに出力がどうのこうの
って書いてあるから躊躇してしまう
0046名前は開発中のものです。
2011/08/21(日) 01:09:33.97ID:P45TjjLU画面四分割する時に使ったことある
0047名前は開発中のものです。
2011/08/21(日) 03:28:33.00ID:RxfZEi1R画面分割はやったことあるけど、矩形だったからSetDrawAreaで充分だったし。
0048名前は開発中のものです。
2011/08/21(日) 04:25:39.46ID:rjN5MHyAあるんじゃないかとは思ってたけど
商業でDXライブラリ使ってるという話は始めて聞いた。
しかもこの人によると、割と使ってるところあるみたいね。
尤も、典型的な紙芝居ノベルっぽいから、それ専門のソフトとスクリプトで十分だとも思うが…
0049名前は開発中のものです。
2011/08/21(日) 10:22:04.14ID:M759TBPA初期化処理において、
龍神録プログラミングのその11,エクセルを使って敵の出現データを作ってみよう、
を参考にして敵のIDに応じた各データメンバをcsvファイルから読み込ませようとしています。
他にもっと便利で修正しやすいよ、という方法ありましたらお教えください。
0050名前は開発中のものです。
2011/08/21(日) 11:22:50.61ID:7gHE4yq/0051名前は開発中のものです。
2011/08/21(日) 12:13:03.89ID:fmNEKtpE0052名前は開発中のものです。
2011/08/21(日) 12:23:39.50ID:WE805obR0053名前は開発中のものです。
2011/08/21(日) 18:42:31.11ID:IUtyM1fd敵が常に1体ならそれでいいだろうけど
0054名前は開発中のものです。
2011/08/21(日) 18:45:45.02ID:3Sq6cAOcこれなら敵として設置するだけで編隊を出してくれるから、同じようにステージに配置しやすい
0055名前は開発中のものです。
2011/08/21(日) 18:55:02.65ID:IUtyM1fd0056名前は開発中のものです。
2011/08/21(日) 18:59:49.70ID:KFmwB8iQ>>53
敵データと敵パーティーデータって普通は別扱いでやらね?
0057名前は開発中のものです。
2011/08/21(日) 19:39:22.49ID:2utXiE9Y「原理原則」や「机上の空論」を正論と思って賞賛してよいのは中学二年生まで
0058名前は開発中のものです。
2011/08/21(日) 19:54:12.43ID:8VJ3fpLQファクトリメソッド使えるのならこのほうが楽
0059名前は開発中のものです。
2011/08/21(日) 20:00:10.45ID:KFmwB8iQ0060名前は開発中のものです。
2011/08/21(日) 20:02:57.51ID:TJFAx+2m0061名前は開発中のものです。
2011/08/21(日) 20:07:40.03ID:8VJ3fpLQエンカウントもイベント戦闘もその中での敵配置も同じ扱いでやったほうが楽
0062名前は開発中のものです。
2011/08/21(日) 20:13:03.58ID:IUtyM1fd敵が複数登場するようなゲームなら、
いくつかの敵IDの情報を持った敵パーティIDで抽選を行って、
その後、敵IDに応じたデータを読みこんでいけばいいんじゃないかなー
って思ったんだ
0063名前は開発中のものです。
2011/08/21(日) 20:20:26.97ID:3Sq6cAOc0064名前は開発中のものです。
2011/08/21(日) 20:23:32.72ID:KFmwB8iQああ、俺が言いたかったのもそういうことw
0065名前は開発中のものです。
2011/08/23(火) 01:09:17.09ID:5Swg8Sk+多分完成した頃には重くて、容量でかいのができあがるんだろうな
0066名前は開発中のものです。
2011/08/23(火) 01:13:57.54ID:5BpZmfJs乗算除算やループの方がずっと重い
実行ファイルの容量なんか気にする必要ないだろw
0067名前は開発中のものです。
2011/08/23(火) 03:47:11.27ID:XYlgGojw0068名前は開発中のものです。
2011/08/23(火) 11:18:25.33ID:Js7ixgY80069名前は開発中のものです。
2011/08/23(火) 11:55:39.56ID:5Swg8Sk+if文の条件を多くするってのは、条件一つにつきif文+1って感じなのか?
0070名前は開発中のものです。
2011/08/23(火) 12:16:04.94ID:m6CHMGJ4あれも実際は効果あるか怪しそうだけど
0071名前は開発中のものです。
2011/08/23(火) 12:33:19.39ID:Js7ixgY8このスレで糞糞言う奴の言葉とか全くあてにならんよ
if文の問題点はコードの見通しが悪くなることと仕様変更時に面倒くさいこと
利点は言うまでもないけど早く組めること
利点と問題点を理解して自分にあったスタイルで組めばいいと思う
0072名前は開発中のものです。
2011/08/23(火) 14:39:43.09ID:LpKAIWaDそこでDrawPrimitive2D及びDrawPrimitiveIndexed2Dを使えば
速くなるのでは無いかと考えたのですが、使い方が探しても
見つからなくて困っています。
これらの関数でテクスチャを表示する方法をどなたかご教授
いただけないでしょうか。
0073名前は開発中のものです。
2011/08/23(火) 14:44:21.90ID:EuwgydXA0074名前は開発中のものです。
2011/08/23(火) 14:58:04.31ID:gBJyAplF0075名前は開発中のものです。
2011/08/23(火) 15:06:37.37ID:Jx4cybJH昔は公式なリファレンスがあったんだっけ?
とりあえず↓をDXライブラリの関数に置き換えて読めば概要はわかるはず これで理解できなかったら使う事自体おすすめしない
http://www.c3.club.kyutech.ac.jp/gamewiki/index.php?DrawPrimitive
007672
2011/08/23(火) 15:11:36.26ID:LpKAIWaDDXライブラリは概ね使いやすくて非常に気に入ってるので、あと描画速度を
もう少し何とかできればという感じなのですよね。
>>75
ありがとうございます。
構造体のメンバも同じですし、DirectXの情報を追えばなんとかなりそうですね。
頑張ってみます!
0077名前は開発中のものです。
2011/08/23(火) 15:18:11.27ID:Jx4cybJH弾幕STGで、弾毎に頂点カラーで色を決めてるとかそういう感じ……?
ブレンドカラーの変更処理ってデフォだとエラーチェックが入るからフレーム毎に1000回くらいで重くなるし
0078名前は開発中のものです。
2011/08/23(火) 15:29:08.46ID:LpKAIWaDマップチップの描画処理です。
640*480に16*16のチップを3レイヤー分敷き詰めるとチップ無し
のマスもあるので平均して1500くらいの回数に。
で、内蔵グラフィックボードだと60fpsを割ったり割らなかったり。
一応透過pngをLoadDivGraphで読み込んだものを描画してるので
SetDrawBlendModeとかはしてないです。
0079名前は開発中のものです。
2011/08/23(火) 15:32:07.66ID:GFTNdbU80080名前は開発中のものです。
2011/08/23(火) 15:34:41.23ID:LpKAIWaD4096*768でARGB32の2.52MBのpngファイルです。
0081名前は開発中のものです。
2011/08/23(火) 15:36:09.16ID:gBJyAplF0082名前は開発中のものです。
2011/08/23(火) 15:37:05.17ID:GFTNdbU80083名前は開発中のものです。
2011/08/23(火) 15:38:11.89ID:Jx4cybJHマップチップの最適な描画法ってある気がするんだけどなー
0084名前は開発中のものです。
2011/08/23(火) 15:46:29.02ID:gBJyAplFあとバッファをうまく利用するとか
何とか描画回数を減らすように工夫するのがまず必要だと思う
全部16*16ってのはかなり非効率的だし
0085名前は開発中のものです。
2011/08/23(火) 16:03:28.86ID:5Swg8Sk+重かったのは俺が、ミスって毎ゲームループごとにLoadGraphしてた時だった
0086名前は開発中のものです。
2011/08/23(火) 16:04:12.77ID:gBJyAplFソースから2*2のような形をそのまま持ってくる場合はその都度Derivationする
カリングする(上のレイヤによって完全に塗りつぶされる場合は描画しない)
など
0087名前は開発中のものです。
2011/08/23(火) 16:05:11.97ID:LpKAIWaDLoadDivGraphの速度は遅くなるけど、ハンドル取得後の描画には
影響しないんじゃないかと思ってましたがどうなんでしょう。
>>84
ですよね。大きな画像を作ってそれに最初にマップチップを全部
描画しておいて、その大きな画像を描画するというのも考えたの
ですが、なにぶんゲーム中に一部のチップだけ差し替えたりという
要素があるのでできれば全チップ舐めて描画したいなと。
でもよく考えるとチップ差し替え時に大きな画像の方にそのチップ
だけ上描ききすれば良いですね。
0088名前は開発中のものです。
2011/08/23(火) 16:06:07.50ID:iSTnkg73640*480で16*16のマップチップを3枚重ねるやつ。
透過pngじゃなかったけど結構負荷がかかった記憶がある。
んで、諦めて一番裏の背景は諦めて一枚絵にしてしまったり、
オプションで二枚目の背景も消せるようにしたりしたなぁ。
まだDXライブラリ使い始めの頃だったけど。
描画の前に重なり具合を調べて、見えなくなる部分は描画しないとかいう手もありかもしれない。
0089名前は開発中のものです。
2011/08/23(火) 16:09:10.07ID:gBJyAplF画像サイズはVRAMとメインメモリでスワップが発生してるかどうかが問題かな
計算してみたら4096*768の32bitカラーで12MBの消費だから、それだけではスワップはしないと思うけど
0090名前は開発中のものです。
2011/08/23(火) 16:13:36.75ID:BZMGrITN最大テクスチャサイズは2048x2048だっけな、オンボなら1024x1024ぐらいに抑えたほうがいいだろうけど
元画像を幾つかに分割してソート掛けときゃ気持ちぐらいは速くなるかもね
0091名前は開発中のものです。
2011/08/23(火) 16:16:13.66ID:gBJyAplFそういえばそうだっけ
大きい画像は内部的に分割されるからまとめ描きがきかなくなる(と思う)ことを忘れてた
009272
2011/08/23(火) 16:17:17.68ID:LpKAIWaDちょっと1024*1024あたりに抑えたので試してみます。
あとやはり画像をまとめて1枚にしてしまおうかとも。
幸いにもアニメーションするマップチップは無いので。
0093名前は開発中のものです。
2011/08/23(火) 16:20:53.24ID:GFTNdbU80094名前は開発中のものです。
2011/08/23(火) 16:29:41.37ID:Jx4cybJHマップ移動時はその中から描画したいとこだけを描画するってどうだろう
アニメーションするチップがあるなら工夫必要だけど、これが最速な気がする
0095名前は開発中のものです。
2011/08/23(火) 16:31:44.49ID:GFTNdbU80096名前は開発中のものです。
2011/08/23(火) 16:42:31.81ID:gBJyAplFフィールドみたいにサイズがでかすぎるとVRAMから溢れそう
描画可能テクスチャに1画面分描画して、スクロールが発生する時に
スクロール先の部分を描画可能テクスチャに1ライン描画するとかどうだろう
プライマリサーフェスに転送する場合はxオフセットとyオフセットを設定すれば、
描画可能テクスチャ1枚で足りるし、描画時に4転送で済む
0097名前は開発中のものです。
2011/08/23(火) 17:04:15.97ID:zNqX2lyTオフセットだけだとはみ出すよね俺間違ってる?
0098名前は開発中のものです。
2011/08/23(火) 17:10:08.05ID:gBJyAplFうーん、説明しづらいから分かりにくくてすまんw
スクロールするときにスクロールアウトする部分に1ライン描画するって言う意味
そうすると描画可能テクスチャは頂点がスクロールした方向に1ラインずれる
つまり、最初の状態で0〜100を1回描画だとすると、5ラインスクロールしたら5〜100+0〜4の2回描画になるって具合
この場合オフセットは5ライン目
スクロールによるずれがx方向とy方向で生じるから、通常は都合4回の描画になる
実際にはスクロールする時のために上下左右に1ライン分のマージンが必要だけど
0099名前は開発中のものです。
2011/08/23(火) 17:16:54.74ID:gBJyAplF00,01,02,03,04,05
10,11,12,13,14,15
20,21,22,23,24,25
30,31,32,33,34,35
40,41,42,43,44,45
50,51,52,53,54,55
で右にスクロールすると、描画可能テクスチャは左1ラインがスクロールアウトするから上書きして
06,01,02,03,04,05
16,11,12,13,14,15
26,21,22,23,24,25
36,31,32,33,34,35
46,41,42,43,44,45
56,51,52,53,54,55
って形になる。バックバッファに転送するときは最初に01~55を左詰めで転送し、次に06~56を転送
0100名前は開発中のものです。
2011/08/23(火) 17:24:53.71ID:zNqX2lyT0101名前は開発中のものです。
2011/08/23(火) 17:26:09.22ID:m6CHMGJ4バグると移動中に描画オフセットが効かなくてそのままマップが変わって行くのが見えちゃうみたいなw
0102名前は開発中のものです。
2011/08/23(火) 17:30:00.21ID:gBJyAplFただ難点は、描画可能テクスチャを使うってことなんだよね
3.00になって公開関数になった(っけ?)から前よりは安定してるんだろうけど、
2.xx系列だと隠し関数扱いだったからなー
動作の安定性が問題
0103名前は開発中のものです。
2011/08/23(火) 19:59:00.13ID:VwHWQmS116*16で描画する場合は描画回数は増えるだろうけど全体では1画面分くらいしか描画しなくていいわけだからどっちの方がいいんだろ
一番手前のレイヤーとかほとんど透過色でほとんど描画しないんじゃないのか
てかMakeScreenで作ったバッファに透過色設定とかできたっけ
0104名前は開発中のものです。
2011/08/23(火) 20:24:26.48ID:XYlgGojw0105名前は開発中のものです。
2011/08/23(火) 23:30:59.29ID:5Swg8Sk+DrawGraphとかの座標の設定は、int x, int y ってなってるけど、
doubleの値を代入したりするとやっぱりバグるのか?
三角関数とか使って座標の計算とかしてるとどうしてもdoubleの値がでてきてしまうんだが
0106名前は開発中のものです。
2011/08/23(火) 23:35:10.20ID:lNTJHKH0自動的にintにキャストされる
float値を使いたい場合はDrawGraphFでおk
使い分けはまぁ色々試してみるといいかと
0107名前は開発中のものです。
2011/08/23(火) 23:57:38.50ID:lNTJHKH0描画モードがBILINEARの時にfloatでDrawすると各描画点の座標をfloatで計算してくれる
1pixel未満の単位で描画できるけど、描画画像がボケるから使い分けが必要
NEARESTの時にfloatでのDrawはやったことないから分からない
0108名前は開発中のものです。
2011/08/24(水) 00:01:48.23ID:ZKHBuIyW技術的には挑戦してみたいけど
0109名前は開発中のものです。
2011/08/24(水) 00:08:03.99ID:sfkaW6xvまぁ性能が低い場合の工夫だからね
ユーザー環境にばらつきがあって下限が低いPCゲーだとファミコンみたいな工夫も必要なのかと
0110名前は開発中のものです。
2011/08/24(水) 11:46:00.65ID:AJ4GFjC0そうだったか
doubleからint型に変換されるとバグる時あるけど、バグるときとバグらない時の
違いってなんなのかね
0111名前は開発中のものです。
2011/08/24(水) 12:03:34.50ID:L/387cHC全然関係ないところでバグってるって可能性が一番高い
あとint型は+20億〜-20億程度が保持できる値の範囲だから、キャスト前の値がそれを外れてるとバグる
他に良くある誤りとしては、printfで%d指定してるのにdoubleやfloat突っ込むと変な値が出るとか
0112名前は開発中のものです。
2011/08/24(水) 12:08:51.65ID:Y83dP7s90113名前は開発中のものです。
2011/08/24(水) 12:37:25.60ID:wddftNdY0114名前は開発中のものです。
2011/08/24(水) 12:55:33.53ID:L/387cHC丸め誤差が蓄積してintにしたときに大きくずれることはよくある
0115名前は開発中のものです。
2011/08/24(水) 13:35:52.82ID:/WAoNVeM0116名前は開発中のものです。
2011/08/24(水) 14:39:56.73ID:h8WNvxshttp://0xcc.net/blog/archives/000164.html
0117名前は開発中のものです。
2011/08/24(水) 14:53:30.67ID:/Zu3vBbU最近偶数丸めの四捨五入とか負の値の切り上げ切捨ては
理解してないと整数にしたときに違ってくるのはある
0118名前は開発中のものです。
2011/08/24(水) 15:18:28.07ID:rcSq7hqB0119名前は開発中のものです。
2011/08/24(水) 15:30:40.78ID:h8WNvxsh高度な物理演算でもさせるのなら別だけど、物理演算なら何か物理エンジン持ってきた方が手っ取り早いだろうし
0120名前は開発中のものです。
2011/08/25(木) 00:25:28.37ID:5/LIEyCj心が痛むけど便利だから仕方ない
0121名前は開発中のものです。
2011/08/25(木) 00:28:02.81ID:b/ivvO9jフリーでシェアウェアにも使える3Dの物理エンジンってあるかな
0122名前は開発中のものです。
2011/08/25(木) 00:31:33.05ID:u5dPaIVB0123名前は開発中のものです。
2011/08/25(木) 00:58:40.19ID:6F5H+2xZ0124名前は開発中のものです。
2011/08/25(木) 01:18:03.52ID:v0OE4j5b0125名前は開発中のものです。
2011/08/25(木) 19:31:31.34ID:r39pEB590126名前は開発中のものです。
2011/08/25(木) 19:43:51.78ID:+TzycFNm調べてみるサンクス
>>123
PhysXってゲフォ使ってないとダメとかそういう制限ないの?
>>124
Havokはシェアウェアに制限があったと思う
0127名前は開発中のものです。
2011/08/25(木) 19:46:15.26ID:0LquE4ljかなり重いが
0128名前は開発中のものです。
2011/08/25(木) 19:51:22.21ID:+TzycFNmGTA4なんかにも使われてるんだな
これももうちょい調べてみる
0129名前は開発中のものです。
2011/08/25(木) 20:36:10.22ID:x7GzGK8k0130名前は開発中のものです。
2011/08/25(木) 20:36:41.74ID:6F5H+2xZそんな制限あったら誰も使わねえよw
0131名前は開発中のものです。
2011/08/25(木) 20:55:20.29ID:+TzycFNmそうなんだ
数年前にnVidia以外のGPUを検知するとPhysXの機能が停止されるようになったとか見た記憶があったから
自動的に選択肢から外してたけど、いつの間にか解消されてたのね
0132名前は開発中のものです。
2011/08/25(木) 21:11:09.88ID:6F5H+2xZ何か勘違いしてるみたいだけどPhysXはGPU限定じゃないぞ?
GeForceならCPUより速くなるだけで
普通にCPUのみで常用出来るしUnityやUDKはPhysXがデフォ
0133名前は開発中のものです。
2011/08/25(木) 21:16:10.43ID:+TzycFNmなるほど、勉強になった
思ってる通り完全に勘違いしてたわ恥ずかしい限りで・・・
0134名前は開発中のものです。
2011/08/26(金) 03:17:13.81ID:V5GLTgJY■ このスレッドは過去ログ倉庫に格納されています