DXライブラリ 総合スレッド その10
レス数が900を超えています。1000を超えると表示できなくなるよ。
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/
0825名前は開発中のものです。
2011/11/09(水) 02:51:00.07ID:6cMg/q7V0826名前は開発中のものです。
2011/11/09(水) 11:08:15.17ID:6nuVwSJa2. C言語に拘るあまり汚いソースになっている
ってのはあると思うが、それを考えても初心者にはあそこ一択だと思うけどね。
何よりゼロから始めてSTG一本作れるのが強い。
他にゼロから実用レベルのゲームが作れるまで説明してる所あるのか?
ソースコードの効率化なんてその後に考えればいいし。
0827名前は開発中のものです。
2011/11/09(水) 11:24:58.33ID:LwV8h9/Sすでに作れる人には色々と違和感があるだろうけど。
誰もが最初期に通ってきた道だと思うよ。
0828名前は開発中のものです。
2011/11/09(水) 11:35:13.40ID:x8xr6zn9>>822に理由書いてあるじゃんw
0829名前は開発中のものです。
2011/11/09(水) 14:05:43.18ID:S0hF1kff公式とあそこぐらいしか情報量のある解説サイトないし
0830名前は開発中のものです。
2011/11/09(水) 14:07:36.71ID:YAhE0RpO0831名前は開発中のものです。
2011/11/09(水) 18:23:14.88ID:Tj84qc8d>>830
もっとましな解説サイト知ってるなら教えてくれよ
0832名前は開発中のものです。
2011/11/09(水) 19:08:22.25ID:0mO+B9z8このスレみても本当に浅い部分での話題しかない
深い技術的な話題がない
0833名前は開発中のものです。
2011/11/09(水) 19:18:51.41ID:NartzqgO0834名前は開発中のものです。
2011/11/09(水) 19:43:00.03ID:GKNT7Tvh0835名前は開発中のものです。
2011/11/09(水) 19:50:54.25ID:6nuVwSJa所詮描画ライブラリなので後はどちらかというとC++のノウハウだし
0836名前は開発中のものです。
2011/11/09(水) 21:10:42.12ID:hlCHSTSe解説サイト作っても>>824みたいに言われるんだろうしな
実際にサイト作ってる人は偉いわ
0837名前は開発中のものです。
2011/11/10(木) 00:03:09.56ID:fygmWcBb知ったかが偉そうに否定だけしていく、それだけ
0838名前は開発中のものです。
2011/11/10(木) 00:14:02.99ID:m2MTWY2iゲーム作りだってそうだろ?
それなりのクオリティの物をつくる奴は淡々としているけど。
何も作らない奴は口だけ五月蠅い。
同じだよ。
0839名前は開発中のものです。
2011/11/10(木) 00:28:08.06ID:qfxfByep0840名前は開発中のものです。
2011/11/10(木) 00:38:35.54ID:AKmYMyEoわからないことがあれば公式掲示板で管理人さんや常連さんが的確な回答くれるし…。
ここで話すことって言ったらアップデートで○○対応されたねーとか、○○って関数バグ持ちじゃね?とかくらいじゃん。
0841名前は開発中のものです。
2011/11/10(木) 02:08:39.46ID:lLBYcWeU0842名前は開発中のものです。
2011/11/10(木) 15:20:00.48ID:X8OQdNx0まあ、動画側がアルファ情報持ってるかどうかが実はまだ怪しいんだが・・・
リファレンスにあるように_aもつけてみたけど、どんまいだった(そもそもそこは自動らしいし)
DxLibってアルファ情報扱えるよな?
0843名前は開発中のものです。
2011/11/10(木) 15:27:36.25ID:9ARI0/qO自分の場合、グラッフィックドライバか何かがおかしいのか、
録画した動画ファイルを開こうとすると、Windowsが止まる…。
0844名前は開発中のものです。
2011/11/10(木) 21:29:49.76ID:XA6nG28aアルファ付き動画ってもう対応したの?
0845名前は開発中のものです。
2011/11/11(金) 01:18:48.65ID:myaTZalRで.aviで出力したからおそらく動画はアルファ持ってると思うけど
実際にPlayMovieToGraphとDrawGraphで動画再生すると、背景は黒くなってる
つかやっぱり動画だとアルファに対応してないの?
0846名前は開発中のものです。
2011/11/11(金) 23:51:55.52ID:kTo/VyVBだからまだなんだと思うよ
0847名前は開発中のものです。
2011/11/12(土) 14:04:06.62ID:7bdxdQ/6やっぱりか、ここ1週間くらいの努力が泡になりました
でも仕方ないね
さて、どうしようかな
0848名前は開発中のものです。
2011/11/12(土) 14:10:02.28ID:bexUnWRY0849名前は開発中のものです。
2011/11/12(土) 14:11:01.10ID:yKKt4n4mNiVEは画像出力も出来たと思うけど、ちょっと面倒くさい
0850名前は開発中のものです。
2011/11/12(土) 14:16:45.50ID:bexUnWRY連番画像でもメモリ占有するから避けられてるのに
0851名前は開発中のものです。
2011/11/12(土) 16:31:24.39ID:0bFrYxS8マスク用の白い画像を用意して、先にマスク用画像を減算で描画。
その後に描画したい所以外を黒く塗りつぶした描画したい画像を加算で描画すればそれっぽく描画できる
これを応用すれば動画を2つ重ねて出来るはず
アルファ画像が使えないツールでゲーム作ってた頃よくやってた方法
0852名前は開発中のものです。
2011/11/12(土) 17:33:46.73ID:dK9G4kbDスパロボみたいなカットインいれるくらい?
でもあの程度なら動画より普通に画像アニメさせたほうが楽だし早いしなぁ。
>>851
そういう工夫は大好きだw
使う機会ないけど。
0853名前は開発中のものです。
2011/11/12(土) 18:00:47.33ID:7GY6HiCU色の指定でRGBA入りませんよね?
0854名前は開発中のものです。
2011/11/12(土) 18:06:32.18ID:bexUnWRY0855名前は開発中のものです。
2011/11/12(土) 18:09:48.73ID:vx/VZdrVSetDrawBlendMode()の解説によると DrawString も入ってるね
0856名前は開発中のものです。
2011/11/13(日) 01:12:34.16ID:BCspkxt4ステージの最初と最後に、Stage StartとかStage Clearとかのロゴをエフェクト付きで
入れたかった。
完全な動画としてなら動画再生でいいんだけど、ゲーム進行中にそのロゴ入れたかったから
アルファが必要だった
色々考えるとDXlibでは、アルファ付き動画再生が無理となると、エフェクトは基本連番になるわけだから
あまり複雑だったり、大きいサイズや時間的長さだと無理なんだな
みんなどうやってるの?
0857名前は開発中のものです。
2011/11/13(日) 01:16:13.65ID:e5uRPtOdただしハードコーディングでやると大変なのでツールとかを作ったほうが良い
この間DXLibに対応したBishamonとかはそのツール。出来たファイルをプログラム側で読み込んで動的に再生する
0858名前は開発中のものです。
2011/11/13(日) 02:07:39.87ID:wLtLlkEYDXlibはかなり大きな画像サイズでも問題なく読み込めるぞ
ムービー→連番画像→画像連結のソフトならいくらでもあるし
もしソフトがαに対応してなくても透明色を予め決めておけばいいだけのこと
0859名前は開発中のものです。
2011/11/13(日) 02:16:49.05ID:etxKEEUe0860名前は開発中のものです。
2011/11/13(日) 12:18:40.19ID:dd8ySnSTゲーム用エフェクト生成ツールとやってることは大して変わらない気がするよ。
0861名前は開発中のものです。
2011/11/13(日) 15:45:50.31ID:xsW88Wld内部でWindowsのスレッド1本作ってた気がする
うろ覚えだけど
0862名前は開発中のものです。
2011/11/13(日) 17:16:53.10ID:BCspkxt4でもこいつがあれば俺のゲームもカッコよくなるだろうな
>ムービー→連番画像→画像連結のソフト
あるのか、だったらそれ探してまたパラパラでまた挑戦してみるわ
0863名前は開発中のものです。
2011/11/13(日) 17:24:04.31ID:dd8ySnST単純に3万からだしねー。
0864名前は開発中のものです。
2011/11/13(日) 17:27:44.67ID:Ttq42r1rいい名前を聞いた
これで3万なら買おう
0865名前は開発中のものです。
2011/11/13(日) 17:38:51.07ID:2+R+DPF30866名前は開発中のものです。
2011/11/13(日) 17:44:56.69ID:e5uRPtOd補足すると
一年間のライセンスが1万弱
SDK(買い切り)が2万弱
合わせて3万
>>865
>>857
0867名前は開発中のものです。
2011/11/13(日) 19:27:47.07ID:dd8ySnSTDirectX系以外でも使おうとすると、その分だけSDKを買わなきゃならないから、
いろんな環境で開発してる人は、ターゲットを絞った方が良さそうだけどねー。
>>864
元は数百万の業務用を、10万くらいで個人用に販売できないか調整してたみたいね。
で、蓋を開けたら3万〜とw
0868名前は開発中のものです。
2011/11/13(日) 22:18:23.21ID:c46xJnZdMMEてMMD用のHLSLそのものだろw
0869名前は開発中のものです。
2011/11/13(日) 23:12:59.02ID:v+WgiRfi0870名前は開発中のものです。
2011/11/14(月) 01:22:23.70ID:QxEaDdNW次に買うのはAEかParticleIllusionのつもりなんだけどな、何年先になるやら
俺はフリーソフトで生きていくわ
0871名前は開発中のものです。
2011/11/14(月) 01:24:03.87ID:vey8LKUYそして安価で売って儲けたい
0872名前は開発中のものです。
2011/11/14(月) 02:04:07.40ID:odOcsdY80873名前は開発中のものです。
2011/11/14(月) 02:20:32.87ID:8EhiSIXC0874名前は開発中のものです。
2011/11/14(月) 05:30:03.10ID:Rpz+kmG6少し前にDXライブラリに対応したって話を聞いた。
0875名前は開発中のものです。
2011/11/14(月) 12:33:10.41ID:hrZl6RzT0876名前は開発中のものです。
2011/11/15(火) 04:46:42.24ID:V0o+21Uh連番画像を連結できるソフトは結構あったんだけど、pngに対応してなかったり
対応しててもアルファに対応してなかったりと、結局のところいいのがなかった
仕方なくNiVEから連番をjpgで出して、jpgで連結した後、PSでUnMultiplyとかいうプラグインで
背景の黒取り除いたらなんとかなった
でもどんだけ遠回りしてんだ・・・
0877名前は開発中のものです。
2011/11/15(火) 04:58:38.32ID:SxUfWT7o0878名前は開発中のものです。
2011/11/15(火) 05:27:15.30ID:VctR7VN8俺はAzJoinImageってソフト使ってる
α付きpng対応してる
0879878
2011/11/15(火) 05:49:49.54ID:VctR7VN8カラーキーで抜いてたから気づかんかった
0880名前は開発中のものです。
2011/11/16(水) 02:20:04.24ID:UpHEAMBO0881名前は開発中のものです。
2011/11/18(金) 17:43:32.89ID:xGsbmWsYBox2DとかBulletとかあるみたいだが
0882名前は開発中のものです。
2011/11/18(金) 17:50:00.42ID:AoBJeac2そういうコンセプトのゲーム作りたいならいいんじゃね。
0883名前は開発中のものです。
2011/11/18(金) 17:50:28.94ID:dHElg5ki0884名前は開発中のものです。
2011/11/18(金) 19:03:00.19ID:kdqmHHCX大半の処理をKinematicでやったりセンサーとしてしか使ってなかったりで
結局はリアルさまったくないものになったな
0885名前は開発中のものです。
2011/11/18(金) 19:26:59.17ID:dHElg5ki面倒くさい処理を全部ぶん投げられるから楽ではあるんだけどなw
0886名前は開発中のものです。
2011/11/20(日) 02:30:05.84ID:ebcOYj+Uこれじゃ始まっていきなりドン引きされるじゃねーか
0887名前は開発中のものです。
2011/11/20(日) 06:15:25.82ID:KupbTPbD0888名前は開発中のものです。
2011/11/20(日) 11:53:55.09ID:UCBFcllZ0889名前は開発中のものです。
2011/11/20(日) 11:56:09.69ID:JrRqMQLe0890名前は開発中のものです。
2011/11/21(月) 02:22:51.56ID:M/VyhTLV連番に切り替えるのもありかもしれない
0891名前は開発中のものです。
2011/11/21(月) 03:43:28.96ID:uAwZ4Qj70892名前は開発中のものです。
2011/11/21(月) 11:14:47.59ID:ntZtxrso1コマ当たり640*480*32bit = 1.2MByte
1.2MByte * 300 = 360MB分の画像をメモリ上にロードする気か?
0893名前は開発中のものです。
2011/11/21(月) 13:11:32.25ID:GoSLz0t5そういうことは都合上できないんだけど。
0894名前は開発中のものです。
2011/11/21(月) 13:29:24.77ID:ntZtxrso0895名前は開発中のものです。
2011/11/21(月) 15:12:00.36ID:gbe2kYbP0896名前は開発中のものです。
2011/11/25(金) 17:16:42.26ID:BAy23hAgそれとも必要な時ごとにメモリを開放したほうがいいのでしょうか
具体的には
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html#R5N28
というページの以下のコードです
char Buf[ 256 ] ;はグローバル変数にするか、場面によっては使わないようにするかで迷っています。
グローバル変数のほうが絶対にいいとは思うのですが、
HPによってはグローバル変数は絶対悪だ、みたいなこともかいてあります
それそもとれは大規模な開発の場面であって、個人では問題ないのでしょうか
どちらがよいでしょうか
char Buf[ 256 ] ;
GetHitKeyStateAll( Buf ) ;
if( Buf[ KEY_INPUT_Z ] == 1 )
{
// Zキーが押されている
}
else
{
// Zキーは押されていない
}
0897名前は開発中のものです。
2011/11/25(金) 17:36:20.43ID:iXddPxkH自分の管理しやすい方でやればいい
0898名前は開発中のものです。
2011/11/25(金) 17:39:12.68ID:BAy23hAgやったー
ありがとうございます
0899名前は開発中のものです。
2011/11/25(金) 17:44:22.70ID:1SzTAqNb1関数内で収まるなら256バイト位ならスタック上のローカル変数で十分
その変数が必要ないソースから見えなきゃグローバル変数は絶対悪でもない
0900名前は開発中のものです。
2011/11/25(金) 18:14:44.87ID:GB5t8CRi出来る限り変数のスコープは小さく保つべき。
同じ変数を使いまわすと今その変数に何の値が入ってるのか把握するのが難しくなり、思わぬバグを引き起こす。
特に初期化し忘れを防ぐために可能ならば宣言と同時に初期化値を代入するのが望ましい。
ちなみにメモリの確保と解放は確かに多少重くなるかもしれんが、
最近のコンパイラは最適化が優秀でそういうのは勝手にやってくれるため気にする必要は全く無い
0901名前は開発中のものです。
2011/11/25(金) 18:17:36.24ID:9+8knjT5色々変更するかもしれないなら、コマンドクラスを作ったほうが保守性が高いんじゃないか?
0902名前は開発中のものです。
2011/11/25(金) 18:48:39.04ID:X/JXm5DVソースは俺
0903名前は開発中のものです。
2011/11/25(金) 19:50:24.03ID:girb6CSA全体の何%だよ!って部分を少しだけ速くしたところで、見た目に変わることがないというのも、やっぱり正しいと思うよ。
0904名前は開発中のものです。
2011/11/25(金) 20:07:31.31ID:iXddPxkH0905名前は開発中のものです。
2011/11/25(金) 20:16:08.85ID:0IE6eIFl自分で問題点が分からないのなら実際にやってみた上で判断すればいいと思う
歴史に学ぶか経験に学ぶか、だな
0906名前は開発中のものです。
2011/11/25(金) 20:27:54.71ID:D4NDQSDv0907名前は開発中のものです。
2011/11/25(金) 20:31:32.79ID:Aue2OhIn配列に値を一括で入れたい場合って宣言のときしか無理だよね
こういうのはグローバルにしてもいい?
それともコンストラクタか何かでループで入れていった方がいい?
0908名前は開発中のものです。
2011/11/25(金) 20:39:02.38ID:YLcAYCYjcalss KeyStatus {
private:char Buf[ 256 ] ;
public:getHitKeyStateAll(){GetHitKeyStateAll( Buf ) ;} ;
public:char getKeyBuf(int key_input){return Buf[ key_input]; }
};
とりあえずこうしとけ、クラスはグローバルにしていいから
0909名前は開発中のものです。
2011/11/25(金) 21:53:03.64ID:8iac4M0d0910名前は開発中のものです。
2011/11/25(金) 22:04:45.85ID:OU9WDBg2よろしくお願いします。
(1)
ウィンドウの右上の「×」や「Ctrl+Alt+Del」で強制終了した際に、「DxLib_End();」を実行するにはどうすればいいのでしょうか?
このような場合は、「DxLib_End();」をしなくても良かったりしますか?
今のところは異常を見たことがありませんが。
(2)
ウィンドウモードで起動して、ウィンドウを動かせるようにしたいのですが、どうすればいいですか?
「玉当てゲーム」のソースコードを読んでみているのですが、そういう設定を行う関数を呼んでいるところを見つけられないです。
関数か、ソースコードの行番号か、教えていただけませんか。
(3)
「SetWindowSize」という関数がヘッダにありました。
リファレンスには載っていません。使ってほしくない関数なのでしょうか?
0911910
2011/11/25(金) 22:06:08.08ID:OU9WDBg2言葉足らずですみません。
0912名前は開発中のものです。
2011/11/25(金) 22:21:40.39ID:hjCazteIis_push_key();
みたいな関数経由で中でBufを見るかな
0913名前は開発中のものです。
2011/11/25(金) 22:32:39.23ID:RwVxSi+4>見た目に変わることがないというのも、やっぱり正しいと思うよ。
見た目変わらないというのはそうかもしれないが、見た目以外は変わるのも正しい
以前にも言ったかもしれないが「そんな事しなくてもいまどきのPC性能なら問題ねーよ」と
よく言われるような事を実装したところ、確かに見た目は変わらなかったが
それまでうるさかったCPUファンが急に静かになった、ということがあった。
だから俺は「たとえ0.01%だろうと軽くするほうが正しい」と確信を持って主張する。
むしろ「やらなくても一緒だ」と主張する人達は実際に試して比較してもいないんだろうと思ってる。
(前述の件とは別件でそういう主張する人達に、実際に計測した結果を示して
それぞれの環境でも計測してくれるよう頼んだところ急に黙り込んだという事があった)
0914名前は開発中のものです。
2011/11/25(金) 22:36:50.46ID:b5Tmlmkb用途に因るがテーブルとして持ちたいならconst付ければOK
>>910
1. 終了時に何か特殊な動作をさせたいならそういう関数はあるがDxLib_End()を呼びたいだけなら気にする必要は無い
2. ウインドウを動かすって何?
ウインドウの位置を決める関数なら
// ウインドウモードのウインドウの位置を設定する( 枠も含めた左上座標 )
int SetWindowPosition( int x, int y ) ;
3. 説明省いてるだけで普通に使って良し
0915名前は開発中のものです。
2011/11/25(金) 22:41:14.57ID:5Y0bAE1tSetWindowUserCloseEnableFlag
SetDxLibEndPostQuitMessageFlag
0916名前は開発中のものです。
2011/11/25(金) 22:42:19.50ID:b5Tmlmkb>だから俺は「たとえ0.01%だろうと軽くするほうが正しい」と確信を持って主張する。
その主張が出来るのはコンパイラ毎の最適化の内容を熟知してアセンブラ叩ける奴だけ
組み込みには正義だろうよ
普通の開発ではソースコードがやたら難読化して要らぬバグを引き起こす事がほとんど
0917名前は開発中のものです。
2011/11/25(金) 22:44:21.25ID:8iac4M0d>ウィンドウの右上の「×」や「Ctrl+Alt+Del」で強制終了した際に、「DxLib_End();」を実行するにはどうすればいいのでしょうか?
「×」を押すなどして強制終了されるときはProcessMessage()が-1を返すので、そこで分岐すればOKだった気がする。
>ウィンドウモードで起動して、ウィンドウを動かせるようにしたいのですが、どうすればいいですか?
DxLib_Init()を呼ぶ前にChangeWindowMode( TRUE );を追加すればOK
ウィンドウサイズはここを読んでみるといいかもしれません。
ttp://www.play21.jp/board/formz.cgi?action=quote&resno=57924&id=dixq&lognum=177
私の見当違いだったら申し訳ない・・・。
0918917
2011/11/25(金) 22:45:13.87ID:8iac4M0dリロードすればよかったorz
0919910
2011/11/26(土) 01:00:02.64ID:OK82FRmW>1. 終了時に何か特殊な動作をさせたいならそういう関数はあるがDxLib_End()を呼びたいだけなら気にする必要は無い
そうでしたか。呼ばずに終了すると、何かとてつもないことになる、とどこかで見た気がしたのですが、妄想だったようです。
>SetWindowUserCloseEnableFlag
>「×」を押すなどして強制終了されるときはProcessMessage()が-1を返すので、そこで分岐すればOKだった気がする。
おぉぉ!勉強になります。
>3. 説明省いてるだけで普通に使って良し
ありがとうございます。リファレンスだけではなく、ヘッダも読むようにします。
(2)についてなのですが、私が作ったプログラムでは、タイトルバーをつかむことも、×を押すことも出来ない、というか、ウィンドウ内にマウスアイコンが入るとマウスアイコン表示が消えてしまいます。
何を言っているかわからないと指摘を受けたので、「DrawTriangle3D」のサンプルに対して、「ChangeWindowMode(TRUE);」を追記して試したところ、普通にウィンドウバーをつかむことができ、移動も×も出来ました。
どうも、おかしなことになっているようです。チェックしてみます。
ここはとても暖かいスレッドですね。また、どうぞよろしくお願いします。
0920名前は開発中のものです。
2011/11/26(土) 01:14:20.19ID:hoqn6g74そりゃ速度を改善する行為なんだから正しいさw
「やるだけ無駄」って言うやつや、実測値を見て黙るやつなんて、元からPG以外の人間なんじゃないの?
0,1%の改善を狙うよりも *先に* 他のところを高速化したほうが良いんじゃないの?とか、
ソースを難読化、定番から外れるような作り方をするだけのメリットがあるの?とかさ。
ただ、特に悪意があるわけじゃないんだけど、
冷静にツッコミを入れたり、事実のみを言ったりすると、敵対してると思われることはあるよね…。
0921名前は開発中のものです。
2011/11/26(土) 01:31:44.66ID:jFrD62uWここで「たとえ0.01%だろうと軽くするほうが正しい」と結論が出るのは変だろw
0922名前は開発中のものです。
2011/11/26(土) 01:37:10.00ID:hoqn6g74それもそうだw
誰もが見逃してたけど、致命的な部分がその0.1%から見つかることもある、くらいか?
0923名前は開発中のものです。
2011/11/26(土) 02:27:57.61ID:DhGX758L0924名前は開発中のものです。
2011/11/26(土) 10:13:58.10ID:OEZEPVDp二年くらい使うとよくあること
レス数が900を超えています。1000を超えると表示できなくなるよ。