トップページgamedev
981コメント314KB

DXライブラリ 総合スレッド その17

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2013/11/07(木) 12:40:45.76ID:qXzfRGmE
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【関連スレ】
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
ゲームプログラムなら俺に聞け29(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1381578085/

●DXライブラリではなくDirectXの質問ならこっちへ
【C++】DirectX初心者質問スレ【C】(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1370015791/
0008名前は開発中のものです。2013/11/08(金) 00:03:36.38ID:MnmZsnwx
>前スレ最後の話題

Now Loadingの画像とか最低限の開発者ロゴとかだけ、リソースに置いてる人は見たことあるなあ。
みんなはどう?
0009名前は開発中のものです。2013/11/08(金) 00:07:15.24ID:mTwGSGFT
え?前スレのやつ、dxlibのアーカイブは暗号化されてんの?
なんかバイナリでファイル連結してるだけのような気がするんだけど
0010名前は開発中のものです。2013/11/08(金) 00:08:00.82ID:gmRlKRBZ
リソースに含めるのはアイコンくらい。
0011名前は開発中のものです。2013/11/08(金) 00:08:55.37ID:WD5PKRbs
>>9
パスワード機能ついてる
パス設定するとそれをキーに簡易的にだけど暗号化される
0012名前は開発中のものです。2013/11/08(金) 00:10:19.23ID:dU6bRjuI
暗号化は自作
0013名前は開発中のものです。2013/11/08(金) 00:38:53.99ID:MwGw8INk
リソースにするとビルド時間が増える
0014名前は開発中のものです。2013/11/08(金) 01:56:03.29ID:J8WocBR8
リソースをほんのちょっといじるのに
いちいちコンパイラを入れている環境じゃないとダメというのは
意外に面倒くさい

まあ一人ならそれほどでもないか
0015名前は開発中のものです。2013/11/08(金) 02:03:56.81ID:MwGw8INk
リソースを含んだexeをVC++で開くとあら不思議
リソースが全部丸見えになっちゃいます
0016名前は開発中のものです。2013/11/08(金) 03:06:59.08ID:J8WocBR8
むしろ仕様をオープンにして「リソースを差し替えられます!」というのを売りにするのがよい
0017名前は開発中のものです。2013/11/08(金) 03:41:44.89ID:270VqRVp
そして自分が作ったものより良い物ができあがって軽くへこむ。
0018名前は開発中のものです。2013/11/08(金) 04:12:03.52ID:H/xsUfnf
むしろそれを寄付してもらうことでゲームが発展していく
0019名前は開発中のものです。2013/11/08(金) 04:14:38.56ID:WD5PKRbs
まず技術のある人が興味持ってくれるレベルのゲームを作らなきゃ
0020名前は開発中のものです。2013/11/08(金) 11:01:55.09ID:HxLZEgnX
じゃあ俺これ今作ってんだけど誰かモデル作ってくれませんか
ss見るとわかるけどなんじゃこりゃ?っていうクソモデルだし

俺がゲーム作る過程をみんなが見るスレ
http://toro.2ch.net/test/read.cgi/gamedev/1374595200/
0021名前は開発中のものです。2013/11/08(金) 11:16:15.68ID:tXXTWxQO
>>7
ありがとうございます

参考までに聞きたいのですが、透明情報を持った画像ファイルとして保存することは可能でしょうか?
0022名前は開発中のものです。2013/11/08(金) 11:35:11.34ID:WD5PKRbs
>>21
可能
SaveDrawScreenでヘッダを検索
0023名前は開発中のものです。2013/11/08(金) 17:47:34.18ID:USqa+Qjn
>>22
たびたびすいません
SaveDrawScreenというのは現在の表示画面の指定範囲のスクリーンショットを撮る関数という認識でしたが
表画面で描画されていないものor表画面で背景を無視して(保存時に透明扱い)保存することもできるのですか?
0024名前は開発中のものです。2013/11/08(金) 23:53:08.88ID:WD5PKRbs
>>23
MakeScreenを、第三引数(背景透過フラグ)をTRUEにして使い描画可能なグラフィックハンドルを作る
描画先をMakeScreenで作ったグラフィックハンドルに変更する
SaveDrawScreenでPNG形式で保存

これでいける
0025名前は開発中のものです。2013/11/09(土) 03:26:48.37ID:yzBO4YKD
>>24
スクリーンを作るときに背景を透明に出来ることを知りませんでした…
スクリーンを作って描画対象にさえしてしまえば表画面に描画をしなくてもSaveDrawScreenが使えたのですね
勉強になりました
本当にありがとうございました
0026名前は開発中のものです。2013/11/11(月) 10:06:01.56ID:370AXvA7
みんなはライブラリ関数を組み合わせて自作関数とか作ってる?
文章表示とかダメージ計算とかあると便利なのってベースとして作っておきたいよね
0027名前は開発中のものです。2013/11/11(月) 10:33:16.92ID:jWdvpYEW
>>26
ライブラリ関数の組み合わせだけ、って意味だと無いけど、そういう意味じゃ無いなら普通は作ってると思う
どういう設計でどんな内容かによって様々だけど
0028名前は開発中のものです。2013/11/11(月) 11:02:32.69ID:cvWH0Ix9
DXライブラリはライブラリであってseleneみたいなフレームワークじゃないからね
あくまで画像描画・音楽再生をする関数群でしかない
0029名前は開発中のものです。2013/11/11(月) 11:31:03.35ID:utjYUJKi
この方法は誤差が多いな
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
SetGraphMode(640, 400, 32);
if (DxLib_Init() == -1) return -1;

int n = 0;
int naka = 0;

while (!ProcessMessage())
{
ClearDrawScreen();
DrawBox(0, 0, 399, 399, GetColor(255, 255, 255), TRUE);
DrawCircle(00, 399, 399, GetColor(0, 0, 255), true);

int x = GetRand(399);
int y = GetRand(399);
int Cr = GetPixel(x, y);

n++;
if (Cr == 255) naka++;
double kekka = (double)naka / n * 4.0;
DrawFormatString(400, 0, GetColor(255, 255, 0), L"%f\n", kekka);
ScreenFlip();
}
DxLib_End();
return 0;
}
0030名前は開発中のものです。2013/11/11(月) 11:41:37.30ID:370AXvA7
Unityに浮気しようとしたけどDXライブラリのが優秀すぎて戻ってきた
0031名前は開発中のものです。2013/11/11(月) 11:51:21.41ID:cvWH0Ix9
>>29
何がしたいんだこれ
0032名前は開発中のものです。2013/11/11(月) 17:34:31.37ID:JxAP4v4F
Unity「物理演算もドロップシャドウも私だけで出来ますよ!」

ぼく「すげぇーー!!」

Unity「しかもマルチプラットフォーム」

ぼく「おおおおおお!!!」

Unity「ただし実行環境にはランタイムが必要です」

ぼく「まぁまぁまぁまぁ」

Unity「あとUIが少し分かりづらいです、ボタンとか色々機能が隠蔽されてます」

ぼく「ふむふむふむふむ」

Unity「あと色々したいなら有料です」

ぼく「はぁ」
0033名前は開発中のものです。2013/11/11(月) 18:04:43.76ID:xfhcazFM
DXライブラリはなんで無料なんだろうな
広告とかもないし…
0034名前は開発中のものです。2013/11/11(月) 19:05:06.20ID:Gh7Wuqw0
金取ってるライブラリの方が珍しいわ
ていうか、商用じゃなく趣味だから
0035名前は開発中のものです。2013/11/11(月) 22:38:17.96ID:T/wTzbta
>>33
やだ、金取れるレベルじゃないから何てとても言えない
0036名前は開発中のものです。2013/11/11(月) 22:46:00.37ID:iDVZi+zt
仮に有料になったら大騒ぎする癖にw
0037名前は開発中のものです。2013/11/11(月) 23:32:42.69ID:rJEiasgN
別に有料にしろとか、有料にするだけの価値があるとは言ってない。
0038名前は開発中のものです。2013/11/11(月) 23:52:45.92ID:wV831Mmy
金を取れるレベルとか有料にするだけの価値とか言い出す人間に限って物に金を払わない罠
0039名前は開発中のものです。2013/11/11(月) 23:55:36.44ID:AaN8ND+u
有料にするのってかなりめんどくさいと思う
決済方法の準備とかライセンス管理とか
だったら利用条件だけ明示してフリー配布、の方が気苦労が少ない
0040名前は開発中のものです。2013/11/12(火) 03:26:50.12ID:l5G1pDr3
有料のライブラリが選択肢に入らない初心者がユーザーの大半なんだから、
直接ライブラリを有料にしても購入者は増えないだろう

DXライブラリを使ってC++でゲームが作れるまでを解説した本を出したほうがまだ儲かりそう
0041名前は開発中のものです。2013/11/12(火) 07:39:34.98ID:+xSFUJKe
3Dゲームは作るの難しいなしかし
基本モーションは技として用意した方がいいのかな
座る技、ジャンプする技、走る技みたいな
0042名前は開発中のものです。2013/11/12(火) 08:26:37.03ID:bhhixlGM
モーションとモーションの区切り目を動的に合成するのなんなん?
アマチュアじゃできないの?
0043名前は開発中のものです。2013/11/12(火) 09:27:21.99ID:UFph7CEV
なんなんかと言うと、そういうけいさんするの
プロとアマチュアの、アマチュアって意味なら、だれでもちしきがあれば出来るの
Armatureの、こと言ってるならそれはおぶじぇくとのたんいの事だからできるもなにもないの
0044名前は開発中のものです。2013/11/12(火) 09:28:04.39ID:i5MC/S/3
モーションブレンドのことか
0045名前は開発中のものです。2013/11/12(火) 09:36:19.66ID:0Ic0sEF6
DxLib使えばその辺も簡単にできる
リファレンスくらい軽く目を通しておけよ
0046名前は開発中のものです。2013/11/12(火) 11:27:52.92ID:Jsj8IV/h
モーションブレンドって対応する二つの頂点の中間点とってるの?
0047名前は開発中のものです。2013/11/12(火) 12:27:55.71ID:AwSLLO2o
は?
ボーンって知ってる?
0048名前は開発中のものです。2013/11/12(火) 12:31:22.32ID:yXM5dqif
骨ええええええええええ
0049名前は開発中のものです。2013/11/12(火) 12:54:49.21ID:kOaB6T+w
>46
あんたの言っているのはブレンドシェイプ(モーフィング)に近い。
モーションブレンドとは違うもの。
0050名前は開発中のものです。2013/11/12(火) 13:44:05.30ID:bhhixlGM
あぁそうか、でもまぁ同じことをボーンでやるのでは
0051名前は開発中のものです。2013/11/12(火) 15:49:16.46ID:UFph7CEV
具体的に言うと「モーション」と呼ばれてるようなボーンの回転角の配列について、
それらの補完計算や実際のプログラムから見た扱いを知ってれば、要は行列同士の乗算って事がわかると思う。
前にDirectXやOpenGL向けにアニメーションコントロール処理書いてたので、簡単に言うとそんなかんじ
0052名前は開発中のものです。2013/11/13(水) 22:34:33.92ID:KFCIW6Ax
ところでDXライブラリでデストラクタって使うの?
全く必要性を感じない
0053名前は開発中のものです。2013/11/14(木) 00:24:32.78ID:kV2m7+Jg
なんで使う外部モジュールによってデスクトラクタの使用有無が変わると思ってるの?
さらにどうして必要性を感じないなんて考えちゃったの?
もしかして何にもわかってない人か、またはプログラミング自体した事が無い人か
0054名前は開発中のものです。2013/11/14(木) 02:40:23.47ID:qJaNVkSl
DxLib_End() とかリソース解放系の関数のことを
デストラクタと呼んでいるんじゃないかとエスパーしてみる
0055名前は開発中のものです。2013/11/14(木) 07:48:49.93ID:QLRhxonh
フレームゲームでデストラクタなんて、元々使う機会少ないだろ
0056名前は開発中のものです。2013/11/14(木) 11:25:56.08ID:QTYaRAwT
毎フレーム数十個くらいなら別にいいかなーって
0057名前は開発中のものです。2013/11/14(木) 14:45:29.04ID:hz7RN64X
書く必要性と言う意味の「使う」と
1フレームの間にそれが実行されるかと言う意味の「使われる」が混濁してる。
文脈から言えば普通は前者だと思うけど、なんか話が脱線してる。
0058名前は開発中のものです。2013/11/14(木) 22:59:46.26ID:PfRKP+M+
GetJoypadInputState( int InputType )ってR3とかL3検出できたっけ?
ライブラリ久しぶりなんだが出来なかった気がする
あと右スティックも無理だったような?
0059名前は開発中のものです。2013/11/15(金) 00:10:14.20ID:Xc7aXkVi
>>58
R3とL3はPS3コントローラのアナログ入力?
GetJoypadDirectInputStateで合計6軸(8軸?)まで取得できるみたい
多分これでいける
0060名前は開発中のものです。2013/11/15(金) 00:17:55.47ID:HAhFlsRH
アナログスティックをグリっと押し込むやつじゃないか
ボタンとして入力されてるはず

右スティック入力は___analoginputrightって関数があったと思う
0061名前は開発中のものです。2013/11/15(金) 07:44:25.04ID:BTf+kUYq
右スティックはいろいろ隠し関数があるのか
ちょっと覗いてみる
0062名前は開発中のものです。2013/11/15(金) 17:30:12.39ID:3IvdXj9h
スレチだったらごめんなさい。
「14歳からはじめるC++わくわくゲームプログラミング教室」
アマゾンレビューを確認すると、コードにも誤植があるとかで、
購入に二の足を踏んでいるのですが、いかがなものでしょう。

当方、初心者向けC++解説書のポインタで詰んだ超初心者です。
0063名前は開発中のものです。2013/11/15(金) 17:45:13.50ID:BTf+kUYq
http://toro.2ch.net/test/read.cgi/tech/1383105985/
0064名前は開発中のものです。2013/11/15(金) 18:37:55.54ID:e/ku51rt
コードに誤植程度、普通にあることだ。
0065名前は開発中のものです。2013/11/15(金) 19:14:19.14ID:FACbN+zX
本なんて読んでもわからんよ
初めて買った本がそれだった俺が言うんだから間違いない

で、俺はどうしたかっていうと本だとさっぱりだから
龍神録のコードコピペから始めて、わからないところは調べてからそこの質問掲示板で質問しまくった

超初心者っていうぐらいだから多分ポインタの有用性を理解できてないと思うから、
まずはポインタがない時の不便さを実感してみるべき
0066名前は開発中のものです。2013/11/15(金) 19:51:37.76ID:Y3ppkcZp
無手勝流で突っ込むのは時間の無駄
情強は少し金を掛けて高速道路をかっ飛ばす
0067名前は開発中のものです。2013/11/15(金) 20:19:49.09ID:l9KqClGM
金をかけて資料を得ても、要点は読んでる人間の経験値が柱になるので、
本さえあれば高速道路かっ飛べるとも限らないが…
ただその辺はどんな手段使っても同じ事なので、良い資料はどんだけあっても困らないかな

結局は自分で書いて発見や理解した事だけが、その人を作る。これ大事。
上の話の流れまったく見てないけどww
0068名前は開発中のものです。2013/11/15(金) 21:20:46.92ID:qa5VXmWy
ほとんどの人が、真似することから、始める。
自力で出来る人々は、能力が高くて天才のような人
サンプルコードに、解説があり、検証されているのは書籍。

具体的に動作するコードを提示している書籍を読んでも、何も出来ない人はプログラムに向いてい無い。
0069名前は開発中のものです。2013/11/15(金) 21:20:47.58ID:3IvdXj9h
「龍神録」確認しましたが、もっと基礎からやる必要がありそうです・・・。
まずは買ってやってみることにしました。

それで困った時は、こちらでまた質問させて頂きますね。
お答え頂いた皆様、ありがとうございました。
0070名前は開発中のものです。2013/11/15(金) 22:51:00.69ID:BTf+kUYq
なんでここでやるんだよ
0071名前は開発中のものです。2013/11/15(金) 23:18:55.98ID:atVXlg5+
ポインタで詰むとか、ライブラリ関係ねえからなあ
>>58みたいな質問ならここでやってもいいんだが、
一般的なアルゴリズムとか数学の質問されてもね
0072名前は開発中のものです。2013/11/16(土) 03:37:55.25ID:iXPw8XXT
マ板でやれよw
0073名前は開発中のものです。2013/11/16(土) 08:31:52.21ID:4X5h+WIk
ゲームなんか作ってどうするのよ
0074名前は開発中のものです。2013/11/16(土) 09:25:06.75ID:nII1oQnd
人生は暇つぶし
0075名前は開発中のものです。2013/11/16(土) 09:40:20.35ID:ck6V2deH
2chなんか見てどうするのよ
0076名前は開発中のものです。2013/11/16(土) 10:04:49.08ID:JswfCln0
どうしよう・・・
0077名前は開発中のものです。2013/11/16(土) 15:09:16.52ID:b+fe8Q/r
俺は2chに俺の生きた証しを刻む
過去ログとなってネットに、お前らのPCやスマホやタブレットに
永遠に残るのだ
0078名前は開発中のものです。2013/11/16(土) 16:27:04.52ID:iXPw8XXT
磁器の寿命は5年ぐらいなんだけど
0079名前は開発中のものです。2013/11/16(土) 16:33:04.13ID:JswfCln0
好きな画面色に変えるフェードイン・アウト関数を作りたいんだけど上手くいかない、一瞬で変わったりしちゃう・・・
どういうのがいいかな
0080名前は開発中のものです。2013/11/16(土) 16:37:31.92ID:s1OpxFMa
easingとかtweenでググれ
0081名前は開発中のものです。2013/11/16(土) 16:46:53.19ID:y5uOYLkE
>>79
メインループの速度(時間)に対して変化量をどのくらいの刻みで加算したらいいかってだけじゃないの

ゲームプログラミングで言うと、左端にいるキャラが一瞬で右端に行っちゃうって言ってるのと同じ事だと思うけど
それと考え方は同じ。ググるまでも無いでしょ
0082名前は開発中のものです。2013/11/16(土) 17:03:31.23ID:eOkrYTAI
また、構ってあげてるのか。お前ら優しいな
0083名前は開発中のものです。2013/11/16(土) 17:08:38.88ID:tTsmisRb
>>81
それは、具体的に動作するサンプルコードを提示したのがカッコいい 
0084名前は開発中のものです。2013/11/16(土) 17:27:07.47ID:JswfCln0
void fade_screen(int Red,int Green,int Blue,float FadeSpeed){
int FadeLoop = 0;
tmpR = windowR, tmpG = windowG, tmpB = windowB; //現在の輝度を代入
tmpR = Red - tmpR, tmpG = Green - tmpG, tmpB = Blue - tmpB; //いくら動かすか計算
tmpR = ((tmpR / FadeSpeed) / 60); //1/60フレームごとに変更するR輝度計算
tmpG = ((tmpG / FadeSpeed) / 60); //1/60フレームごとに変更するG輝度計算
tmpB = ((tmpB / FadeSpeed) / 60); //1/60フレームごとに変更するB輝度計算
if(FadeLoop != FadeSpeed * 60){
FadeLoop += 1;
windowR += tmpR, windowG += tmpG, windowB += tmpB;
SetDrawBright(windowR,windowG,windowB);
}
}

ごめんこんな感じでやってるんだけど
普通のキャラ移動とかは作れるんだけどこれはどうも上手くいかない
0085名前は開発中のものです。2013/11/16(土) 17:34:53.39ID:iXPw8XXT
SetDrawBright(255-R,255-G,255-B);

はい、できた!
0086名前は開発中のものです。2013/11/16(土) 18:24:29.65ID:Ds3vDvv3
マウスの右クリックと左クリックの機能を入れ替えるっていうゲーム
作りたいんですが、もちろんDXライブラリです。どうしたらいいですか?
0087名前は開発中のものです。2013/11/16(土) 18:34:17.63ID:fNdexDyw
普段左クリックで行う動作をオプションで右クリックに入れ替えるとかそんなの?
0088名前は開発中のものです。2013/11/16(土) 18:34:49.72ID:Ds3vDvv3
>>87
いや時間的にランダムに勝手に入れ替わるっていうゲーム
作りたいんです。
0089名前は開発中のものです。2013/11/16(土) 18:41:55.26ID:bEEt58va
つ関数ポインタ
0090名前は開発中のものです。2013/11/16(土) 18:44:46.52ID:fNdexDyw
うーんそれは左と右を入れ替えるんじゃなくて呼び出す関数を入れ替えるほうが速いんじゃね
0091名前は開発中のものです。2013/11/16(土) 18:56:16.81ID:JswfCln0
ここってプログラムの話禁止なんだ
0092名前は開発中のものです。2013/11/16(土) 18:59:28.11ID:Kh6EJFje
×プログラミングの話
○算数の質問
0093名前は開発中のものです。2013/11/16(土) 19:27:42.89ID:nII1oQnd
というかDXライブラリのスレ。
C++スレもあるのに、なぜかDXライブラリと直接関係ない質問が多い。
0094名前は開発中のものです。2013/11/16(土) 19:39:07.79ID:iXPw8XXT
真面目に答えたのに・・
0095名前は開発中のものです。2013/11/16(土) 20:12:50.76ID:AAZB5Zky
>>94
えっ
0096名前は開発中のものです。2013/11/17(日) 02:15:58.87ID:goUktAbP
そのアルゴリズムだけでなく関係する機能すべての何処かにdxライブラリが関与してればいいのさ
0097名前は開発中のものです。2013/11/17(日) 08:22:47.77ID:Mx4lkQGs
キーフレームアニメーションをやりたいのですが
モデルの頂点をいじるにはどうすればいいのでしょうか?
0098名前は開発中のものです。2013/11/17(日) 09:55:09.22ID:0nEVGDcc
死ねばいいと思うよ
0099962013/11/17(日) 16:37:19.55ID:Mx4lkQGs
MV1GetReferenceMeshで参照した頂点座標を上書きしてみたのですが
描画されたモデルに変化はありませんでした
参照メッシュの情報を本体(?)に渡すにはどうすればよいのかわかりません
ご教示ください
0100名前は開発中のものです。2013/11/17(日) 17:40:53.17ID:33UR56Gx
>>99
まず大前提として、メインメモリに置いたメッシュの情報は、基本的にグラボ側への一方通行。
その関数で参照出来るのはその一方通行で送り込んだコピー元の情報
=つまりそこの内容が毎回読み取られて画面に現れてる訳じゃないってのをまず踏まえて、

ただし、ここからはDXライブラリにインタフェースあるかどうかわからないが、
OpenGLやDirectXには逆に頂点情報をめCPU側のメインメモリに引っ張って来る、フェッチ関数(マップ関数)が用意されてる。
それつかえば、いわゆる「書き戻し」が出来るが基本的にこれは高コスト処理なので、
なるだけそれをしないで良い方法を考えた方がいいぜ。

それか、毎回VertexBufferから再作成とか。
0101名前は開発中のものです。2013/11/17(日) 18:39:31.85ID:goUktAbP
これ使ってゲーム作ってもゲーム会社への就職は難しいですか?
0102名前は開発中のものです。2013/11/17(日) 18:40:48.87ID:jH5qCOi6
わからん。
0103名前は開発中のものです。2013/11/17(日) 19:41:03.92ID:B9igUS9E
>>101
プログラマーや技術職としての就職は難しい
企画系ならアピールにはなる、当然結果は実力次第だが
0104名前は開発中のものです。2013/11/17(日) 20:02:55.73ID:HWTivXVU
会社ってDXライブラリとか使わないのかね
0105名前は開発中のものです。2013/11/17(日) 20:06:36.69ID:VF4Lvv8x
基本使わないだろう
0106名前は開発中のものです。2013/11/17(日) 20:07:57.05ID:AyInxElV
零細なら使うかもな。
0107名前は開発中のものです。2013/11/17(日) 20:23:10.36ID:jH5qCOi6
ちゃんとしたところなら独自のライブラリとかもってそうだしね。
■ このスレッドは過去ログ倉庫に格納されています