DXライブラリ 総合スレッド その8
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2011/04/03(日) 17:17:11.99ID:liTmPO3jGUIのゲームを比較的容易に作成する事を可能にする、
「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/
0519名前は開発中のものです。
2011/07/01(金) 17:30:13.08ID:CaYAyuRH0520名前は開発中のものです。
2011/07/02(土) 15:46:16.84ID:0iBc3qQuありがとうございます。
なんとか出来ました。
0521名前は開発中のものです。
2011/07/04(月) 04:00:41.46ID:r/eUUGPT{
処理
}
終了
ベタなプログラムだと思うのですが、処理内容が空白でも
CPU使用率が50%から下がらなくなる状況なんですが、そういうもんなんですか?
メモリの使用量も文字列を1行字表示させるだけでも他の数十MBも利用するみたいですが(DirectXの仕様?)
0522名前は開発中のものです。
2011/07/04(月) 04:20:53.26ID:z0yvy7kK0523名前は開発中のものです。
2011/07/04(月) 05:47:24.06ID:L5T6A+EW0524名前は開発中のものです。
2011/07/04(月) 06:26:28.25ID:G6zc5/1TスリープしてないからCPUの空き時間すべて判定と処理に回される
無限ループは待機なきゃwhile内の処理空白でもCPU使いまくるぞ
0525名前は開発中のものです。
2011/07/04(月) 06:50:01.43ID:FPueCilM初期処理
SetDrawScreen(DX_SCREEN_BACK)
while(終了条件判定)
{
ProcessMessage()
任意の処理
ScreenFlip()
}
終了処理
終了
0526名前は開発中のものです。
2011/07/04(月) 07:15:14.36ID:r/eUUGPT別プロジェクトからプチ検証プログラムを用意する程度だったもので
お騒がせしました
0527名前は開発中のものです。
2011/07/04(月) 17:24:01.94ID:oYSdKTV10528名前は開発中のものです。
2011/07/04(月) 21:05:40.94ID:eFYtq/Vk0529名前は開発中のものです。
2011/07/05(火) 01:14:14.15ID:N04GYWP+線分の衝突を判定使用と思った場合
HitCheck_Line_Triangleですべての面を調べるしかない?
なんとか、全部調べなくてもいい方法ないかな?
0530名前は開発中のものです。
2011/07/05(火) 09:17:05.50ID:hroFQGoE0531名前は開発中のものです。
2011/07/06(水) 08:40:28.87ID:sZ0Jgfi/LoadDivGraph( ) ;
で細切れにして、順番に画像を呼び出すのと
画像はそのままで
DrawRectGraph()範囲指定呼び出し
どちらが良いんでしょ
0532名前は開発中のものです。
2011/07/06(水) 11:20:53.20ID:B7jikDb2その程度で速度に大差はないし使いやすい方使えば
0533名前は開発中のものです。
2011/07/06(水) 13:04:15.22ID:JfOHYSdZ機能だけみるとDrawRectGraph()は
同じアニメーションを頻繁に繰り返す用途には向かない気がするが。
0534名前は開発中のものです。
2011/07/06(水) 21:42:56.02ID:u5JKS2Ez1度しか使わないなら大差ないからどっちでもいいかと。
普通は使い分ける意味ないからLoadDivGraphで統一。
0535名前は開発中のものです。
2011/07/07(木) 07:44:54.36ID:3tEv9Vp4ブルースクリーンになって落ちました
メモリがオーバーした(メインメモリはオーバーしない程度のはずだったけど)から
ブルースクリーンになったと思うのですが
PCのスペックの限界付近になったら処理を終了
(プログラム実行を終了)という感じはできるんですかね?
0536名前は開発中のものです。
2011/07/07(木) 08:35:16.28ID:RpRfHQr4つまり、一回だけあった現象なのか、同じ処理を実行すると必ずそうなるのか。
つぎに、その「大量に記憶」ってのは具体的にどれくらい?
どれくらいのサイズの画像をいくつくらい?
もし現象が再現可能なら、いくつくらいで落ちるか大雑把には調べられるよね?
最後に、メモリがハード的に壊れてないか調べてみた?
0537名前は開発中のものです。
2011/07/07(木) 09:39:14.65ID:3tEv9Vp4確かに再現性を調べてから質問すべきでした
画像は300*300の画像を300〜400枚ぐらいでした
0538名前は開発中のものです。
2011/07/07(木) 16:57:35.61ID:4fOFO6+S0539名前は開発中のものです。
2011/07/07(木) 17:00:07.62ID:4fOFO6+S0540名前は開発中のものです。
2011/07/07(木) 19:47:51.91ID:no4toLki> PCのスペックの限界付近になったら処理を終了
> (プログラム実行を終了)という感じはできるんですかね?
あなたがそうプログラムを書けばできます。
0541名前は開発中のものです。
2011/07/07(木) 20:05:58.01ID:Uh2+G3B1限界超えたら例外吐いて終了って実装が多いんじゃね。
ブルースクリーンってことはメモリの使い過ぎじゃないよ。
使い過ぎぐらいでそんなもん出てたまるかwww
OSのパフォーマンスモニタや、グラフィックボードのその手のツールを使うと
メモリ使用量等に関しては計測可能になるよ。
というかデバッグするのにツール使わないとか時間の無駄だから。
0542名前は開発中のものです。
2011/07/07(木) 20:22:39.95ID:gmLjpCrU0543名前は開発中のものです。
2011/07/07(木) 20:25:34.99ID:lEsBB3790544名前は開発中のものです。
2011/07/07(木) 21:32:54.19ID:H/eq5eChダイレクトXの仕様なのか
意識しないと200MB近くになっている
0545名前は開発中のものです。
2011/07/07(木) 22:16:01.19ID:eWsfc5od0546名前は開発中のものです。
2011/07/08(金) 01:42:59.92ID:gc4M+pbx0547名前は開発中のものです。
2011/07/08(金) 02:05:10.25ID:ju5ZjKNL0548名前は開発中のものです。
2011/07/08(金) 03:36:01.34ID:30NOFzMm物理的にメモリが逝ってるとか、変な領域にアクセスしようとしたとか
そっちのほうが、まだ説得力あるよ
0549名前は開発中のものです。
2011/07/08(金) 05:01:38.66ID:xNQ5LdqEタスクマネージャでメモリを確認した時
自分のゴミゲーのメモリ使用量がトップになるのがなんとも・・・・
紙芝居のエロゲーでさえ100〜150MBだからな
0550名前は開発中のものです。
2011/07/08(金) 05:43:04.35ID:0JQluf0w640x480x32bitの絵を一枚で1MBかかるし
0551名前は開発中のものです。
2011/07/08(金) 07:43:57.64ID:xNQ5LdqEその紙芝居より(見た目が)ショボい自分のゴミゲーが超えるってのがなんだかな〜っとw
2Dドットアニメーションってプログラムとしては扱いやすいけど沢山出すとメモリを喰うよな
まぁ、1キャラでもアニメーション分が増えるわけだから表面的な画像量より多く喰うのは当然なんだけど
小さい物体ならいいけど大きい物体となると尚更
やはり時代は3Dなのか?
0552名前は開発中のものです。
2011/07/08(金) 08:04:40.84ID:/2PwufA98ビットとかでも高速描画できるようにしとけばよかったのに
ハードの設計から思想的に間違ってるんじゃないの
0553名前は開発中のものです。
2011/07/08(金) 08:10:27.04ID:oAgC7u488ビットは厳しいんだよなw
仕様を要求できず、こっちが仕様に合わせる
0554名前は開発中のものです。
2011/07/08(金) 09:20:33.98ID:xNQ5LdqEつまり
100x100x8と100x100x32の画像を用意しても
DirectXの処理ではどちらも100x100x32で扱われているってこと?
0555名前は開発中のものです。
2011/07/08(金) 10:39:53.34ID:h8biwSeI0556名前は開発中のものです。
2011/07/08(金) 11:41:08.38ID:fMSwvY990557名前は開発中のものです。
2011/07/08(金) 12:24:31.59ID:TCgTz1P80558名前は開発中のものです。
2011/07/08(金) 13:57:50.74ID:qpC2wWl50559名前は開発中のものです。
2011/07/08(金) 14:48:33.35ID:TCgTz1P8フルカラーで最大1/8になる。
0560名前は開発中のものです。
2011/07/08(金) 16:42:47.16ID:+kwHfdXT対応グラボなら、圧縮された状態でキャッシュに持てるんだっけ?
0561名前は開発中のものです。
2011/07/08(金) 16:49:27.82ID:TCgTz1P8テクスチャキャッシュ上では展開されている。
対応自体はGeForce3とかの時代にはもうあったはず。
0562名前は開発中のものです。
2011/07/08(金) 16:51:10.89ID:0JQluf0w0563名前は開発中のものです。
2011/07/08(金) 16:57:39.20ID:xNQ5LdqE画像ファイルそのものがこちらで選択できない場合は無理だよね?
0564名前は開発中のものです。
2011/07/08(金) 17:01:48.03ID:vjhOwbGwそれがいっぱいになるくらいテクスチャ読み込むのっておかしいだろ……
512*512フルカラー1枚でキッカリ1MBだし……
小さなゲームなら起動時に画像全読み込みもOKだろうけど、
そこまで大規模なゲームなら、画像が必要になったときに読み込んだり要らなくなったら開放する仕組みを組むべき
0565名前は開発中のものです。
2011/07/08(金) 18:05:22.70ID:XTPS3PsK0566名前は開発中のものです。
2011/07/08(金) 21:58:11.82ID:TCgTz1P80567名前は開発中のものです。
2011/07/08(金) 22:37:20.28ID:1piVrq/r画像ファイルでストリーミングってできるもんなの?
手動で順次読み込み機能を組めってこと?
参考にはならんかもしれないが
俺が知ってるDXライブラリ製ソフトで256x256の画像データを
1200個近く読み込んでいる(と思う)のあるけど
普通に動いてたよ。
何か工夫してるのかもしれないけど。
0568名前は開発中のものです。
2011/07/08(金) 22:48:42.71ID:ANMV7PRG面ごとに必要な分量を読んでるとかじゃなくて?
0569名前は開発中のものです。
2011/07/08(金) 22:59:40.82ID:0JQluf0w500MBくらいならそこらの市販ゲームでもやってるよね
VRAMに転送しすぎるとなんかやばそうな気がするけど
0570名前は開発中のものです。
2011/07/08(金) 23:01:14.52ID:xNQ5LdqE0571名前は開発中のものです。
2011/07/09(土) 00:21:03.51ID:l9Sp5oqE空間上に画像を描画したい時は
DrawPolygon3D
でやればいいんですかね。
DrawBillboard3D
は常にこっちを向いてくれちゃうみたいなんで。
こっち見んな。
0572名前は開発中のものです。
2011/07/09(土) 00:28:21.38ID:C+kMMCno描画するときは一時的にVRAMテクスチャ作って
それにコピーしてからスクリーンに描画する
0573名前は開発中のものです。
2011/07/09(土) 02:49:59.41ID:M4Li/NIF0574名前は開発中のものです。
2011/07/09(土) 04:38:53.10ID:ACvCBdpg空間上に画像を(○○で)描画したい時は、という風に使い分けるんだよ。
ビルボドードで表示したいときは、DrawBillboard3Dを使うだけ。
このへんは2Dでも同じ、というか全てにおいて同じでしょう。
0575名前は開発中のものです。
2011/07/09(土) 08:41:20.01ID:EUxsgPhf0576名前は開発中のものです。
2011/07/09(土) 13:38:11.51ID:aAP3Q2i0ときどきエラーをはくのだが、DXライブラリって
マルチスレッド対応じゃなかったの?
使ってるのはC#版です
0577名前は開発中のものです。
2011/07/09(土) 14:43:35.23ID:CiDrTx8qスレッドはエラー起こりやすい。このライブラリが原因と特定できたなら作者へ連絡すれば良い。
0578名前は開発中のものです。
2011/07/09(土) 16:53:02.35ID:aAP3Q2i0公式掲示板に再現可能なソースをつけてあげてきた。
ソースのほうに問題がありそうなら、みなさん指摘お願いします。
0579名前は開発中のものです。
2011/07/09(土) 17:28:30.71ID:BBj6JRevすぐ下にわかりやすい答えがあるみたいだが
0580名前は開発中のものです。
2011/07/09(土) 18:27:07.84ID:WzYTa9jFちょっと込み入ったことやろうとするとすぐ強制終了する
しかもエラーコードとかなくてエラー時にには関数が-1を返すだけだからそれ以上調べようがないしうんこすぎぶりぶり
0581名前は開発中のものです。
2011/07/09(土) 18:39:01.11ID:OlJ0mON70582名前は開発中のものです。
2011/07/09(土) 18:59:38.72ID:CiDrTx8qC#はしらんが。C++のコードない?
C++だったらデバッグて゜きるんだけども。
0583名前は開発中のものです。
2011/07/09(土) 19:01:55.39ID:gbiBau/k具体的に書いてみ、そしてソースコード添付。
そいから、あなたの動作環境を提示(PCハード情報、OS情報、など)
再現性のある情報を提供してくださいね
0584名前は開発中のものです。
2011/07/09(土) 19:22:46.74ID:7E7LKpx70585名前は開発中のものです。
2011/07/09(土) 21:01:44.35ID:BdkS/RBRモチベーションがあがらない
0586名前は開発中のものです。
2011/07/09(土) 21:59:58.74ID:S04z7kMsまったく使えなかったので諦めたな
0587名前は開発中のものです。
2011/07/09(土) 22:02:30.71ID:aAP3Q2i0ありがとん、マルチスレッドで使っちゃだめなのね
だとすると、データのロードとか初期化の作業とか
みなさん、どんな風に組んでるの?
0588名前は開発中のものです。
2011/07/09(土) 22:07:30.91ID:C+kMMCno最近出たDirect3D11の特徴がマルチスレッド対応だし。
DxLibのAPIを呼ぶのはメインスレッドのみに制限したほうがいい
0589名前は開発中のものです。
2011/07/09(土) 22:08:12.81ID:g5MhzaFIttp://www.dotup.org/uploda/www.dotup.org1773432.jpg
途中で色々浮気しながら2年目突入
0590名前は開発中のものです。
2011/07/09(土) 22:08:26.78ID:CiDrTx8q名前:管理人 日時:2010/03/29 06:45
描画を行うスレッドは一つにする必要があります。
MV1SetPosition や MV1SetAttachAnimTime や当たり判定などの描画を行わない関数は複数のスレッドから同時に呼んでも問題ありません。
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1693
0591名前は開発中のものです。
2011/07/09(土) 22:10:11.77ID:CiDrTx8q0592名前は開発中のものです。
2011/07/09(土) 22:15:02.27ID:GHbNRazyダンジョンRPGだと……
発表時期によってはウチの作品のライバルになりそうだ
0593名前は開発中のものです。
2011/07/09(土) 22:15:40.92ID:63ssXNtP早く解決レスつけてこいよ
つか質問する前に過去ログくらいあされよクズ
0594名前は開発中のものです。
2011/07/09(土) 22:17:28.85ID:GkFpt5d83Dモデルとかも作成してるんですか?
0595名前は開発中のものです。
2011/07/09(土) 22:18:25.06ID:CiDrTx8q{
// メモリに読み込んで消すだけ
int temp = DX.LoadGraph("testpatan02.png");
DX.DeleteGraph(temp);
}
0596名前は開発中のものです。
2011/07/09(土) 22:29:57.16ID:CrPOQxPl未だに2Dしか使えない俺はこの先困りそうだな……。
0597名前は開発中のものです。
2011/07/09(土) 22:33:27.59ID:aAP3Q2i0>>590をみると。データの読み込み(DX.LoadGraph)と書き込みと
描画(DrawBoxとDrawString)を同時にやるのが問題みたい
これにより、オレの「動いてかっこいいロード画面計画」は頓挫したわけだ・・・・
普通に止め絵でロード画面作るけどね。
0598名前は開発中のものです。
2011/07/09(土) 23:14:25.71ID:v39Ln4AB0599名前は開発中のものです。
2011/07/09(土) 23:16:30.04ID:CiDrTx8qデータロード中に0%から100%に動く表示をしたいのか?
C#はしらないが公式掲示板のソースは、無数にスレッドを生成してないか?
0600名前は開発中のものです。
2011/07/09(土) 23:19:41.25ID:CiDrTx8q自分はこのライブラリ使ったことないがな。
0601名前は開発中のものです。
2011/07/09(土) 23:21:27.72ID:rjwb63Qw複数のスレッドで描画関係の関数呼ぶのが問題なわけだから、
読み込みと書き込みは別スレッドでやりつつ描画を1つのスレッドでやるのは問題ないんじゃないの?
0602名前は開発中のものです。
2011/07/09(土) 23:31:05.71ID:g5MhzaFIそこまでできちゃうとデータ作ったりするのに疲れて色々浮気しちゃうんだよね。
>>592
あと5年は完成しないと思うよ。
>>589
メタセコイアで壁とか床だけ作ってる。
0603名前は開発中のものです。
2011/07/09(土) 23:44:29.00ID:BdkS/RBRなんかもっとド派手な技だしてる画像とかの方がモチベーション上がったと思う
つかこれ、マップ表示のフィールドの形と目で見るフィールドの形がちょっと
違うようにみえるけど、まあ開発段階は皆そんなもんだろうね
0604名前は開発中のものです。
2011/07/09(土) 23:53:17.74ID:g1lEDun2マップに表示されてないという画像に見えるが・・・
0605名前は開発中のものです。
2011/07/10(日) 00:36:21.93ID:/rmDdMzo俺も中学生の頃作ったからなつかすいわ
0606名前は開発中のものです。
2011/07/10(日) 00:37:22.88ID:GuydunEL小さい人形ならできるかもしれないけど。
壁とかエフェクトを3D化なら少ししてみた。
それから3Dでのαブレンドがトラウマになった。
結局、ポリゴンが交差したらZソートしてもダメなんだろ?
面倒だから今のところ3Dエフェクト類は全て加算合成。
減算合成もなんか上手くいかないし、仮対応らしいしな
0607名前は開発中のものです。
2011/07/10(日) 00:44:01.45ID:01esqUG5シンボルがテカテカ光ったり、SDキャラがテクテクあるいたり・・
スレッドは、以前に作ったスレッドが動いていないときだけ、動くようにしてるんで
本スレッドいがいは読み書きをするスレッドが1つ常に動いてる状態になってるサンプル
>>600
それができたら、オレのサンプルは普通に動いてるよ
>>601
それが、ロードと描画も同時にやってはいかんらしい
たぶん、ロードに使うポインタと描画に使うポインタが一緒とか、
そういうことなんじゃないかな?DXライブラリのソースは読んでないから
詳しくはしらないけど。
0608名前は開発中のものです。
2011/07/10(日) 00:46:51.56ID:SCPUfUzIいくらでもサンプルあるんだから少しはググろうぜ。
0609名前は開発中のものです。
2011/07/10(日) 00:50:38.80ID:AsfALi2Jモチベがどうとか言うって事は、自分でも作ってるんだろ?
他人のものを見るより、自分のスクショを上げるべきだろ。
0610名前は開発中のものです。
2011/07/10(日) 01:46:33.14ID:CZHVbp3+自分のスクショでモチべ上がるわけないだろ
自分の思い描いているプレイ画面のスクショがあれば相当上がるけどな
さあ、君も上げるんだ
0611名前は開発中のものです。
2011/07/10(日) 02:01:48.22ID:THomY2B3お前がスクショ上げて俺のモチベーション上げろよ
0612名前は開発中のものです。
2011/07/10(日) 02:42:30.34ID:SCPUfUzIこんな絵に描いたようなクズいるんだなww
言ってることがまさに>>611だわなwww
0613名前は開発中のものです。
2011/07/10(日) 03:00:53.66ID:3Tl4GfZp1.メモリにデータを読み込む(読み込み終わるごとに2のスレッドにメッセージを投げる)
2.読込アニメーションと1で読込完了したデータをDXライブラリで設定(CreateGraphFromMem等を使う)
というようにスレッドを分ければいい
ただスレッドをきちんと理解できていることが前提。理解できていないのなら止め絵一択
0614名前は開発中のものです。
2011/07/10(日) 03:03:21.51ID:TYJrbX/o0615名前は開発中のものです。
2011/07/10(日) 04:54:48.53ID:AsfALi2Jそもそも俺の作ってる2Dゲームなんて画像データ少なくて、ロードも一瞬だからそんな処理する必要もねぇw
0616名前は開発中のものです。
2011/07/10(日) 05:07:42.66ID:/IRNi55m2Dゲーでもドットアニメーション絵を大量に呼び出すと一瞬固まるぜ
0617名前は開発中のものです。
2011/07/10(日) 07:18:41.12ID:QkTwsDNd>動いてかっこいいロード画面計画
よほどでかいデータじゃなきゃロード処理中に定期的に画面更新するだけでも十分だったりするよ
0618名前は開発中のものです。
2011/07/10(日) 10:36:48.69ID:kBLtZUSr■ このスレッドは過去ログ倉庫に格納されています