[過去ログ] DXライブラリ 総合スレッド その19 [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
63: 2016/05/06(金)19:13 ID:jbS1d0cx(2/2) AAS
固定するならタイマー管理なのかねぇ
最近は120Hzとかのモニタも珍しくないし

>入門サイトにありがちな経過フレーム数を1とする可変更新方式
どんなん?
64: 2016/05/06(金)21:28 ID:Grw/W8UC(1) AAS
俺も垂直同期切ってタイマー管理だな
75ヘルツのモニターで早送りになった経験があるから
65: 2016/05/06(金)22:18 ID:l2ANUrOw(3/3) AAS
固定更新のために垂直同期切ってタイマー管理はありだけど
ティアリングが気になったりしない?

>>62はちょっと分かりにくかったかな
要は垂直同期をとりながら更新をカウントしてるようなタイプね
メジャーなところだと龍神録とか
この方法は環境の違いを直接受けるし、その対処も醜くなるんだよ
66: 2016/05/07(土)01:18 ID:oS0WNQLp(1) AAS
固定にするなら、リフレッシュレート制御かテアリングか
どっちかを取るしかないんじゃないの?

>カウント
龍神録ちろっと見てみたけど分からんかった
単位時間あたりのループ回数をチェックして、それ超えそうになったらウェイト入れる感じ?
67: 50 2016/05/08(日)09:38 ID:y6rKy2Br(1) AAS
2フレームに一度スクリーンフリップをすることでゲームの進行速度が2倍になりました
ゲーム中に速度の変更がきくようになったので目的は達成し解決しました
68: 2016/05/11(水)22:20 ID:bMgn9LMw(1) AAS
外部リンク[html]:gameprogrammingpatterns.com
69: 2016/06/07(火)01:07 ID:hB66gw1M(1) AAS
垂直同期でやってるけど何故かFPSが59.9が多いんだよな
偶に60いくんだけど。龍神録のFPS管理は何故か57FPSになる
70
(1): 2016/06/07(火)11:13 ID:AssHyOle(1) AAS
もともとNTSCの垂直同期って59.94Hzだけど
今のは完全に60Pなんかね
71
(1): 2016/06/07(火)20:41 ID:wUcW1H+O(1) AAS
龍神録のところのプログラムって、垂直同期とタイマー待機を同時にやってた気がする
どっちかだけにするといいはず
72: 2016/06/08(水)16:24 ID:uqtESUHJ(1) AAS
>>70
だからか、東方だと60FPSが多いからなんでだと思ってた
>>71
龍神録のタイマー待機関数をSleepからWaitTimerにしたらいくらかマシになったけど
なぜか垂直同期を切ってFPS制御するより垂直同期とFPS制御を同時にやった方が軽くなった
73: 2016/06/21(火)16:36 ID:bN0TQeIa(1) AAS
LoadGraph等で同じ画像を複数回読み込んだときは、やはり同じ画像が複数個分メモリに展開されるのだろうか?
74: 2016/06/21(火)18:42 ID:YpRlukE1(1) AAS
うん
75: 2016/06/21(火)19:13 ID:2iYzZ5We(1) AAS
画像を改変したりして複数いるなら1回読み込んで、コピーするべき
HDD等からの読み込みは遅いから
76: 2016/07/20(水)18:57 ID:/hGHlgJA(1) AAS
垂直同期切ってもウィンドウモードだと60fpsになっちゃうんだけどこれどうにかならない?
77: 2016/07/21(木)02:55 ID:cqeRkCwh(1) AAS
垂直同期切れてないんじゃない?
78: 2016/08/03(水)16:59 ID:X+OZY+Fp(1) AAS
仮想関数の呼び出しが遅い
最初はDXlibと関係あるのかなーと思ったけどC++の仕様っぽい
みんなも気をつけろ
79: 2016/08/04(木)02:17 ID:SwoLOy80(1) AAS
自分も聞いたことあるけど、それがクリティカルになるって、
他のところがボトルネックになってたりしない?

あとは最適化オプションとかで何とかなりそうではあるが
80: 2016/08/04(木)18:34 ID:BM0zlQCD(1) AAS
関数の呼び出し速度が気になるようじゃ元々が問題だと思うんだけど
実際に通常関数を呼ぶのと速度的にはどれくらいの差なんだろう
81: 2016/08/05(金)17:45 ID:GXDTbL61(1) AAS
3Dモデルのボーンをプログラムで動かすときに、
・ボーンをワールド座標の特定の場所を向くようにしたい(カメラの注視のようにボーンを一点に向けたい)
・ボーンをワールド座標の特定の角度にしたい。例えば、ボーンを水平な角度にしたい
を行いたいのですが、
ボーンを動かすのは MV1SetFrameUserLocalMatrix でローカルの変換行列を指定する方法しかないですが
どうやればできますか?
82
(1): 2016/08/07(日)21:54 ID:0nKMuJM/(1/3) AAS
プログラムをステップ実行したときに
DXライブラリのソースにステップインするにはどうやればできますか?
Visual Studio 2013使ってます
83: 2016/08/07(日)22:00 ID:0nKMuJM/(2/3) AAS
ちなみにDXライブラリのソースにステップインしたい理由は
エラーコードが-1しかなくて、何が原因かわからなくて調べるためです
たまに挙動不審になったときの調査もしたいです
84: 2016/08/07(日)22:44 ID:0nKMuJM/(3/3) AAS
>>82は解決しました。簡単にできましたww
85: 2016/08/08(月)00:03 ID:nCWjYGMh(1) AAS
自己解決した時は、どんなに簡単であってもその方法をだな
86: 2016/08/08(月)09:58 ID:A5U2Nxs1(1/2) AAS
その方法も何もDXライブラリのソース公開されているからlibファイルの代わりにソースをプロジェクトに追加するだけやん
87: 2016/08/08(月)10:00 ID:z9kN9Vnb(1) AAS
pdbを置くだけでしょ
ステップインしたらその時にソースの場所聞いてくるわ
88: 2016/08/08(月)10:03 ID:YjIAwMDj(1) AAS
という風に、人によってやり方違うので
どんなに簡単でも手順は書いておいたほうが

それが質問した人の礼儀かと
レスしようとして自分とこで検証して回答しようとしたら
自己解決しましたの一言でしまってたりすること多いしねえ
89: 2016/08/08(月)10:12 ID:A5U2Nxs1(2/2) AAS
pdbって使い道あったのか
いつも使い道分からずに放置してたわ
90
(2): 2016/08/12(金)09:00 ID:j8xGV0qx(1) AAS
DXライブラリは3Dモデルの大きさをセンチメートルで管理するのがいいのか?
メートルで管理してカメラの Near Clip を小さくするとアウトラインやZTestがおかしくなる
91
(1): 2016/08/13(土)05:15 ID:smt/5o17(1) AAS
単位は人それぞれだけど、精度を下げりゃ描画が甘くなるのはそりゃ当然よ
92
(2): 2016/08/13(土)08:56 ID:kHkMVs63(1) AAS
Zバッファのビット深度を変更する関数があったような
デフォは16bitだから32bitとかにしてみては
93
(1): 2016/08/13(土)09:38 ID:cO1Dtflu(1/2) AAS
>>90
俺も以前同じようなことで悩んだわ
Near Clipは破綻しない程度に大きな値をとる必要があるとのこと
俺の場合は1メートル〜数万キロのレンジで幅が広すぎて単位をどう弄ろうがZバッファの深度を深くしようがダメだったんで、
ここで教えてもらった「ワールド空間を複数の距離レンジに区切ってそれぞれを描画し最後に合成する」手法で切り抜けた
おかげでカメラが物体から5メートルまで寄ろうが1万キロ離れようがあまり問題はなくなった
ただし代償として描画処理の負荷は上がったけど・・・
省3
94
(1): 90 2016/08/13(土)10:22 ID:MTyr6UWS(1/2) AAS
>>91-93
レスありがとうございます
SetZBufferBitDepthは簡単なのですぐに試してみます
「ワールド空間を複数の距離レンジに区切ってそれぞれを描画し最後に合成する」手法は
ちょっと簡単にはできなさそうですが、プロのゲームっぽいですね。すごい
95
(1): 2016/08/13(土)13:32 ID:cO1Dtflu(2/2) AAS
>>94
方法さえ教えてもらえればそんなややこしい実装じゃなかったよ

1. まずMakeScreen関数で合成用のサブ画面を作る
2. SetDrawScreen関数で作成したサブ画面を描画対象にしてその後カメラのパラメータを設定
3. SetCameraNearFar関数でカメラから一番遠いクリップ領域を指定
4. ワールド空間の物体を描画
5. SetDrawScreen関数で裏画面を描画対象にする
省5
96: 2016/08/13(土)17:10 ID:MTyr6UWS(2/2) AAS
>>95
ありがとうございます。実装できる気がしてきました
97
(2): 2016/08/23(火)06:56 ID:8oK85pQf(1/2) AAS
 すいません。 初歩的なことを教えて下さい。
 DXライブラリを3.12aから3.16d(最新版)に昨日上げたのですが、以下の様なエラーが出ます。
エラー 1 error LNK1104: ファイル 'DxDrawFunc_vs2012_x86_d.lib' を開くことができません。

 丁度ドライブが一杯になったのでそれでファイル欠損起こしたのかと、整理して落としなおして
再インストールしても変わりません。 消さないでいた3.12aに戻せば正常にコンパイルできます。
 どんなポカミスが考えられるでしょうか。
98: 2016/08/23(火)08:00 ID:ZkV35hFb(1) AAS
DXライブラリのフォルダの下を 'DxDrawFunc_vs2012_x86_d.lib' で検索して、
そのフォルダがプロジェクトのプロパティの「リンカー」の中の
「追加のライブラリディレクトリ」に設定されているか確認してみたか?
設定してなかったら設定する
99: 97 2016/08/23(火)10:52 ID:8oK85pQf(2/2) AAS
 ありがとうございます。
 おっしゃるとおりでした。
 C/C++全般のインクルードディレクトリだけ変更してリンカ全般の追加を変更していなかったのが原因でした。
 これで総て正常終了できました。
 ありがとうございました。
100
(2): 97 2016/09/16(金)19:48 ID:/GVguODS(1) AAS
DrawBox()って思った以上にコスト高なのね。
エディタ作っているのですが、マウスで指定範囲を決定するのに半透明のFilling=TRUEで
サイズが{400,200}程度になると追いついて来ないし。うちの環境だと。
まあ範囲が分かれば良いだけなので、非透明のFilling=FALSEにしましたが。
機能の根幹に必要な命令じゃなくて良かった・・・。
101
(1): 2016/09/16(金)20:42 ID:arX7j3iZ(1) AAS
ハードウェアで描画してないだけちゃうの?
102: 100 2016/09/17(土)02:14 ID:bU3etqlH(1) AAS
>>101
SetUse3DFlag()指定しなければデフォで使ってくれないの?
TRUEで明示してみたけどやっぱ重かった。
103
(1): 2016/09/18(日)05:02 ID:/gg7FKD1(1) AAS
画面全体塗りつぶすのに毎フレーム使ったりするし重いわけないと思うがなぁ
最新版では試してないけど
104: 100 2016/09/22(木)22:23 ID:j/yM3Z13(1) AAS
>>103
 すいません、DXライブラリは無罪でした。
 コード読み直していたら、離れた所から12回ループでDrawBox()してからScreenFlip()しておりました。
 そりゃ感覚とは結果が違うのも当たり前で。
 大変失礼しました・・・。
105: 2016/09/23(金)11:02 ID:grmg4z9F(1) AAS
AA省
106
(1): 2016/09/26(月)22:11 ID:gS8npJwc(1) AAS
スーファミっぽくラスタースクロールの波うつようなあのぐにゃぐにゃした表現をしたいんだけれども
DrawRectGraphで一列ずつ描画するのと
SetDrawAreaで描画できる範囲を一列ずつ変更しながら描画するのと
どっちが早いんだろう
107: 2016/09/27(火)07:34 ID:6RU/4Se1(1) AAS
どっちもクソ遅そうな気が……
ラスタースクロールのシェーダー書くのがいいが、
シェーダーはDXライブラリではちょっと敷居が高くてプログラム難しそうなのな
ボーンを仕込んだポリゴンの板に画面の画像を貼り付けて、
ボーンでラスタースクロールふうにアニメーションさせるのが楽な気がする
108: 2016/09/27(火)12:29 ID:kk2kAC73(1) AAS
10年前のPCで動くSTG(弾は500発程度)で、640*480程度なら上から一行ずつ描画でも特に処理落ちしなかった
DrawRectGraph使った

今のハードなら余裕だと思う
109
(1): 2016/10/04(火)20:15 ID:rnDdxDqG(1) AAS
SetLoopAreaTimePosSoundMem()

この関数めっちゃ便利なんだけどググっても全くヒットしなかったんだが、いつ頃からあるんだろ?
ループ開始位置と終了位置をms単位で指定できるから音声ファイルを編集する必要がなくなった
無加工のファイルでもこっちの好みでループ範囲を指定できるから
音楽ファイルはこの素材屋からDLしてねってreadmeに書いておけば配布するファイルサイズも小さく出来る

あと軽く検証しただけだけど再生中に指定しなおしても有効だったから
FF6のラスボス戦みたいに
省2
110: 2016/10/04(火)21:56 ID:HgclvPkb(1) AAS
そんなのあったのか
最後まで行ったら途中から再生、ってのは
結構前からあったの覚えてるんだが
111: 2016/10/15(土)11:32 ID:NMxKtSgQ(1) AAS
試してないけど

アンドロイドでも

動くように

なってたのね知らなかった

何処まで、動くのかな?
112: 2016/10/16(日)19:58 ID:ZsomXKa1(1) AAS
あらかじめ大きめのサイズの空っぽの画像をMakeScreenで用意しておくことの有用性に今頃気付いたぜ
これとDerivationGraphのコンビで作り直したらぐっと軽くなった
113: 2016/10/16(日)21:02 ID:ldA8bGPF(1) AAS
テクスチャ切り替えはコスト大きいからね
114
(1): 2016/10/23(日)23:02 ID:t2BOiWAY(1) AAS
>>109
 使ってみたら、ほんとにスゴイですね。
 時代がCDDAやストリーミング再生になってもう無限ループは無理なのかなーとか思っていたのだけど。
 ただWAVEで成功したのでそのデータをMP3にしたら、上手く繋がらなくなっちゃった。
 もう少しデータの作り方工夫すれば上手く行くのだろうけど。
115: 2016/10/24(月)06:53 ID:YwSDnTaO(1) AAS
>>114
MP3はこの関数に限らずループの時に違和感が出ると言われてるから
たぶんMP3の仕様の問題もあると思う

ogg形式では上手くいったよ
ただ変換の時にビットレートを固定したファイルでしか検証してないから
可変ビットレートの方法で圧縮されたoggファイルで上手くいくかは未検証
116: 2016/10/24(月)12:40 ID:GmlKA2wN(1) AAS
MP3は権利の問題があるから他の使えって言われてた時期があったね
117: 2016/10/24(月)13:10 ID:Y2gOrRK8(1) AAS
権利よりも仕様が問題だな
MP3は無音が挿入されたり余計なことされる場合が多いからゲームに使うようなもんじゃない

他の環境では手抜き実装でWindowsの再生機能に丸投げできるメリットがあるが、DXライブラリなら関係ないし
118: 2016/10/24(月)23:43 ID:UrCtC7CV(1) AAS
ループできないからだったか、昔は
DXライブラリではogg使うなとかもあったね
119: 2016/10/27(木)13:49 ID:1Lorx2LL(1) AAS
昔は BGMにはmp3, 効果音にはwav だったでしょ
120: 2016/10/27(木)15:57 ID:HwaxCMEV(1/2) AAS
116の言う通りmp3はライセンス関係が危ないということで避けられoggが推奨されていた
仕様よりもこっちのほうが重大問題
ゲーム制作関係でmp3推奨というのは聞いたことがない
121: 2016/10/27(木)17:43 ID:rFz+rXeH(1) AAS
MP3登場時にはoggなんてなかったから
Wavよりファイルサイズの小さいMP3を推奨する風潮はあったと思うけど
122: 2016/10/27(木)18:10 ID:HwaxCMEV(2/2) AAS
ogg普及前はソフトウェアMIDIが多かった
もしmp3が主流だったと思う人がいたら、その人のいた界隈はライセンス関係の意識が薄かったんだよ
まぁ00年代前半まではそういう時期でもあったけど
123: 2016/10/27(木)20:01 ID:lueiMAyc(1) AAS
市販のゲームで5000本以上販売が課金の条件だったから、フリーゲームや小規模同人では普通に使われてたよ
124: 2016/10/27(木)20:28 ID:BuMiN4CL(1) AAS
制作中のゲームにはキャラの髪型や服や装備や小物を変えるキャラメイキング(着替え)の機能があって、
今はひとつのMV1ファイルにまとめておき、フレーム表示/非表示で切り替えてるのですが、
だんだんアイテムが増えてきてファイルが大きくなってしまったので
別の方法をとりたいのですが、
キャラメイキングや着替えを実装するのに何かいい方法ありませんか?
髪型や服や装備や小物ごとにXファイルでバラバラにしておいて、Xファイルをテキスト結合するのが
楽なのではないかと思っていますが、もっと良い方法ありませんか?
125: 2016/10/31(月)19:03 ID:X+KVjoNa(1) AAS
DXライブラリのユーザーが作ってるのって
2Dゲーと3Dゲーのどっちが多いんだろ?
俺は3Dには手が出せてないんだけど
126: 2016/10/31(月)19:10 ID:8dsRDt6U(1) AAS
2D
127: 2016/11/01(火)22:09 ID:kJ7Uoghc(1) AAS
3Dは海外のゲームエンジンが無料化されてしまったので、
3Dゲーム制作者はそっちへ行ってしまった気がする
2Dだとどれもあんまり変わらない気がするが
128: 2016/11/01(火)22:26 ID:+8ot24fl(1) AAS
2Dも描画しかないDXライブラリよりもオブジェクト管理出来たりするエンジンに流れている気がする
129
(1): 2016/11/02(水)07:20 ID:/aW+4m+D(1/3) AAS
全部コードに直書きする形でならなんとか自分の思う通りに作れるようになったとは思うんだけど
さすがに会話イベント一個追加したり、マップに壺一個追加しただけで再コンパイルする必要がある状況って
なんというか我ながらアホだよね

この状況を卒業するには何を勉強したらいいのかアドバイスください
作ってるのは2DRPGで、主にNPCのイベント内容をコードの外に出すにはどうやればいいかで躓いてます

とりあえず思いついてるやり方は
セリフ表示とか効果音を鳴らすとかのイベント処理を担っている関数に番号振って引数の数を紐付けしておいて
省3
130: 2016/11/02(水)08:13 ID:8LrVjVrS(1) AAS
>>129
自分でも気付いてる通り、基本原則はコードとリソースを分離すること。

テキストファイルの読み込みと解析が出来るなら
単純なシナリオファイル(会話+αくらい)のローダくらいなら比較的簡単。
まあそれ以上に複雑なことをやるなら、素直に
既存のスクリプト言語の組み込み用ライブラリを頼ったほうが良いと思うけどね。

次点としては、ソースファイルの構成を見直して、最低限のビルドでも済むようにすること。
省2
131
(1): 2016/11/02(水)13:45 ID:/aW+4m+D(2/3) AAS
大体の方向性はこんな感じでいいんだということであれば進めていきたいんですが
躊躇している理由が2つあります

基本的に作り始める時に
クラスとかポインタとかよくわかんないけどとりあえずやってみるべ!と始めたので
配列と構造体だけで設計されてて、実は今でもクラスのことはよくわかっていません
だけどキー入力を把握すことと、変数の操作と、画像と音を自分の望む形で望むタイミングに表示再生出来るなら
自分の作りたいゲームは作ることが出来るはずだ!という考えの下で強引に作り続け
省21
132: 2016/11/02(水)15:10 ID:C/+BZRXz(1/2) AAS
2chは行頭の半角スペースやタブは無視する
133: 2016/11/02(水)15:11 ID:C/+BZRXz(2/2) AAS
途中で書き込んでしまったけど、そういうわけでコード書くときは全角スペース使って見やすく書いて
134: 2016/11/02(水)15:50 ID:/aW+4m+D(3/3) AAS
if(itemstorage[itemid]<99){
  itemstorage[itemid]++;
  takarabakoOpenFlag[takaraID]=1;
}else{
  JISAKU_serihu(1,"これ以上持てない",0);//最初の引数がしゃべるキャラ、最後のは吹き出しの形のタイプ指定
}
複数行にまたがってる部分はここだけです
省1
135: 2016/11/02(水)15:53 ID:22j5AZ4g(1) AAS
>>131
データにしやすいパターンやお約束のイベントだけをデータベース化して
特殊処理はそのままハードコートでいいんじゃねぇの
「これをデータ化したら本当に効率化されるのだろうか」と考えて
非効率になりそうだったらハードコートのまま
そんなことよりもっとプレイヤーから見て喜んでもらえることに意識を集中したほうがいい
136: 2016/11/02(水)17:31 ID:mreiywNQ(1/2) AAS
&#160;あ
この板Unicode参照出来なかった?
137: 2016/11/02(水)17:32 ID:mreiywNQ(2/2) AAS
無理か
VIPなら出来るのに
138
(1): 2016/11/09(水)13:59 ID:DtsDG8yY(1) AAS
3Dゲームでマウスをクリックした位置にある3Dモデルをできるだけ高速に取得したいのですが、
何かいい方法はありますか?
コリジョン(衝突判定)関数がありますが、当たり判定用のメッシュを用意しないといけないようなので
ちょっと手間がかかりすぎるのでできればもっと手軽な別の方法がいいですが
139: 2016/11/10(木)02:38 ID:woNsYOXh(1) AAS
他に方法無いやろ
140: 2016/11/22(火)19:00 ID:4Lu6ZO/B(1) AAS
ちょっとウンコしてくる
141
(1): 2016/11/22(火)19:35 ID:amdDwmR+(1/2) AAS
Convert Mouse Location To World Spaceでライントレースしか分からない
142: 2016/11/22(火)19:38 ID:amdDwmR+(2/2) AAS
>>141
ue4スレと間違った
143: 2016/12/10(土)02:51 ID:H338C5QI(1) AAS
しまった!お尻ふいてなかった
1-
あと 859 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.020s