■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

【C++】 DirectX初心者質問スレ Part10 【C】
251 名前:244 :2006/08/17(木) 04:57:34
>>250
メッセージボックスはエラーが起こったことを知らせるために
自分で呼び出しているものなので、メッセージに意味はありません。
if(FAILED(pD3D->CreateDevice(〜))) {
MessageBox(〜);
}
みたいな感じです。

252 名前:デフォルトの名無しさん :2006/08/17(木) 06:07:26
自己解決しました。

HRESULTが単なるbool値モドキではなく、
失敗の原因毎に返す値が違うということを>>248-249のおかげで思い出す。

メッセージボックスにHRESULTの値を表示させて
原因を特定するべきだと>>250のおかげで気づく。

D3DERR_INVALIDCALLが返されていることが判明。
メソッドのパラメータに無効な値が設定されているかもしれない。
引数のウィンドウハンドルかD3DPRESENT_PARAMETERS構造体が怪しい。

D3DPRESENT_PARAMETERS構造体を
ZeroMemoryでクリアするのを忘れていたことに気づくorz

単純ミスですみません。皆さんに感謝します。
これは、単にインスタンスを宣言するのとnewによる動的生成を行うのでは
メンバ変数の初期化のされ方が異なるということですかね?
この辺りに詳しい方は是非教えてください。

253 名前:244 :2006/08/17(木) 06:08:17
一応。>>252は私です。

254 名前:デフォルトの名無しさん :2006/08/17(木) 13:22:31
>>248

途中か元々か

255 名前:デフォルトの名無しさん :2006/08/17(木) 15:36:10
Xファイルから読み込んだ3Dのオブジェクトが全て表示されず
腹や腕の一部がすっぽり抜け落ちたり、体が半分無くなってしまう事があります。
輪切りにしたソフビ人形みたいな状態です。

小刻みにオブジェクトの座標を変えながら試行錯誤してたのですが
もしかしてDirectXの3Dの座標の空間には「負の領域」は無いのでしょうか?

256 名前:デフォルトの名無しさん :2006/08/17(木) 16:01:06
>>255
ポリゴンが裏返ってない?

257 名前:デフォルトの名無しさん :2006/08/17(木) 16:09:29
カビゴンが寝返りうってない?

258 名前:デフォルトの名無しさん :2006/08/17(木) 16:33:16
DirectXのデバック版と製品版を両方インストールしてしまって、
製品版が使えません。誰か助けてください。

259 名前:デフォルトの名無しさん :2006/08/17(木) 16:46:57
デバッグ版と製品版で速度差があるとか寝言こいてるバカは何なの。
全然ないのを見せても理解できる頭がない

260 名前:デフォルトの名無しさん :2006/08/17(木) 17:00:07
Control Planel でDebug用ランタイムにしてデバッグレベル上げると流石に速度は落ちるけどな。

261 名前:デフォルトの名無しさん :2006/08/17(木) 17:11:46
長い初期化が終わって、ようやくゲームできるぜいと思ったら
Debugランタイムのままになっていて重ス!みたいなのってあるよな。開発機が一緒だと。

262 名前:デフォルトの名無しさん :2006/08/17(木) 18:38:36
>>252
> これは、単にインスタンスを宣言するのとnewによる動的生成を行うのでは
> メンバ変数の初期化のされ方が異なるということですかね?

(暗黙の) 初期化? C/C++ には、そんな便利な機能はないよ。

「自動変数も動的に確保した変数も内容は無茶苦茶になっている」

と思ってプログラムしないとダメだよ。

(静的変数とかは別ね。)

263 名前:デフォルトの名無しさん :2006/08/17(木) 20:00:03
>>252
> これは、単にインスタンスを宣言するのとnewによる動的生成を行うのでは
> メンバ変数の初期化のされ方が異なるということですかね?

初期化のされ方は同じ。この場合はD3D〜構造体のデフォルトコンストラクタ
(=何もしない)が呼ばれて、何も初期化されてない。

ただ領域を確保する場所が違うから、そこに入っていた値によって
たまたま上手く動いたり、動かなかったりしたのでは。

264 名前:デフォルトの名無しさん :2006/08/17(木) 21:13:32
桐たんすとインスタンスと良いんでございますって似てるよね

265 名前:デフォルトの名無しさん :2006/08/17(木) 21:23:20
DirectX12!!!!!!!!!!!!!

266 名前:デフォルトの名無しさん :2006/08/18(金) 04:43:03
MeshTextureCoordsって、頂点に対するUV何ですよねぇ。
かなり不便な気が

267 名前:デフォルトの名無しさん :2006/08/18(金) 18:01:36
すみません。質問なのですが、DDSファイルを作るためにdirectX utilitiesの
中のDirectX Texture Toolを起動しようとしてるのですが、
Unable to create Direct3D Device. Please make sure your desktop color depth is 16 or 32 bit.
と出ました。画面の色も32ビットにしています。
texture作れなくて困ってます。何か他に起動しない理由とかありますか??
よろしくお願いします。

268 名前:デフォルトの名無しさん :2006/08/18(金) 18:04:30
16bitカラーも試してみたか?

269 名前:デフォルトの名無しさん :2006/08/18(金) 18:05:18
>>268
レスどうもです。。16ビットも試してみました。。

270 名前:デフォルトの名無しさん :2006/08/18(金) 20:08:15
DirectXのサンプル動いてるの?

271 名前:デフォルトの名無しさん :2006/08/18(金) 20:21:05
>>270
DirectX9のデモのドーナツというのを試してみました。
動いてました・・・orz

272 名前:255 :2006/08/18(金) 20:45:39
自己解決しました
プロジェクション変換してないのが原因でした…orz

273 名前:デフォルトの名無しさん :2006/08/18(金) 21:04:01
>>267
メモリ足りないんじゃね?
画面狭くしてみたら?

274 名前:デフォルトの名無しさん :2006/08/18(金) 23:07:56
C++でD3Dを使う場合
一番楽なのはELでFA?

DirectX9.0cのサンプル見ながら一日かけてキーボード入力した方向に動くだけの物が出来た。
けどこんなペースじゃゲーム開発する前にDirectX10が出そうだよ…

275 名前:デフォルトの名無しさん :2006/08/18(金) 23:19:09
>>267
OSはWindows2000?XP?
XPに変えたら動いたような気がする。それかバージョンアップか。


276 名前:デフォルトの名無しさん :2006/08/18(金) 23:27:31
>>274
ELってのが何か知らんが、これから勉強するなら他人が作ったラッパーとか
使わないほうがいいよ。変なクセがつくから。

単純に楽してゲーム作りたいなら、何もDirectXにこだわらなくても
OpenGLっつーメチャ簡単なライブラリがあるし。

277 名前:デフォルトの名無しさん :2006/08/19(土) 00:02:32
>>274
実際のゲーム製作だって土台がしっかりしてる分何をやるにも込み入った手続きがいるぞ。
ショボそうなステータス画面作るのだってどんなに全力疾走しても1週間以上はかかる。

1日でキー入力で動くとこまでいった?
もうゲームなんてできたも同然だろw

278 名前:デフォルトの名無しさん :2006/08/19(土) 00:15:29
elは始めて触るには確かに良いけど、すぐに物足りなくなる
DXライブラリも同じくらい簡単。こっちは更新もサポートもしてるから俺はオススメ

279 名前:デフォルトの名無しさん :2006/08/19(土) 00:19:00
D3DXが一番マシ。
ただしSpriteとFont系は使うな。

280 名前:デフォルトの名無しさん :2006/08/19(土) 00:19:50
xファイル内のアニメーション読んで再生するのが難しくて萎える。DX行こうかな・・

281 名前:デフォルトの名無しさん :2006/08/19(土) 00:20:55
>>279
なんで????

282 名前:デフォルトの名無しさん :2006/08/19(土) 00:21:57
>>267
Unable to create Direct3D Device.
でググると一番最初に出るぞ。もし、これだったらググレカス

283 名前:デフォルトの名無しさん :2006/08/19(土) 00:24:13
新しいSDKじゃSpriteは改善されてるけど、あれより速いの作れる奴なんて何人いるやら

284 名前:デフォルトの名無しさん :2006/08/19(土) 00:31:46
>>283
速い?
なんで「速い」なんて言葉が出てくるのか疑問。
速さ求めるところですか?
また、速さ要求するところで使える仕様ですか?
頭空のくせにテキトウなこと言わないでくださいよw

285 名前:デフォルトの名無しさん :2006/08/19(土) 00:34:20
某2D同人STGでスプライト描画が重い重い言われてんだから
速さは求められてんじゃね

286 名前:デフォルトの名無しさん :2006/08/19(土) 00:43:47
>>285
使い手がアホなんだろ。
不透明のフィルレートどうにかして速くならなかったらもうどうしようもねぇって。
だしたらだした分だけ重くなる。頂点数なら気にするな3Dゲームと比較したら気にするほど無意味だろ。
それがライブラリちょこっと変えただけで速くなった程度の速度じゃ、
万人(といっても限度はあるが)の環境を考えたときにその速さに意味のあることかどうかなんて普通わかるだろ?

287 名前:デフォルトの名無しさん :2006/08/19(土) 01:04:17
アホみたいに敵弾やら煙やら出しまくるゲーム見る限り
「普通わかるだろ?」に頷けはしないな。
実際どれくらい違うのか白黒つけたいならソース出すしかないだろう

288 名前:デフォルトの名無しさん :2006/08/19(土) 01:10:02
>>287
じゃあ、いいだしっぺのお前が出せや。

289 名前:デフォルトの名無しさん :2006/08/19(土) 01:13:00
無闇に噛み付いているアホがいます

290 名前:デフォルトの名無しさん :2006/08/19(土) 01:20:23
だいたい弾幕っつったってDirectXのパーティクルのサンプル超えるぐらいの数だすわけ?
そりゃとっても綺麗なSTGできてんだろうなw

291 名前:デフォルトの名無しさん :2006/08/19(土) 01:37:31
あとで最適化すればいいやとか思って、最初は
パーティクル1個がごとにワールド行列セットしてDrawPrimitiveしたんですよ。
それで、開発が進む中で、アニメ機能とかスクリプト機能とか
ビルボードだけでなくスキンメッシュも扱えるとか、
デザイナーらの要望通りに高機能なパーティクルシステムを組んでいると、
いつの間にか、もうとうにもならなくなっていたんです。

292 名前:デフォルトの名無しさん :2006/08/19(土) 01:50:18
DirectX9を使ってプログラムを組もうとしているのですが
どうやら僕のPCにはデバイスが無いみたいです。
あれやこれや調べていたらどうやら設定を変えるなり
ドライバをインストールすればどうにかなりそうな情報を得ました。が方法がわかりません。

私SOTECのS2120Cを使っております。XPです。

デバイスを入れるって言うのでしょうか?
をしてDirectXを組めるようにするにはどういった
設定が必要でしょうか?

293 名前:デフォルトの名無しさん :2006/08/19(土) 01:51:54
>>290
マジレスすると桁違いの数描いてると思われるゲームはある

294 名前:デフォルトの名無しさん :2006/08/19(土) 01:52:36
日本語でおk

295 名前:デフォルトの名無しさん :2006/08/19(土) 02:08:07
>>293
そんな市販にもありそうにねぇの想定して何がしてぇの?そいつ。
320X240でフィルレート気にしない生活送れよって感じだ。

296 名前:デフォルトの名無しさん :2006/08/19(土) 02:25:16
>>295
なんか嫌なことでもあったのか?
それとも元からそんな性格なのか?

297 名前:デフォルトの名無しさん :2006/08/19(土) 02:29:07
はいはいジェネレーションギャップジェネレーションギャップ

298 名前:デフォルトの名無しさん :2006/08/19(土) 02:36:58
確かに市販にもなさそうなもの想定してるのには疑問だな。

299 名前:デフォルトの名無しさん :2006/08/19(土) 02:40:24
>>290
ポイントスプライトとポリゴンばら書きを一緒に扱っちゃいかんのだろうが、
それってそもそも表現の方法論が明後日の方向向いてるから、そーいう目に会うってだけなんだよな。
1000枚を2000枚に増やしたところで見た目のリッチさが倍になるわけでもないだろうに、
なんでそんな方向ばっかり努力すんだろうか。

つか、実際どんだけ書いたら重いなんてことになるんだか、正直ぴんとこないんだが、
コード見せてもらったら

・メッセージループがBUSYループでCPUぱっつんぱっつん
・描画命令の発行が1ポリゴン単位
・色々理論武装している割には、頂点バッファのダブル、トリプル化等を試みた形跡はなくロックしまくり

なんてオチだったりするのも、よくある話。
フィルレートフィルレート言いながら、テクスチャ単位のソートもしてないから
フェッチ時のキャッシュミス頻発しすぎで重くなってたりとか。
フィルレート以前の問題ちゃうんかと。

300 名前:デフォルトの名無しさん :2006/08/19(土) 06:43:32
>>299
そんなので遅く感じるようなことも俺はないと思うんだがな。
だいたい、その上の3つの奴だって気が付かずに組んでたら気にならない速度はでるでしょ?

>フィルレートフィルレート言いながら、テクスチャ単位のソートもしてないから
>フェッチ時のキャッシュミス頻発しすぎで重くなってたりとか。
あと、これ↑もシェーダ使いまくりでも問題無く動くのに
こんなの気にする必要ってあるわけ?
また、気にしてゲーム組めるの?普通に描画順優先じゃないの?
テクスチャ毎にソートする意味ってそんなにある?

301 名前:267 :2006/08/19(土) 06:58:37
>>282
まさかソースをいじらなくてはいけないとは・・・
ほんと困ってたんです。ご教授ありがとうございました。

302 名前:デフォルトの名無しさん :2006/08/19(土) 07:28:18
まあ描画順に並べれば大体は同じテクスチャで固まるだろうしな。

303 名前:デフォルトの名無しさん :2006/08/19(土) 11:43:01
>>300
いや、気にしなくても最近のマシンなら相応の速度は出るが、
逆にこの程度のことを対策しないで速度のこと気にするのは
どっか前提が間違ってるって話。
シェーダ類を大量投入するような描画表現するんでも、多少は気にしたほうがいいぞ。

・メッセージループがBUSYループでCPUぱっつんぱっつん

これはただのプログラムミスだし、

・描画命令の発行が1ポリゴン単位
・色々理論武装している割には、頂点バッファのダブル、トリプル化等を試みた形跡はなくロックしまくり

これは描画内容の性質にもよるが、同じテクスチャ上のスプライトを大量に操作するなら
頂点バッファをCPUで加工して一括描画した方が通常断然速いのが普通だし、

>フィルレートフィルレート言いながら、テクスチャ単位のソートもしてないから
>フェッチ時のキャッシュミス頻発しすぎで重くなってたりとか。

これもカードの性能差でどうとでもなるように見えるけど、閾値を越えると隠蔽されないコスト。
それこそ1000枚が2000枚程度の違いにはなる。
とはいえ、違ったからなんだ?ってこと。

いずれも普通に作ってればテクスチャがあっちゃこっちゃ行った描画は無いだろうし、
ちょっと気をつければどうとでもなることだしなー。

304 名前:デフォルトの名無しさん :2006/08/19(土) 14:09:01
ていうかパーティクルのサンプルって前のSDKに入ってたモーションブラー付きの奴だろ?
あれぐらい余裕で超えてるゲームは本当にいくらでもあるはずだが。

もしDirect3D10のを指してるのなら知らん

305 名前:デフォルトの名無しさん :2006/08/19(土) 14:38:27
知らんなら余計な口出しすな

306 名前:デフォルトの名無しさん :2006/08/19(土) 14:59:45
>>303
俺はそんなの気にするより先にやることいくらでもあると言ってるんだがな。

307 名前:デフォルトの名無しさん :2006/08/19(土) 15:06:13
いや、そういうと話が違う方へいくからやめるか>>306は撤回。

なんつーかね。
意味無いんだよ。
そんなの。
一体、いつの知識で止まってるの?
テクスチャでソートってマテリアルソートやるってことでしょ?
こんなの意味無いの。意味無ーし。前から描画してフィルレート稼いだほうがよっぽど速くなるよ。
いまどき1つのモデル内でテクスチャの切り替えが頻繁に起こるのに馬鹿な発言もいい加減にしろよ。
お前、バンプマップすら組んだことねーだろ?ん?

308 名前:デフォルトの名無しさん :2006/08/19(土) 15:45:05
>307
なんか嫌な事でも(ry

309 名前:デフォルトの名無しさん :2006/08/19(土) 18:43:21
現実をみるべき。
ここの住人のうち6割は弾幕シューティングか2D格闘を作ってる。
2割がちっさい技術デモ専門で、あとはただの初心者いじり。
だからニーズに合ってるんだよ

310 名前:デフォルトの名無しさん :2006/08/19(土) 18:49:58
と、調べもしないで根拠のない自分勝手な妄想を語る人が確実に一人。

311 名前:デフォルトの名無しさん :2006/08/19(土) 19:08:44
まとめると、
材質、テクスチャはまとめておけ。
しか言って無いじゃん...。



312 名前:デフォルトの名無しさん :2006/08/19(土) 20:15:59
ttp://www.nomuraz.com/denpa/prog004.htm
ここの中ほどにある『DirectX9のアニメーションな話』の『読みやすく整形する所からはじめましょう。』以下にあるサンプルを触っています。
ビルドすると
CAllocateHierarchy Alloc( this );  で
'CAllocateHierarchy' : 抽象クラスをインスタンス化できません。
というエラーが出るのですがどう解決すればいいのでしょうか。
VC++.net 2003、DX2006Aug です。

313 名前:デフォルトの名無しさん :2006/08/19(土) 20:23:55
>>311
俺は不必要ならまとめるなといいたい。
まとめた時点で前から描画という後ろにあれば
「描画しない」というもっとも単純でかつ最速の方法ができなくなる。
それに物体が離れたときにまとまってると今度は片方はクリッピングで完全にはじいてしまえるのに
まとめてしまっているためにクリッピングができないこともある。

314 名前:デフォルトの名無しさん :2006/08/19(土) 20:49:06
要するに、Zバッファを活かす派と、ステート変更を最小にする派の争いか
俺も前者の方が楽だからというだけで前者かな

315 名前:デフォルトの名無しさん :2006/08/19(土) 20:56:56
俺は軽い描画パスでZバッファを埋めておいてから残りの描画をする派。

316 名前:デフォルトの名無しさん :2006/08/20(日) 00:03:03
VMR9のレンダーレスモードを試してみたんですが、
なんかムービーに、メインのゲームの描画がチラチラ混じるんですよ。
やりたいことは、単に普通のムービーテクスチャなんですけど、
うまく同期をとる手段はないでしょうか?
SDKのAllocaterサンプルのような形にメインループを大変更するのは嫌なんですけど・・・



317 名前:312 :2006/08/20(日) 04:07:29
312のサンプルではなくDirectXのサンプル(C++\Direct3D\SkinnedMesh)は正常にビルド出来たのでそれを自分のプログラムに組み込もうとしたのですが、
>error C2664: 'StringCchCopyA' : 1 番目の引数を 'WCHAR [256]' から 'char *' に変換できません。

>error C2664: 'D3DXCreateEffectFromFileA' : 2 番目の引数を 'WCHAR [260]' から 'LPCSTR' に変換できません。
などのエラーが出ます。
組み込むと言ってもファイル自体をコピーしてソースファイルとして追加しただけなのですが、これら以外に何か設定が必要なのでしょうか。
古いサンプルで時々上記のエラーを目にすることがありますが、
作った人は問題ないのにこちらでビルドすると引数で異常が出るとか・・・今回はDirectXのバージョンは同じなのになんでだorz

318 名前:デフォルトの名無しさん :2006/08/20(日) 04:13:50
>317
ヒント:UNICODE

319 名前:デフォルトの名無しさん :2006/08/20(日) 15:33:51
俺はDXUtil.hがないって帰ってくるな

320 名前:312 :2006/08/20(日) 16:41:18
>>318
レスありがとうございます。
文字セットという項目があったのですね。
とりあえずUnicodeとマルチバイト共に対応できるようTCHAR等に変換していく作業を行っていきます。
あまり利点・欠点が掴みきれていないのですが、
アプリが海外向けでない場合はマルチバイト文字セットで開発を行って問題ないのでしょうか。

>>319
過去のSDKに入っているDXUtil.hを持ってくれば通りました。

321 名前:デフォルトの名無しさん :2006/08/20(日) 16:52:04
過去のSDK・・・
誰かDXUtil.hうpしてくれ・・・・

322 名前:デフォルトの名無しさん :2006/08/20(日) 17:15:24
>>321
適当なうpろだでスマソ
ttp://vipper.jpn.org/www/upload/src/VIPphoto10573.zip



323 名前:デフォルトの名無しさん :2006/08/20(日) 17:51:01
毎回思うんだけど、SDK開発者はアホなのか?
自分の環境で一度SDKを抜いてもう一度インストールして動くことを確認してからリリースしろよな。
もう、個人で適当に修正して確認もしないでリリースしてるようにしか見えない。

324 名前:デフォルトの名無しさん :2006/08/20(日) 17:53:59
ただで提供してやってんだよ
嫌なら使うんじゃねーよということですよ

325 名前:デフォルトの名無しさん :2006/08/20(日) 17:59:22
d>>322

326 名前:デフォルトの名無しさん :2006/08/20(日) 18:17:33
互換性を気にするなら何でOpenGL使わないの?

327 名前:デフォルトの名無しさん :2006/08/20(日) 22:23:45
ものすごく生産性が下がると思ふ

328 名前:デフォルトの名無しさん :2006/08/21(月) 00:26:16
>>84の状態なんですが、skinnedmeshで読み込むとこんな具合です。(http://www.uploda.org/uporg485985.jpg
>>85-86は具体的にどういったふうにやれば良いのでしょうか?
どなたかご教授願います。

329 名前:デフォルトの名無しさん :2006/08/21(月) 00:43:42
QBで検索かけたら>>5 >>43 >>187の3人上がったからドラゴンフライの3人バージョンやるか(何か名前があった気が・・・)
>>5を中心に>>43を走らせ>>187でガンガン攻める。
アイシールド21の真竜寺?のラン・パス・スクリーンやphoenixのopt.Sweepとか・・・
で俺はライン志望な

330 名前:デフォルトの名無しさん :2006/08/21(月) 00:44:17
激しく誤爆スマソ

331 名前:デフォルトの名無しさん :2006/08/21(月) 02:44:04
>>328
マトリクスにしとき

332 名前:312=317 :2006/08/21(月) 04:17:44
たびたび申し訳ありません。
DX2006AugのC++\Direct3D\SkinnedMeshのソースをUnicode版から汎用版(TCHAR等)に変換する作業をしています。
調べつつ置換するだけですので問題ないと思っていましたが、肝心の置換するものが不明なのがありました。

>error C2664: 'MultiByteToWideChar' : 5 番目の引数を 'TCHAR [512]' から 'LPWSTR' に変換できません。
>error C2664: 'WideCharToMultiByte' : 3 番目の引数を 'LPCTSTR' から 'LPCWSTR' に変換できません。
>error C2664: 'CommandLineToArgvW' : 1 番目の引数を 'LPSTR' から 'LPCWSTR' に変換できません。
[MultiByteToWideChar][WideCharToMultiByte][CommandLineToArgvW] この3つの関数を何に置き換えるべきなのでしょうか。

合わせて
WCHAR* dest;  を
TCHAR* dest;   に変えると「定義されていない識別子」とエラーが出ます。
dest等に入れる値はTCHAR*型ですので通るはずなのですが、別の表記にしないといけないのでしょうか。


333 名前:デフォルトの名無しさん :2006/08/21(月) 04:20:49
君にはDirectXはまだ早いんじゃね?

334 名前:デフォルトの名無しさん :2006/08/21(月) 04:33:27
MultiByteToWideChar や WideCharToMultiByte が何を
する関数か調べた?

これらの関数が何のために使われているかが分かれば、
どうすればいいのか判るはず。

335 名前:デフォルトの名無しさん :2006/08/21(月) 04:34:11
つか、関数名を見れば調べるまでもないなw

336 名前:デフォルトの名無しさん :2006/08/21(月) 05:54:59
みんなUnicode対応ってしてる?
外人も使うツールを作る仕事をしてるとかなければ
自己満足に終わったりしない?

337 名前:デフォルトの名無しさん :2006/08/21(月) 06:02:41
スレ違い

338 名前:デフォルトの名無しさん :2006/08/21(月) 06:04:23
DirectXもこれからはUnicode対応が当たり前。
スレ違いと言うほどのこともない。

339 名前:デフォルトの名無しさん :2006/08/21(月) 06:06:44
>>338
それをいったらほとんどのスレでOKな話題になってしまうわけだが

340 名前:デフォルトの名無しさん :2006/08/21(月) 06:15:44
Unicode対応なんて当たり前だろ?
難しいことなんて何も無い。

341 名前:デフォルトの名無しさん :2006/08/21(月) 07:14:12
めんどいからちゃー

342 名前:デフォルトの名無しさん :2006/08/21(月) 08:03:02
>>336
俺は外人も使うツールを作っているがマルチバイトでしか作ってない。
多言語を同時に使うのでなければUnicode対応は必要ないな。
文字列は全てリソースに入れて日本語と英語を用意してある。

たまに勝手に中文リソースとか追加されて再配布されてたりする。

343 名前:デフォルトの名無しさん :2006/08/21(月) 18:46:47
 そもそも外人だって彼らが普段使っているローカルなコード体系で
テキスト処理をしたい場合が多いわけで、Unicodeを押し付けるよりは
OEMCPとかシステムのロケールとかで処理する方が適切なことも多い。


344 名前:デフォルトの名無しさん :2006/08/21(月) 18:57:31
シェーダーと、シェーディングって同じ意ですか?

345 名前:デフォルトの名無しさん :2006/08/21(月) 19:06:51
バッターとバッティングって同じ意ですか?

346 名前:デフォルトの名無しさん :2006/08/21(月) 22:21:28
>>336
どっちでもコンパイル出来るようにしてるけど?

347 名前:デフォルトの名無しさん :2006/08/21(月) 22:45:29
OS的にUnicodeがネイティブだから

348 名前:312=317 :2006/08/21(月) 22:46:55
レスありがとうございます。
お蔭様でなんとかビルドエラーは解消されましたが、実行でエラーが出たのでサンプルを元に1つ1つ解消していくことにしました。
しかしまたエラーが出てしまい、調べても解決出来ませんでしたので手を貸していただけないでしょうか。

2006Augのサンプル[C++\Direct3D\SkinnedMesh]をフォルダごと[d:\test\]以下にコピーし、変更を行った結果

>error C2859: d:\test\skinnedmesh\debug\vc70.pdb は、このプリコンパイル済みヘッダーが作成されたときに使用された pdb ファイルではありません。プリコンパイル済みヘッダーを再作成してください。 (ファイル)SkinnedMesh
のエラーが出ます。
エラー元はCommonフォルダ内の各ファイルに記述されている「#include "dxstdafx.h"」のようです。
変更は
・ソリューションエクスプローラー [Common]フォルダのファイルとアイコンの相対パスを下記に修正
  C:\Program Files\Microsoft DirectX SDK (August 2006)\Samples\C++\Common\(ファイル名)
・プロジェクトの追加ディレクトリを上記に
です。
リビルドやDebugフォルダを削除したりしているので前のビルド結果が残っていることはありません。
サンプル「SkinnedMesh」を同じ階層に「SkinnedMesh2」としてコピーし、
ファイルの相対パスに別の場所に置いたファイルにするとこの時点で上記のエラーが出ます。
他に変更する点があるのでしょうか。
尚、現在文字セットはサンプルと同じくUnicodeです。



349 名前:デフォルトの名無しさん :2006/08/22(火) 01:13:43
>>348を無視して悪いが、このスレ的にはVC2003って結構現役?
wfstreamのコンストラクタがwchar_tのファイル名を受け付けてくれなくてビビった。
VC2005に慣れてると、UNICODE対応も結構細かなところで蹴躓くね。
つっても上のくらいのもんではあるけど。

>>348のは、その、なんだ。
悪い、誰か親切な奴答えてあげてくれ。

350 名前:デフォルトの名無しさん :2006/08/22(火) 10:02:10
X ファイルから読み込んだ3Dオブジェクトを移動させようとしています。
移動量を行列で与えることで目的を達成するというのはぼんやりと判ってきまして
ワールド行列に値を渡して移動や回転をすることはできるようになりました。
しかし個々のオブジェクトをバラバラに動かすことができません。

D3DXMatrixTranslation で移動用の行列を作成した後、
それを Direct3DDevice->SetTransform で登録することで移動を実行している様で
SetTransform の第一引数に D3DTS_WORLD を渡すとワールド行列の値を変更できます。
最初は、D3DTS_WORLD の代わりに個々のオブジェクトを示すポインタか何かを渡せば
それらのオブジェクトを動かすことができるのかと思ったのですが、
ヘルプで調べたところ、引数の型が合わないために無理だと判って行き詰りました。

ネットでサンプルを探しても、一枚のポリゴンや一つのオブジェクトを動かしているだけのサンプルしか見つけられず
次にどんな関数や型について調べるべきなのかもさっぱり判らなくなりました。
どなたかヒントをお願いします

351 名前:デフォルトの名無しさん :2006/08/22(火) 10:54:54
>>348 = >>349
っぽいからスルー

352 名前:デフォルトの名無しさん :2006/08/22(火) 18:23:49
今DXライブラリというものでゲーム作ってるものですが
DXライブラリ→DirectXという手順でプログラミングを学んだ方いらっしゃいますか?

353 名前:デフォルトの名無しさん :2006/08/22(火) 20:41:17
ここにいる

354 名前:デフォルトの名無しさん :2006/08/22(火) 20:43:08
DXが3Dをサポートしたら完璧なんだろうな。

355 名前:デフォルトの名無しさん :2006/08/23(水) 00:14:00
DX→DirectXというアプローチが効率的かは疑問だがな。

356 名前:デフォルトの名無しさん :2006/08/23(水) 00:35:27
画面のサイズが640*480で
0,0,0の位置を中心にして640*480*1の箱があります
角度はまっすぐで箱の正面を画面にぴったりと表示するには

カメラとプロジェクションを何処に設定すればいいですか?

357 名前:デフォルトの名無しさん :2006/08/23(水) 00:52:28
Transform.View = Matrix.LookAtLH(new Vector3(0.0f, 0.0f, 240.0f), new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f));
Transform.Projection = Matrix.PerspectiveFovLH(Geometry.DegreeToRadian(90.0f), 640.0f / 480.f, 0, 240.0f);

テキトー

358 名前:デフォルトの名無しさん :2006/08/23(水) 01:18:57
>>353
DXとDirectXの相互関係が良く分からないんですが…
Directを使いやすくするために関数などを個人的に作ったのがDXなんですよね
自分はDXを細分化したものがDirectであると解釈しているんですが…

また、DXで一通りSTGが作れたとしてDirectXで同じようなものを作れるスキルまで
到達するのには目安何ヶ月くらい必要ですか?

359 名前:デフォルトの名無しさん :2006/08/23(水) 02:07:17
DirectXの知識が一切ない状態から色々なビデオカードへの対応+
安定した動作+フルスクリーンの切り替えやデバイスロスト時の処理まで
ちゃんとやるなら3ヶ月じゃ足りないと考えといた方がいい。

RenderStateやSamplerState関係もちゃんと理解しないと思い通りに絵を出すのも面倒だ。

360 名前:デフォルトの名無しさん :2006/08/23(水) 08:11:32
>>357

微妙にずれるだろ

361 名前:デフォルトの名無しさん :2006/08/23(水) 10:06:16
>>350
オブジェクトごとにSetTransform

D3DXMatrixTranslation(&mat1,x1,y1,z1)
SetTransform(D3DTS_WORLD,&mat1)
描画

D3DXMatrixTranslation(&mat2,x2,y2,z2)
SetTransform(D3DTS_WORLD,&mat2)
描画




一緒になってるけど、計算部分と描画部分はきちんと分けるように


362 名前:デフォルトの名無しさん :2006/08/23(水) 10:45:49
だが、計算→描画→計算→描画の方が効率はいい。

363 名前:デフォルトの名無しさん :2006/08/23(水) 10:47:59
それホントか?

364 名前:デフォルトの名無しさん :2006/08/23(水) 10:48:26
環境による

365 名前:デフォルトの名無しさん :2006/08/23(水) 11:06:55
いかにブロックを減らすかが大事だな。
DrawPrimitiveは基本的に描画キューにつっこんでGPUに投げるだけだから、
描画完了までブロックしない。

バッファのロックや、Presentの時に描画完了待ちが入る。

完全に分離できるなら、「Present()→描画Req→計算」が速いとおもはれ。

366 名前:デフォルトの名無しさん :2006/08/23(水) 11:57:18
こればっかりは何を書いてるによるとしかいいようが

367 名前:350 :2006/08/23(水) 12:02:58
オブジェクトごとにワールド行列を持たせればいいのかという所まで見えてきたのですが
相変わらず、「座標を示す行列」と「オブジェクト」を関連付ける方法がわかりません。
>>361の mat1 , mat2 というのは単なるD3DXMATRIX型の変数だと思うのですが
これらの値がきちんと個々のオブジェクトを指してくれることが納得できないです。
D3DXMatrixTranslation , SetTransform , あと DrawPrimitiveUP という関数にも目を付けましたが
D3DXMATRIX 型データやD3DVECTOR3 型データを渡すことはできてもメッシュを示すポインタ等は渡せないし
これらの関数の持ち主が個々のオブジェクトであるという訳でもなさそうです

368 名前:デフォルトの名無しさん :2006/08/23(水) 13:26:32
>>367
チュートリアルは一つもとばさず、きっちり動作確認して完璧に終わらせたのか?

369 名前:デフォルトの名無しさん :2006/08/23(水) 14:02:07
>>367
お前さんがC/C++で開発しているものとみなして
定義したオブジェクト構造体(クラス)の中でオブジェクトの三次元座標(x,y,z)をがあると思うが
更にその中にD3DXMATRIX変数を保持すればいいじゃん

CLASS OBJECT{
float x,y,z;
D3DXMATRIX mat;
}object;

CLASS *p=&object;

移動ルーチン
void Update(CLASS *p)
{
移動処理
D3DXMatrixTranslation(&p->mat,p->x,p->y,p->z);
}


描画ルーチン
void Render(CLASS *p)
{
SetTransform(D3DTS_WORLD,&p->mat);
描画処理
}


370 名前:デフォルトの名無しさん :2006/08/23(水) 15:12:55
>>359
ありがとうございましたm(_
参考にさせて頂きます

371 名前:デフォルトの名無しさん :2006/08/23(水) 21:22:57
>>360

仕様

372 名前:350 :2006/08/24(木) 10:46:36
お騒がせして申し訳ありません
個々の描画の前にワールド行列の設定を持ってくることで、ようやく動くようになりました
ありがとうございました

373 名前:デフォルトの名無しさん :2006/08/24(木) 22:02:23
お礼などいらない。古参がつけあがるからな

374 名前:デフォルトの名無しさん :2006/08/25(金) 22:42:40
まあ、結果報告は大事だよ。

375 名前:デフォルトの名無しさん :2006/08/25(金) 22:51:46
質問です。本のサンプルをタイプして動かしてみたんですが、
特にエラーが出ないのに、何も描画されません・・・orz
多分、相当アホなことをしていると思うので、ご指摘ください。

ファイル:
ttp://www.uploda.org/uporg492177.cpp.html



376 名前:デフォルトの名無しさん :2006/08/25(金) 23:02:38
EndScene後にPresentするんだ!

377 名前:デフォルトの名無しさん :2006/08/25(金) 23:23:35
>>376
動きました!ありがとうございます。
やっぱり初歩的なミスorz


378 名前:デフォルトの名無しさん :2006/08/26(土) 00:52:26
ホントに初歩的なミスなのかね?

379 名前:デフォルトの名無しさん :2006/08/26(土) 20:58:34
VisualC++6.0、DirectX8使ってます
3Dで、パースを無効にする方法を教えてください

380 名前:デフォルトの名無しさん :2006/08/26(土) 22:56:58
pd3dDevice->SetPerspective(NULL);


381 名前:デフォルトの名無しさん :2006/08/27(日) 00:33:21
>>380
IDirect3DDevice8のメンバーではありませんって言われてコンパイルできません

382 名前:デフォルトの名無しさん :2006/08/27(日) 00:52:09
パースペクティブ云々の説明ならBBXで「パースペクティブ」で検索すれば結構記事がでてきてたよ。

もしかしてこんな↓感じ・・・
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=37&vew=331

これはBBXで「パースペクティブ」で検索してでてきた記事の一部だけど
他にもあるかもしれないから全部みてきてほしいな。

383 名前:デフォルトの名無しさん :2006/08/27(日) 01:14:38
正射影

384 名前:デフォルトの名無しさん :2006/08/27(日) 01:43:18
>>382
ありがとうございました
結局D3DXMatrixOrthoLHを使うことにしました

385 名前:デフォルトの名無しさん :2006/08/27(日) 01:51:39
>>384
で、やりたいことはできたのかよ!

386 名前:デフォルトの名無しさん :2006/08/27(日) 02:46:00
>>385
1時間近く試行錯誤してみましたが、なんとかいけそうです

387 名前:デフォルトの名無しさん :2006/08/27(日) 13:01:53
DirectXでの質問です。DirectXを使って全画面表示するときに
なぜか画面全部に映像が行かなくて、800×600になってしまいます。

診断ツールを見たらちゃんと1024×768になっています。
あとDirectXを使う各ソフトも設定では800×600になっていません。
なぜなんでしょうか?教えてください。

388 名前:デフォルトの名無しさん :2006/08/27(日) 13:06:38
>>387
それは自分で組んだプログラムの話なのか?

389 名前:デフォルトの名無しさん :2006/08/27(日) 13:07:18
ディスプレイの設定がおかしいんじゃね

390 名前:デフォルトの名無しさん :2006/08/27(日) 13:07:55
>>388
いや、違います。
ネットで落としたゲームやハンゲームなどです。

391 名前:デフォルトの名無しさん :2006/08/27(日) 13:10:33
>>ディスプレイ設定はどうするんですか?

392 名前:デフォルトの名無しさん :2006/08/27(日) 13:11:21
>>390
じゃあ、なんでここで質問するんだ?

393 名前:デフォルトの名無しさん :2006/08/27(日) 13:11:22
ここは自分でプログラムを組む人のための板なので、そういう質問は
ソフトを作った人や、そのソフトのためのBBSでなさってください

394 名前:デフォルトの名無しさん :2006/08/27(日) 13:11:35
↑アホですたwww
>>389

395 名前:デフォルトの名無しさん :2006/08/27(日) 13:12:27
あ、すんません。

396 名前:デフォルトの名無しさん :2006/08/27(日) 14:40:56
Imageを用意せずに
Color.〜から単色のTextureを作れますか?

397 名前:デフォルトの名無しさん :2006/08/27(日) 15:32:19
>>396
何色でもグラデでも何でも作れるぞ

398 名前:デフォルトの名無しさん :2006/08/27(日) 16:09:51
クォータニオンで姿勢を変えた後、
オブジェクトを前方に進めるにはどうしたらいいんでしょうか?

オブジェクトを回転させると、前向きに進ませるのに必要なベクトルの成分も変わってきますが
D3DXQuaternionNormalize 関数はどうやら進行方向の x y z を教えてくれる関数ではなさそうだし
クォータニオンについて説明してるサイトもあまり見つからなくて困っています

399 名前:デフォルトの名無しさん :2006/08/27(日) 16:19:12
クォータニオンについての真の理解が必要ないなら、回転だけを扱う行列程度に思っとけ。
D3DXQuaternionNormalize()は単に積算等を重ねて誤差の溜まったクォータニオンを
正規化するだけなので、残念ながら見当違い。
クォータニオンからは3x3の回転行列が作れる。
自力で展開してもいいが、D3Dなら D3DXMatrixRotationQuaternion() で4x4の行列が作れるから
その結果使って回転しれ。

400 名前:デフォルトの名無しさん :2006/08/27(日) 16:27:55
>>398
初期の方向から回転成分を掛けるだけで求まるだろう。
難しいところでも考えるところでもないのに、
何が分からないのかがさっぱり分からん。

401 名前:デフォルトの名無しさん :2006/08/27(日) 16:32:49
何がわからんのかもわからんという状態なんだろう。
お前にもそういう頃が無かったとは言わせんぞ。

402 名前:デフォルトの名無しさん :2006/08/27(日) 16:38:37
なにも回転してない状態のベクトルは、自由に決めていいわけだけど、
キャラクタのモデルは、たいてい手前向き(DirectX的に-Z方向)
に作ってあるから、初期ベクトルは (0,0,-1)が無難かしらね。

403 名前:デフォルトの名無しさん :2006/08/27(日) 16:41:52
まあ、特別な理由が無いのなら、普通そんなもんだろうな

404 名前:デフォルトの名無しさん :2006/08/27(日) 17:11:01
>>367
どうやって

405 名前:デフォルトの名無しさん :2006/08/27(日) 17:23:20
クォータニオンは、もうアニメーション制御できるくらいの理解で良いやと思っている

406 名前:デフォルトの名無しさん :2006/08/27(日) 19:38:24
実際それで十分だ。
知らなくてもアポロは月までロケット飛ばせたんだしな。
3行3列への展開式を手元に持っておくと、最適化の時に少しだけ便利だ。

407 名前:デフォルトの名無しさん :2006/08/27(日) 19:41:02
アポロで思い出したけど、ジンバルロックがよくわからん。

408 名前:デフォルトの名無しさん :2006/08/27(日) 19:54:34
>>407
クォータニオン使わずに回転行列作れば嫌でも見ることになるやってみろ。ここで聞くな。

409 名前:デフォルトの名無しさん :2006/08/27(日) 19:59:17
ホネホネロックは知ってるんだが

410 名前:デフォルトの名無しさん :2006/08/27(日) 20:13:29
>>409
じゃあ、全部歌いきってみろ。
どうせサビしかしらんくせにテキトウなこというな。

411 名前:デフォルトの名無しさん :2006/08/27(日) 20:16:52
DirectXの習得には必須事項

人食い酋長が大太鼓 月夜にこっそり叩いたら
博物館の恐竜が 一緒に浮かれて踊ったぜ
ホーネホネロック ホーネホネロック ホーネホネー ホネロック

松明持ってガイコツも ちょうつがい外し踊ったぜ
路地の裏のゴミ箱じゃ イワシの頭も踊ったぜ
ホーネホネロック ホーネホネロック ホーネホネー ホネロック

砂漠じゃ死んだライオンも 鬣乱して踊ったぜ
ムカデや蛇の亡骸も 太鼓にあわせて踊ったぜ
ホーネホネロック ホーネホネロック ホーネホネー ホネロック

ホーネホネロック ホーネホネロック ホーネホネー ホネロック


412 名前:デフォルトの名無しさん :2006/08/27(日) 20:43:26
ホネホネロック歌えない奴が居るわけ無いだろ!

ただ411はコピペだな

413 名前:デフォルトの名無しさん :2006/08/27(日) 20:45:59
ほーね。

414 名前:デフォルトの名無しさん :2006/08/27(日) 20:46:37
ガシャ

415 名前:デフォルトの名無しさん :2006/08/27(日) 20:47:36
ちっ!アンガールズ歩いてんじゃねぇよ。
高校時代バリバリの体育会系だった俺からしたら歩いた時点で失格。
拍手なんてなくていい。

416 名前:デフォルトの名無しさん :2006/08/27(日) 20:49:43
http://www.youtube.com/watch?v=ceHdSOQajYA

417 名前:デフォルトの名無しさん :2006/08/27(日) 20:51:19
>>416
何気に3D演出(2Dでもできるけどw)でフイタw

418 名前:デフォルトの名無しさん :2006/08/27(日) 21:44:51
>>416
なつかしすぎwwwwwwwwwwwwwwwwwwwwwwwwww


419 名前:デフォルトの名無しさん :2006/08/27(日) 22:00:20
ボンバーマンのような格子状のフィールド(3D)を一人称視点で移動するプログラムを
作成しています。Zバッファを有効にしているのですが、見る方向によって前後
が正しく表示できません。遠くのもの(壁)は小さく表示されますが、一番遠くのもの(壁)が
一番上に表示されてしまいます。D3DRS_ZFUNCをD3DCMP_LESSに設定すると今まで
おかしかった方向からの視点では正しく描画されるようになるのですが、いままで
正しかった方向からがうまくいかなくなります。
原因などわかりますでしょうか?・・・これじゃ伝わらないですかね・・?

420 名前:419 :2006/08/27(日) 22:27:50
部分的ですがソースをアップしました。
ttp://www.uploda.org/uporg495059.cpp.html

InitVertexBuffer()で頂点バッファに壁情報を格納して、Render()で描画しています。
どなたかよろしくお願いします!

421 名前:デフォルトの名無しさん :2006/08/27(日) 22:44:55
>>420
× 0.0f, // 最も近い面の Z 座標
とりあえず1.0fにすればいいわ。

422 名前:419 :2006/08/27(日) 22:55:13
>>421
出来ました!!ありがとうございます!
理由はわかりませんが(^^;考えてみます!
5日くらい悩んでたんで助かりました。

423 名前:デフォルトの名無しさん :2006/08/28(月) 18:28:38
DirectX SDKのなかにDirectX10のサンプルがけっこうあるけど
どのビデオカードだったら動作させられるんだ?
9800PROじゃ無理だった。

X1000シリーズなら大丈夫なの?

424 名前:デフォルトの名無しさん :2006/08/28(月) 18:34:39
テクスチャが描画されね。はまった
ふぁ;kjslkfj;かjf

425 名前:デフォルトの名無しさん :2006/08/28(月) 20:06:19
>>423
DX10 Readyと書かれてるやつ

426 名前:デフォルトの名無しさん :2006/08/28(月) 20:12:27
>>423
それ以前にOSは何を使っている?

427 名前:デフォルトの名無しさん :2006/08/28(月) 20:15:42
それを聞いてハッキングでもする気ですかw

428 名前:デフォルトの名無しさん :2006/08/28(月) 20:27:46
この質問にそういう答え方をする時点で予想通りアホだというのは分かった。
ビデオカードをいくら最新にしても動くわけがないだろ。

429 名前:デフォルトの名無しさん :2006/08/28(月) 20:39:33
びすたんが必要なんだっけ

430 名前:423 :2006/08/28(月) 20:46:18
いやVistaにSDK入れたんだよ
んでRadeon9800でリファレンスモードで動かそうとしてもまったく動かない
CPUが「助けて!」ってうなってたから切ったよ

魚うごかしたいのに
http://journal.mycom.co.jp/articles/2006/08/01/siggraph01/images/020l.jpg

431 名前:デフォルトの名無しさん :2006/08/29(火) 06:13:59
>>430
普通にただのバンプじゃねぇの?

432 名前:デフォルトの名無しさん :2006/08/29(火) 06:42:16
その画像に書いてあるやん・・・

433 名前:デフォルトの名無しさん :2006/08/29(火) 07:20:59
じゃ、Radeon9800で動かないわけはないわけだが・・・

434 名前:デフォルトの名無しさん :2006/08/29(火) 09:08:00
430は貼った画像が悪いw
ttp://journal.mycom.co.jp/photo/articles/2006/08/01/siggraph01/images/021l.jpg
本題はこっちだろ。430は比較のための従来の手法の説明画像だ。

435 名前:デフォルトの名無しさん :2006/08/29(火) 13:38:25
ID3DXAnimationControllerを使った複数モーションに挑戦しているのですが
現在のモーションの再生時間や各モーションの終端フレーム数(秒数)を取得することは出来ないのでしょうか。
歩くモーションの終わりと走るモーションの始め(またはその逆)を繋げば動きが綺麗に見えるのに
現状では歩くモーションの途中で走るモーションに移行し、動きが飛んでいるように見えてしまいます。


436 名前:デフォルトの名無しさん :2006/08/29(火) 20:56:36
そんなもん使うな。以上。

437 名前:デフォルトの名無しさん :2006/08/29(火) 22:07:02
>>434
それでもディスプレースメントマッピングなんて前からできてたやんけ。
DirectX9にも虎が拉げてるサンプルあったべ。

438 名前:デフォルトの名無しさん :2006/08/29(火) 22:57:51
WindowsXP SP2、VisualC++ 2005 Express Editionで、
DirectX SDK入れようと思うんですが、

バージョンは August 2006 で大丈夫でしょうか?

439 名前:デフォルトの名無しさん :2006/08/29(火) 23:01:52
>>438
駄目です。

440 名前:デフォルトの名無しさん :2006/08/29(火) 23:06:43
>>439
October 2004 なら大丈夫でしょうか?

441 名前:デフォルトの名無しさん :2006/08/29(火) 23:08:45
間違えました。

DirectX 9.0 SDK Update (June 2006)
DirectX 9.0 SDK Update (April 2006)
DirectX 9.0 SDK Update (February 2006)

この辺なら大丈夫でしょうか?

442 名前:デフォルトの名無しさん :2006/08/29(火) 23:41:56
駄目です。

443 名前:デフォルトの名無しさん :2006/08/30(水) 02:55:23
ID3DXAnimationControllerって進化の果てに無駄な抽象化をして
使い物にならなくなったってこと?

444 名前:デフォルトの名無しさん :2006/08/30(水) 02:59:59
そんなことは無いっちゃ無いんだが、ドキュメントが無さ過ぎるのが困ります。
まあ、元から珍妙な進化の仕方してた奴だったけど…
コントローラGetしたあとReleaseが必要だって時点で激しくビビった。

445 名前:デフォルトの名無しさん :2006/08/30(水) 03:16:40
>>443
つか進化するのはいいんだが仕様が変わりすぎなんだ。
重要な関数が消えたり、なぜか他のと同じ機能の関数が出来てこれは未サポートで従来のを使えとか。
>>444でも書いてる通りドキュメントが明らかに少ないから、VerUp毎にサンプルを弄ったほうが正確じゃないだろうか。
自作するって言ってもそれだけでだいぶ時間が取られるから個人的には重宝してる。


446 名前:デフォルトの名無しさん :2006/08/30(水) 03:34:21
モーションのブレンドなんて、誰が書いても大して変わらん品ー。

の割りに、なんでAnimationControlerがあんな変な進化したのかは本気で謎だけど。
誰か止めなかったのか?

447 名前:デフォルトの名無しさん :2006/08/30(水) 04:49:16
そんなことは無いっちゃ無いんだが、ドキュメントが無さ過ぎるのが困ります。
まあ、元から珍妙な進化の仕方してた奴だったけど…
コントローラGetしたあとReleaseが必要だって時点で激しくビビった。

448 名前:デフォルトの名無しさん :2006/08/30(水) 05:28:58
>>445
>自作するって言ってもそれだけでだいぶ時間が取られるから個人的には重宝してる。
お前、作ったことねぇだろ。
こんなもんかかっても1日ありゃできるし、わざわざ他人様の使って悩まされる時間のがよっぽど無駄だっての。
それにこの辺が複雑に見えるのはようはよくわかってないから。
綺麗にまとめればこんな(AnimationControler)に無駄に複雑にはならない。

449 名前:デフォルトの名無しさん :2006/08/30(水) 08:13:13
実際キーの抽出とブレンドして行列を生成するだけだからね。
あとはそれを各フレームに適用するだけ。
別に難しいところは無い。

450 名前:デフォルトの名無しさん :2006/08/30(水) 09:35:45
>>448
>>445を擁護するつもりはないが、ゼロから組んで1日で上げる自信は俺には無いなあ。
いや、それこそコード自体は1時間かそこらで十分書きあがるんだろうが、
ちまちま細かい間違いやったりとかしそうだし。
うん、それだけなんだけどね。

451 名前:デフォルトの名無しさん :2006/08/30(水) 11:59:05
>>435
LPD3DXAnimationController pAnimCtrl;

・再生時間
D3DXTRACK_DESC desc;
pAnimCtrl->GetTrackDesc( 0, &desc );
desc.Position←コイツ

・終端フレーム
LPD3DXANIMATIONSET pAnimSet;
pAnimCtrl->GetAnimationSet( 0, &pAnimSet );
pAnimSet->GetPeriod()←コイツ
SAFE_RELEASE( pAnimSet );

・移行( Track0→Track1へブレンディング )
pAnimCtrl->SetTrackEnable( 0, TRUE );
pAnimCtrl->SetTrackEnable( 1, TRUE );

pAnimCtrl->SetWeightScale( 0, 1.0f - weight ); 1.0〜0.0へ
pAnimCtrl->SetWeightScale( 1, weight ); 0.0〜1.0へ

452 名前:デフォルトの名無しさん :2006/08/30(水) 12:02:29
× pAnimCtrl->SetWeightSacle
○ pAnimCtrl->SetTrackWeight

間違えた

453 名前:435 :2006/08/30(水) 14:49:47
>>451-452
ありがとうございます。
ID3DXAnimationControllerだけしか見ていませんでしたが他に入ってたんですねorz

454 名前:デフォルトの名無しさん :2006/08/30(水) 19:34:03
ドキュメントには一通り目を通しておいた方がいいぞ。
メソッド名とか引数の意味とかは覚える必要は無いが、
どんな機能が用意されてるかくらい知っておけば、こんな所で質問する必要もなくなる。

455 名前:デフォルトの名無しさん :2006/08/30(水) 20:55:23
454は454で、一度ドキュメント読んでから説教すべきだと思ったり

456 名前:デフォルトの名無しさん :2006/08/30(水) 21:50:02
>>450
だったら、自分のコードのミスよりMSの仕様変更なんか確実にやってくるんだからそのほうが嫌だろ?
DirectXのバージョンが変わったらほぼ確実に組み直しなんだぞ。

457 名前:デフォルトの名無しさん :2006/08/30(水) 22:07:08
突然仕様が変わるのはD3DXの高レベルAPI部分だけ。
で、仕様が変わる上に使いにくいのに馬鹿ほど使いたがる。
馬鹿だから自分で何とか出来ずにわめくだけ。

458 名前:デフォルトの名無しさん :2006/08/30(水) 22:15:43
>>457
そりゃ初心者スレだしな。


459 名前:デフォルトの名無しさん :2006/08/30(水) 23:04:24
いままでスキンメッシュ使うっていうと
シェーダアセンブリとか見せられてなんだか嫌になっちゃった。
って奴多いんだろうな。
HLSLなら気持ちいいほどすっきり組める。
・・・はず。なんだけど肝心のMSのサンプルがこれまた糞。
サンプルとは思えないほど要らんことまでサポートしててスキンメッシュを単体で覚えたい奴向きじゃない。

Xファイルのデータの何をどういう計算に使うのか?
ってところもちゃんとは理解してないまでもスキンメッシュを動かせる程度の理解を求めてもまだ敷居が高いだろう。

さらにできたところでモデリングツールって何のどんな機能を使ってどんなオプションを付けて吐き出せばいいの?
とかいうところまでくるとまた頭が痛い。しかも、物によっては駄目と来てる。(見た目スキニングはできているにも関わらず)

さらに追い討ちをかけるようなアニメーションコントローラーのインターフェイス。

「ここまで御馬鹿さん専用クラスなら、フレーム毎で呼び出す形にして引数1アクション番号、引数2:tでセットして
drawで裏画面に描画って形でアニメーションしてくれてよかったんじゃないか?」

と思うが、実はそんな単純なことにはなっていないどころか
アニメーションコントローラーの仕様はウンコそのもの。これだけ複雑にした割りにはなんの恩恵もないし
できることはアクション番号+tと同じようなもん。にも関わらずこの複雑さ。一体どんな脳みそかかえてんのじゃ?

と、いうわけでスキニング嫌いだったんす・・・でも、最近全部自分で組んですっきりしたよw

460 名前:デフォルトの名無しさん :2006/08/30(水) 23:29:38
(´`).oO(なんでこんなに必死になっているんだろ)

サンプルでは読み込みは自力のように見えるけどフレーム管理だけしかしない?
もしかしたら自作より扱うの難しくないか。



461 名前:デフォルトの名無しさん :2006/08/31(木) 00:31:34
DirecxtXのGUIについて詳しく解説してくれてるサイトってありませんでしょうか?
ボタンやコンボボックス、エディットボックスを使いたいです。

ぐぐっても見つかりません。
よろしくお願いします。m(_ _)m

462 名前:デフォルトの名無しさん :2006/08/31(木) 01:46:16
DXUT自体がドキュメントみたいなもんだー。
頑張ってカットアンドペースとしれ。

つったってDXUT、あんましシンプルとは言い難いんだよな。
情報はググればいくらでも引っかかってくるけど、日本語のドキュメントには大したものは無い。
頑張れー。

463 名前:デフォルトの名無しさん :2006/08/31(木) 03:19:53
DirectSoundのバッファが短か過ぎると不安定になるというのが昔あったと思うのですが(DirectX5とかの時代)
今でもそれあります?

464 名前:デフォルトの名無しさん :2006/08/31(木) 03:23:00
不安定ってノイズが乗るとかそういう話?

465 名前:デフォルトの名無しさん :2006/09/01(金) 01:04:26
DirectXsdkのサンプルのコンボボックスとかボタンとか要らないんだが、どこを削れば良い?

466 名前:デフォルトの名無しさん :2006/09/01(金) 01:10:17
EmptyProjectじゃ駄目なのか。

467 名前:デフォルトの名無しさん :2006/09/01(金) 01:17:16
>>465
その処理をしてるところ

468 名前:デフォルトの名無しさん :2006/09/01(金) 06:55:58
取り敢えずCの入門書を軽く流して
「はじめてのWindowsプログラミング VisualC++」でAPIの
初歩をひととおり学んだのですが,ボチボチdirectxにゲーム作成を
学ぼうと思っています。

とっつきの良さそうな「DXライブラリ置き場」のライブラリを使うべきか
使ってるひとが多そうだけどあまり文献が充実していないLunaを使うべきか悩んでいます。

両方使ったことのあるひとの使用感の違いをお聞きしたいのですが

469 名前:デフォルトの名無しさん :2006/09/01(金) 06:57:30
その前にC++を勉強するのが先だと思います

470 名前:デフォルトの名無しさん :2006/09/01(金) 07:21:48
APIの学習をやるくらいなら
C++を学んでおいた方がよかったんじゃないかと思う。

471 名前:デフォルトの名無しさん :2006/09/01(金) 09:16:54
ゲームでもなんでもそうだけど、CとDirectXAPI(もしくはライブラリ)の使い方がわかったところで
なにも作れないよ。

自分がゲームやって、画面に映ってるシーンがどんなプログラムになってるか
頭の中で多少でも組めないと、無理。

初心者っぽいからDXライブラリを進めとく。
ドキュメントが充実してるし、ゲームのサンプルプログラムもあるから。

472 名前:デフォルトの名無しさん :2006/09/01(金) 14:33:55
質問です。なぜか定数として宣言した配列の一部の内容が書き換わってしまい、
終了時に「データが壊れたぞ!」と警告メッセージが出てくるのですが、どうすればいいのでしょうか?

473 名前:472 :2006/09/01(金) 14:37:54
デバッガーで覗いてみたところ、なぜかtimeGetTime関数を呼ぶと値が変わってしまうようです。
よくわからないので、その部分だけ値を入れなおすようにしました。

474 名前:デフォルトの名無しさん :2006/09/01(金) 14:55:32
>>473
constで宣言したって事?

普通にメモリ管理ちゃんとしてないだけでしょ。
どっかの変数に配列を超えて書き込んでるだけ。

つーか、DirectXの話題じゃないし。言語の本でも読んどくといい。

475 名前:デフォルトの名無しさん :2006/09/01(金) 15:35:09
>>473
値が変わるときにって条件でブレークポイント設定すればいいと思うよ

476 名前:デフォルトの名無しさん :2006/09/01(金) 17:08:59
>>475
たぶんブレークポイントに引っかかるのはシステムのDLL内部だから
473にデバッグは無理w
症状的に、どこかでバッファオーバーランをやらかしていると思う。

バッファオーバーランをしている部分と、定数を破壊している部分が
全然関係ないという類のやつかと。

477 名前:デフォルトの名無しさん :2006/09/01(金) 18:12:55
>よくわからないので、その部分だけ値を入れなおすようにしました。
ワロタ

478 名前:デフォルトの名無しさん :2006/09/01(金) 18:34:23
道路の上に家を建てたらなぜか壊されてました。
よくわからないので、もう一度建て直すことにしました。

479 名前:デフォルトの名無しさん :2006/09/01(金) 23:04:27
DirectXで2D画像表示するためにスプライト使ってるんだけど
スプライト重くて・・・

なんか他にいい方法ない?

480 名前:デフォルトの名無しさん :2006/09/01(金) 23:04:49
>>476
自分は473の症状から
何かのポインタ=timeGetTimeの時にstaticのポインタ渡して弄ってる場合ってのが思い浮かんだから
それで解決できると思った。
まぁとりあえず参考意見程度に


481 名前:デフォルトの名無しさん :2006/09/01(金) 23:14:41
>>479
何をどうしてどのように重いのか、一切省略せずに適切に書け。
話はそれからだ。

482 名前:デフォルトの名無しさん :2006/09/01(金) 23:54:43
>>479
3Dでも60FPS出来るんだ。
全画面1ドットずつ動かしても毎秒60ドットはスライド出来るってことだ。
それと比べても遅いと思うならやり方が間違ってる。

483 名前:デフォルトの名無しさん :2006/09/02(土) 01:12:30
9.0だとスプライト表示って3Dより重くね?


484 名前:デフォルトの名無しさん :2006/09/02(土) 01:31:15
9.0に限らずスプライトは素の3Dより概ね重い。
本来そっち用途でない3D向けのハードにエミュレーションさせてるのが大半なんで、
性能比で見ると非常に損した気分になる。

でも、それでも必要十分な程度には(むしろお釣りが来るくらい)速いのが普通。
致命的なほどに重いとなったら、使い方に問題があるとしか思えん。

何をどうしてどのように重いのかちゃんと書いたら、>>481が適切に答えてくれるだろう。

485 名前:デフォルトの名無しさん :2006/09/02(土) 01:43:05
そもそもDirectXにはスプライト機能など存在しない。
D3DXの似たような名前のAPIをスプライト機能だと思っているのなら完全な勘違い。
あえて言えばオーバーレイや別レイヤで描画されるカーソルがそれにあたるだけ。

486 名前:デフォルトの名無しさん :2006/09/02(土) 01:48:40
機能がスプライトなら、それはスプライトだろう。
古式ゆかしくハードで実装してなきゃ認めんとか言うのは勝手だが、論点がずれてる。

487 名前:デフォルトの名無しさん :2006/09/02(土) 01:58:09
名前がSpriteを名乗っているだけで、スプライト機能ではない。
もし話を出すのならスプライトと書かずにD3DXSpriteと書くべき。

488 名前:デフォルトの名無しさん :2006/09/02(土) 01:58:49
スプライトというより、ピクセルフィルの問題の気がする。
CPU遅いやつなら妥協は必要だと思う

489 名前:デフォルトの名無しさん :2006/09/02(土) 01:59:45
むしろ論点が明らかにされていない

490 名前:デフォルトの名無しさん :2006/09/02(土) 02:03:13
何をしたのかという条件を明示せず遅い遅いと言われたって、
遅いのはテメエの足りない脳の処理速度だろという話になる。

491 名前:デフォルトの名無しさん :2006/09/02(土) 02:09:41
初心者質問スレの癖して、このスレに常駐してるのは毛が生えたばかりの子供が
昔の自分を口汚く罵るだけという罠。

492 名前:デフォルトの名無しさん :2006/09/02(土) 02:10:52
>スプライトというより、ピクセルフィルの問題の気がする。
>CPU遅いやつなら妥協は必要だと思う

わかるんだが、それだとスプライト以上に3Dが遅い環境だということに。
つーか>>479は何処行った。
寝たのか?

493 名前:デフォルトの名無しさん :2006/09/02(土) 02:13:24
途方もない大議論が展開されているこのスレに
どの面下げてレスしたらいいかわからず影から見守る>>479

494 名前:デフォルトの名無しさん :2006/09/02(土) 02:44:03
裏でスプライト関連の警告が出まくってて遅いとかじゃねえ?


495 名前:デフォルトの名無しさん :2006/09/02(土) 07:26:46
俺が思わず頭を抱えた発言を一括晒し上げ

> 9.0に限らずスプライトは素の3Dより概ね重い。

> 本来そっち用途でない3D向けのハードにエミュレーションさせてるのが大半なんで、

> そもそもDirectXにはスプライト機能など存在しない。
> D3DXの似たような名前のAPIをスプライト機能だと思っているのなら完全な勘違い。

> 名前がSpriteを名乗っているだけで、スプライト機能ではない。
> もし話を出すのならスプライトと書かずにD3DXSpriteと書くべき。

496 名前:デフォルトの名無しさん :2006/09/02(土) 08:43:53
中身ってただの板ポリちゃうんかと・・・

497 名前:デフォルトの名無しさん :2006/09/02(土) 09:35:35
最低限、CPUとビデオカード、
そしてどのくらいのサイズの物を一つのフレームにいくつ出して何FPSで、
どの程度を想定して遅いと言っているのかぐらい書くのは質問する上での義務。

498 名前:デフォルトの名無しさん :2006/09/02(土) 10:18:11
スプライトスプライトってX68000じゃあるまいし
Windowsマシンにスプライト機能はありませんよ

499 名前:デフォルトの名無しさん :2006/09/02(土) 10:51:34
つ【FM TOWNS】

500 名前:デフォルトの名無しさん :2006/09/02(土) 10:57:11
ドリキャス


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.