1read 100read
2012年1月1期ゲ製作技術25: DXライブラリ 総合スレッド その11 (410) TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
26: Windowsゲームプログラミング 質問スレ (839)
27: ニート、無職、フリーターがゲームを作るスレ2 (363)
28: 四次元ゲーム作らないか?? (659)
29: 【もはや】ギャルゲを作りたくなったスレ【病気】 (125)

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


1 :11/12/03 〜 最終レス :12/01/09
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「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/
DXライブラリ 総合スレッド その10
http://hibari.2ch.net/test/read.cgi/gamedev/1313655495/

2 :
とりあえずたてた

3 :
おつ

4 :

……ったく980あたりが立てとけよー、と確認してみたら980俺じゃん(´・ω・`)

5 :
スレ立て乙
いつの間にか物理演算系の機能が追加されてたのか

6 :
物理演算きたのか
DXライブラリへの依存が高まるが、今更高められないが、高めたいが・・・、

7 :
フォントが上手く使えないです
どうしたらよいでしょうか
ソース(一部)
fonthundle = CreateFontToHandle( "S-Simple" , 20 , 20 , DX_FONTTYPE_ANTIALIASING_EDGE ) ;
DrawFormatStringToHandle( 100 , 100 ,GetColor(255,255,255) ,
fonthundle , "abcABC Thequickあいう123" ) ;
http://or2.mobi/index.php?mode=image&file=18468.jpg
出力
http://or2.mobi/index.php?mode=image&file=18469.jpg
こういうフォント
http://or2.mobi/index.php?mode=image&file=18471.jpg
インストールは住んでいます
http://or2.mobi/index.php?mode=image&file=18472.jpg

8 :
>>7
フォントの名前が正しくないかも。指定する名前はコンパネからみられるフォント名ではなくて
例えばIEのインターネットオプション→フォントで表示されるようなフォント名
そもそもサイズ的にフォントに日本語が入っていないと思うので、ひらがなは描画できないかと
この関数失敗してもエラー返さないし、直接フォントファイルそのものを指定できないみたいだから
配布のときに難がありそうだね

9 :
色んな効果音簡単に出してくれる機能欲しい
効果音あるだけでかなり違った

10 :
>>9
ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_sound.html#R8N4
こっから下にあるLoadSoundMemとかの関数じゃダメなの?

11 :
用意したもの読み込むんじゃなくてその場で効果音作ってくれる機能
文字の色とか指定するみたいに

12 :
2Dゲーなら、DXライブラリの物理演算に頼る機会は少なそう

13 :
>>11
それはプログラムライブラリの範疇じゃないよ。
素材集から欲しいのを見つけるとかしないと。

14 :
>>11>>13
物理演算ってのは、物体の動きをトレースするだけじゃないんだぜ

15 :
実行ファイルに画像をリソースとして埋め込んだ場合
DeleteGraphしても開放されませんか?
タスクマネージャで見ててもDeleteGraph前後でメモリ使用量が変わらないんですが

16 :
物理エンジンのBullet組み込んだみたいだけど
まだPMDファイル形式のみの対応だよね?
自前ワールドに登録とかもまだできね?

17 :
ブラーをお手軽に着けれる関数が欲しい

18 :
よし、FrontHook()関数を実装しよう

19 :
バックバッファを2枚用意して
1枚目に通常に画像を描画、
2枚目に1枚目を拡大描画して表画面にflipしてるんですが、
アルファブレンドをしようと思って1枚目を2枚目に拡大描画する直前で
SetBlendMode(DX_BLENDMODE_ALPHA, alpha);
をやると透過しません。
これはバグでしょうか。
1枚目に通常描画するときに
SetBlendMode(DX_BLENDMODE_ALPHA, alpha);
すると透過するんですが、
これだと背景とキャラクターの両方が透過されてキャラクターの位置に背景が描画されてしまうので
2枚のバッファを使ってます。

20 :
キャラクターの位置に背景が表示されるとかわけわからん

21 :
あ、できました。勘違いだったようです。。

22 :
言ってる事がわけわからんので最小構成のソース上げろ

23 :
すまん、リロードしてなかった

24 :
SetWindowSize関数で、画面のサイズを480*480に設定したのですが、横方向に縮小されたように描画されてしまいます。
何が原因なのでしょうか?

25 :
>>24
何が原因というより、そういう関数なんじゃないの?
あと、関係あるかどうかわからんけど、貼っとく。
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R4N1

26 :
>>25
そうだったのですか。
諦めて640*480のサイズで作る事にします。

27 :
ちゃんと読めよ

28 :
>>27
変な勘違いしていました。
SetGraphMode(480,480,32);で出来たのですね。

29 :
モデルの読み込んでハンドルを返す関数
モデルの角度、座標をハンドルで指定して偏向する関数
モデルのハンドルを指定すると格納されている角度、座標を自動的に読み込み3D2D変換までして描画する関数
自由度全くないじゃないですか〜(´・ω・`)

30 :
キャラクタクラス作ってメンバ変数にキャラクタ座標や角度とかのパラメータを持ちたいときどうするの?
メンバ変数とハンドル先で二個持ってパラメータは隠蔽するの?

31 :
モデルはモデル
キャラクタクラスはモデルを表示させるだろうけど普通はモデルを持たない
単純にキャラクタクラスに座標や角度もたせて
モデルを任意の設定で表示させるだけ
画像なんかと同じにように捉えた方が良い
あと同じモデル使うなら読み込んだモデルのハンドルからハンドル作るほうがいい
専用の関数がある
3D扱うならカメラ系もすごく大事

32 :
じゃあキャラクタクラスメンバ変数にはモデルの通し番号をもたせる形で保持して置いて
描画の直前にそのキャラクタメンバ変数から座標や角度を指定する、て感じ?

33 :
なんでマスク機能ってまだ残ってるんだろう
ZBufferの下位互換だから必要なくね

34 :
>>33
まあ、ライブラリなんてそういうもんだ。
いわゆる「俺ライブラリ」ならともかくな。
ところで、Zバッファってマスクの完全上位互換だっけ?

35 :
>>11>>13
亀だけど、昔のマイコンのBASICにあった
PLAY "CDEFGAB"
みたいなのは出来るかもしれんね。

36 :
MMLなつかしいな。

37 :
>>32
まあ、そんな感じか
メンバ変数にm_handle、m_pos、m_angle(ラジアン)があるとして
// 3Dモデルを移動
MV1SetPosition( m_handle, m_pos ) ;
// 3DモデルのY軸の回転値を変更
MV1SetRotationXYZ( m_handle, VGet( 0.0f, m_angle, 0.0f ) ) ;
// 3Dモデルを描画
MV1DrawModel( m_handle ) ;
とか、
公式リファレンスのモデル基本制御関数を試していけばいんじゃね
俺は変換用行列に適用していってMV1SetMatrix、MV1DrawModel使ってる
カメラも同時に試すようにすれば理解しやすいかも

38 :
誰か自分の過去作品を貼ってくれ
何かゲームがしたい

39 :
自分自身の過去作品やればよくね?

40 :
>>38
本当にやってくれんの?
クソクオリティでも叩かないならやってほしいね
http://romgameblog.blog33.fc2.com/?no=28

41 :
やってみるか

42 :
というかURLがあやしいわw

43 :
というか、3Dの描画形式もうちょっと変えられるようにしたい
遠近感無くすとか3点描写みたいに極端にゆがませるとか
表示座標でなんとかなるか?

44 :
>>43
具体例ある?
正射影ならDxLibでいけるから
SetupCamera_Ortho使えば遠近法ではなくなる
3Dを2D的表現にしたいとか?

45 :
>>44
エースコンバットのアフターバーナーとか

46 :
歪ませるのはfov
確かdxlibにもあったはず

47 :
いや、DXlibで3D作るのやめろって
3Dなら素直に別の使ったほうがいいって

48 :
それは同意できるんだよなぁ
軽く試すだけなら恐ろしく簡単にできるが
まともな3Dゲーム作ろうとすると他のライブラリより難易度上がる
3Dの描画形式変えるとか
それはもうエフェクトの範疇じゃないか?
シェーダー勉強したほうが幸せになれると思う
>>46
fov? fog?

49 :
というか3d作るのならdirectX 直接いじった方がいい?

50 :
基本2Dゲーで、美味しいところだけ3Dをつまみ食いする使い方ってアリ?

51 :
DirectX直接はおすすめしねえw
一から勉強するってんのならOpenGLのがいんじゃね
OpenGLいじったことないから適当に言ってる
2Dゲーで3D使うんならDxLibでも全然ありかなぁ
どんなものかによるだろうけど
3Dのツール作るほどじゃないのなら労力マシだろうし
DxLibは物理エンジン(Bullet)を一応組み込んであるから期待はしてる
>>48で書いたのは現時点では・・・ってことね
そういやBulletは2D物理のほうにも対応してたか
BulletのLinearMathの計算系つかうのはありかもしれんね
クォータニオンと回転行列とベクトルの連携はありがたい
DxLibに反映させるときは右手左手の変換処理いるけど

52 :
>>48
FOVも知らんのに語るなよ
DXLIBは難しいというよりDXLIBでやる恩恵が特に無い
結局レンダリングだのポストエフェクトだの気にした時にデバイスが隠蔽されているデメリットだけが発揮される
それなら自分で直接DirectX叩いた方が早い

53 :
>>52
すまん、FOVで思いつくのが視野角しかなかったんだ

54 :
視野角で合ってるよ
アフターバーナーみたいな歪ませ方ならデフォルトで60のFOVを90くらいにしてあげればいい

55 :
ポストエフェクトについては
最近追加されたFilter系関数+αで
間に合っちゃうケースもありそう。

56 :
じゃあ見下ろし型のシューティングで、画像を上下左右適用させるのがめんどくさいからモデル使う、ってのはアリ?

57 :
ネビュラスレイ的なプリレンダで良いんじゃないか?
3D生かした陰影エフェクト重ねるとか演出で視点移動するならともかく

58 :
2DでBulletを使う場合ってどうやるの?
カメラ設定などを調整して見た目は2Dになるようにするとして、基本的に3D空間としてゲームを作る感じだろうか。
自前で組み込んだBox2Dから移行するメリットがあるなら、ちょっとやってみたい。

59 :
>>56
俺はアリだと思う
現に今現在その方式で途中まで作ってる

60 :
>>54
視野角は普通に使うことにしか頭になかった
勉強になったわ
>>56
やったことないから以下想像
3Dの座標は変えず、対象ごとに
SetCameraScreenCenterで表示位置変えてやるなら2Dっぽくできそう?
これだと3Dの利点がかなり失われる
3D座標で動かして単純にカメラが画面中心をみるようにしてると
同じキャラクターでも画面の位置によって見え方が変わる
東方等を参考にするなら自機はちょっと前に傾いてる状態等
自機等のモデルを傾けとけば良いきもするけど
演出でカメラアングルを変更する場合とかは試行錯誤いりそう

61 :
>>60
そのための正射影

62 :
>>61
thx
ゲームルール2Dで3D表示面白そうやね

63 :
もしかして実行ファイルに画像データを埋め込んだ場合って
起動時に実行ファイルを読み込んだときとプログラム内で画像データをロードしたときとで
1回分余慶にメモリを消費しますか

64 :
みんな魔法とかヒットのエフェクトどうしてる?

65 :
>>64
どうって?

66 :
>>65
テクスチャかいてぱらぱらアニメがいっぱんてきなのかなーと

67 :
前スレ読め

68 :
最近3Dで生成してレンダリングする技術と代物を手に入れた

69 :
そういうツールあるよね
シェアソフトだったりするけど

70 :
ポリゴンにテクスチャはっつけるのどうやるんですか?
ミクのモデル読み込んで表示したら真っ白で泣ける

71 :
指定されたテクスチャがちゃんと配置されてないんじゃ

72 :
配置の仕方がわからないんじゃ

73 :
人のソースでクラスとかはCEnemyとか頭にCが使われていることが多いけど
mEnemyとかm_Enemyとかは何の記述なんだろうか

74 :
メンバー変数のm

75 :
過去のソース見てると構造体なのにm付けっぱなしだったりする(汗

76 :
>>74
なるほどthx
解説や本は使ってる関数すら名前の付け方の解説ないよな〜

77 :
ハンガリアン記法でググると詳しくわかると思うよ
最近はだんだん人気なくなってきてるみたいだけど

78 :
C#なんかだとthisを書くことが多いしね

79 :
DXライブラリはハンガリアンに即してるな
俺はクラスのCとメンバのm_だけ採用してる

80 :
モデルハンドルってどうやって保持するんだ?
モデルのロード

キャラクタークラスからモデル情報の代入

描画
ってしたいんだけど
モデルロードを毎フレームやってしまうので、
モデルクラスのメンバ変数に代入

表示するモデル番号をキャラクタークラスから貰う

モデルクラスのメンバ変数とモデル番号をswitchで分岐して描画
(orポインタ配列でmodelhundle[modelnum]を直接描画関数にぶち込む)
ぐらいしか思いつかないんですけど、
非効率だったりしませんか?

81 :
くそ〜ちゃんと完成品のソースどっかで見れないかな〜
解説とかは簡易的だし実用レベルで実装されたり全体の構成とかわかんねぇ
サンプル組み合わせたサンプル+程度が限界だぁ

82 :
14歳からの〜シリーズとか?
中規模にちょい足りない、未満程度の規模のサンプルにはなるかな?
ちょい古いかな?

83 :
公式のポンと玉当てにソース入ってなかったっけ

84 :
全体の構成といってもループの中で条件分岐してそこで必要な関数呼ぶだけだろ?

85 :
>>81
サンプル+程度が限界だと完成品のソース見ても多分何も分からんぞ
俺も初めて完全なオブジェクト指向のC++見たときは何がなんだか全くわからなかったし

86 :
読み込み、初期化、計算、描画の流れを
タイトルメニュー、ステージセレクト、ゲーム部分、といったシーケンス遷移を含めた
枠組みにぶち込む基本的な設計が作れなくてなぁ

87 :
FPSのDoomのソースならメインループでも1000行以下で初心者の俺でも読めた

88 :
>>86
俺そういうの全部キャラクターにしちゃった。
「タイトル画面」という自機を動かして、
ステージセレクトを選んだら「ステージセレクト」という自機を作って、「タイトル画面」という自機を消して、って感じで。
以前はそれぞれ別の処理にしてたけど、こうやったら機能追加や削除が簡単になった。

89 :
DXライブラリを使うけれども、
std::coutやprintfのようなstdoutを利用することって出来ないでしょうか?
Visual C++を使ってプログラムを組んでるのですけど、
デバッグ中は、CUIでcoutを使ったレコード出力を繰り返したいのですが、やりかたが全くわからないです。
おとなしくstd::ofstreamして、tail -f するしかないでしょうか?

90 :
printfDxじゃ駄目なのか?

91 :
>>90
ログを残したいんじゃないの?

92 :
>>89
Windowsアプリケーションじゃなくて、コンソールアプリケーションとしてビルドすれば
コンソールウィンドウが表示された気がする。
プロジェクトのビルドターゲット?だったかな?
そこを変えてみては?

93 :
できるね
コンソールアプリにしてmainから
WinMain呼び出すだけ

94 :
>>87
1000行もあるのかよ

95 :
メインループwhile()より上の行にデータのやりとりするポインタをずらって並べる設計なんだけど、不効率かな

96 :
>>95
もーちょいくわしく

97 :
main(){
data_t *pdata;
while(){
switch(state){
case INI:
pdata=ini();
state=GAME;
break;
case GAME:
hoge(pdata);
break;
}
}
}

98 :
アプリを複数起動できなくするにはどうすればいいでしょうか?
DXライブラリ的な質問ではないですか?
Visual C++ 2010を利用しています。
よろしくお願いします。

99 :
98です。申し訳ありません。
ぐぐったらそれっぽいのがみつかりました。わからなければ再度出直して質問させてください。
どうして質問の前にぐぐるしなかったのか自分でもわかりませんが、眠いのかもしれないので寝ます。
本当に申し訳ありませんでした。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
・ 次のスレ
26: Windowsゲームプログラミング 質問スレ (839)
27: ニート、無職、フリーターがゲームを作るスレ2 (363)
28: 四次元ゲーム作らないか?? (659)
29: 【もはや】ギャルゲを作りたくなったスレ【病気】 (125)