1 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:55:56 ] ※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。 【C++】 DirectX初心者質問スレ Part16 【C】 pc11.2ch.net/test/read.cgi/tech/1202634347/
233 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 15:07:52 ] Xファイルを作るときにD3DXCreateTextureFromFileEx関数を使って透過色を指定しておくだけでふ
234 名前:デフォルトの名無しさん [2008/04/27(日) 15:26:02 ] Exとかあるなんてしらなだった 調べてない自分が悪いorz とんくす!!
235 名前:デフォルトの名無しさん [2008/04/27(日) 21:44:04 ] HLSLですが、以下のcase1とcase2で表示される結果が違います。 case2の方にノイズがのります。 以下の二つは何か違いがあるんでしょうか? (HLSLは最適化なしでも同じ、設定は列優先) // float4_t vPosition0 // float4x4_t mWorld // float4x4_t mViewProj // case 1 const float4_t vPosition1 = mul( vPosition0, mWorld); o_vPosition = mul( vPosition1, mViewProj); // case 2 const float4x4_t mWorldViewProj = mul( mWorld, mViewProj); o_vPosition = mul( vPosition0, mWorldViewProj);
236 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:15:14 ] 画面から1ピクセルの色情報を取得するGetPixelをDirectX でやるにはどうすれば良いでしょうか?Lock Unlockで サーフェイスから1ピクセル抜き出すのは勿体無いですから。
237 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:27:18 ] >>236 何がどう勿体無いのか知らんが、それが一番素直なやり方 サーフェースのフォーマットを調べたいとかいう違う動機があるなら別だが
238 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:32:01 ] >>237 読み込みだけなのでLock Unlock重いから使わない方法 あればいいなと思って質問しました。Lock Unlock使わなくても 大丈夫というレスを期待したのです。レスありがとうございます。 今日は寝ます。
239 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:38:06 ] >>238 誤解してるみたいだが、GetPixelも実装はLock/Unlockしてるの それプラス余計なオーバーヘッドがかかるから、自前でやったほうが数倍速い ちなみに、システムメモリ上のサーフェースは、その手のLock/Unlockによるオーバーヘッドは皆無 まあ、VRAM上のことを言ってるんだろうけど、VRAM上ではイメージがリニアに配置されてる保障はないので その手のオーバーヘッドは、どういうやり方をするにせよ、回避は不能
240 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:00:00 ] ピクセルシェーダーからフィードバックすればできるんじゃね?
241 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 00:38:00 ] >>239 GetPixelってフォーマットやら範囲やらチェックしてる予感 あの遅さはそういう遅さだ 俺の直感がそうだと言っている でもフォーマット気にしないでコピーする方法ってどうやんだっけ? BitBltでいいんだっけ?
242 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 21:55:54 ] ライティングについて質問です。 D3DLIGHT9 light; memset(&light,0,sizeof(light)); light.Type = D3DLIGHT_DIRECTIONAL; light.Diffuse.r = 0.9f; light.Diffuse.g = 0.9f; light.Diffuse.b = 0.9f; light.Specular.r = 0.2f; light.Specular.g = 0.2f; light.Specular.b = 0.2f; light.Ambient.r = 0.5f; light.Ambient.g = 0.5f; light.Ambient.b = 0.5f; light.Direction = D3DXVECTOR3(0.0f, -0.5f, -0.2f); device->SetLight(0,&light); device->LightEnable(0,TRUE); //* device->SetRenderState(D3DRS_LIGHTING,TRUE); //ライティング有効 /*/ device->SetRenderState(D3DRS_LIGHTING,FALSE); //ライティング無効 //*/ 上記のように設定すると何も表示されなくなってしまいます。ライトを無効にすれば表示されるので メッシュの基本的的なところは間違ってないみたいなのですが、何が間違ってるのでしょうか?
243 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 22:13:12 ] 自己解決。マテリアル設定忘れらしいです。だからマテリアルだけ要素数が返されるんですね・・・
244 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:23:12 ] これからDirectXの勉強始めようと思うのですが、DirectX9の書籍は買わないほうが良いのでしょうか? DirectX10からいろいろ変わったと聞いたもので。 あと、お勧めの書籍があったら教えてほしいです。
245 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:30:02 ] vista持ってないとdirectx10ができません
246 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 00:35:41 ] DirectXなんて勉強目的なら8以降だったらなんでもいいのよ 要するに、概念が大事
247 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 03:07:46 ] DX10のほうがデバッグしやすいと思うぞ
248 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 03:09:53 ] >>244 むしろ情報がクソほど出揃ってる9以前のほうがいい 10なんかOS縛りあるわ情報少ないわでいいことまったくなし 8あたりで縛ってつくればDirectX8はXP以降なら間違いなく入ってるし 配布もラクだしとにかくいいことだらけだ そんな初級質問をするおまいはこれからもたくさん質問するだろうから それに答えられる使用者が多い9以前を使うべき
249 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 07:57:25 ] 今ならDX9だよな。 もうDX8はない。 かといってDX10は実行環境が限られる上に 仕様もまだ安定していない。
250 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 12:19:13 ] ありがとうございます。9の本買ってきます。
251 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 16:58:33 ] 9できれば 10もすんなりいけるんじゃね。
252 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 18:36:23 ] シェーダーの使い方知らんとなんもできんよ
253 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 19:54:00 ] 俺も10に移行してえ でもVistaはイヤッ!!
254 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 20:32:14 ] 俺はやりたいことが全部9で出来ちゃったから10を触る気が起きない
255 名前:デフォルトの名無しさん [2008/04/30(水) 22:07:00 ] そもそも10で何ができるようになったのか知らない
256 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 22:09:33 ] Vista専用なんて論外だ
257 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:02:11 ] DirectX10はVistaと共に黒歴史になる
258 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:09:33 ] 10は別に黒歴史にはならないだろ
259 名前:デフォルトの名無しさん mailto:sage [2008/04/30(水) 23:50:06 ] 8は初心者にはヘルプ手に入れたり、サンプル動かしたりするところで 敷居が高いからやめておいたほうがいいと思う ある程度たどり方を知ってないと見つからないし、わからないと思う
260 名前:デフォルトの名無しさん [2008/04/30(水) 23:58:24 ] すみません。 ピクセルシェーダが使えない環境で クライアント座標のある部分を描写しないようにクリッピングしたいのですが、 どのようにすればいいでしょうか。 C++でdirectx9を使ってます。
261 名前:デフォルトの名無しさん [2008/05/01(木) 01:56:50 ] カメラ2つでvfcでキャプチャをしたいのですが、capDriverConnect(hWnd0,0);capDriverConnect(hWnd1,1);で キャプチャ使用とすると、カメラを選択するメニューが登場しcapDriverConnect(hWnd0,0);側だけ選んだ1つだけ 表示されてしまいます。 解決の方法はご存じないですか?
262 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 06:27:11 ] 今日も今日とて、眠らぬまま朝を迎えた・・・・・・・。
263 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 07:54:59 ] >>262 バラモス撃破乙
264 名前:デフォルトの名無しさん mailto:sage [2008/05/01(木) 16:41:47 ] >>260 ステンシルバッファ でぐぐるよろし
265 名前:デフォルトの名無しさん [2008/05/01(木) 21:01:47 ] >>264 さんくすです。
266 名前:デフォルトの名無しさん [2008/05/02(金) 11:57:01 ] すみません。 任意の軸を中心に拡大縮小が出来る関数ってありませんか? 回転はみつけたんですが、拡大縮小は見つからなくて・・・。
267 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 12:37:52 ] >>266 あるっちゃあるが、ちゃんと行列勉強したほうがいいと思うぞ 細かい調整きくようになるし
268 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 17:20:58 ] 任意の軸への移動行列×拡大縮小行列でいいんじゃねーの?
269 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:45:06 ] D3DXMatrixTransformation2D つーか、何を回転させようとしているのだろうか
270 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 18:50:51 ] 質問というかアンケート ここのスレのお兄さんたちはD3DX関数群は肯定派?否定派? 速度でないし、細かい微調整がきかないから、そんなもん使うなって感じ? それとも、車輪の再発明してもしょうがない、あるんだから使えばいいじゃないって感じ? なんとなく気になったんで
271 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:08:19 ] 俺はD3D、OpenGL、その他とコードを共有してるんでしかたなく自前で作ってる でも基本的にあるなら使えばいいじゃない派
272 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:15:43 ] 頭にD3DXをつけずに名前をもっと短くしてくれたら もっと評価してやらないこともない
273 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:21:54 ] そんな事より配布の問題をどうにかしてくれ
274 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:23:33 ] 我慢しろよ(`_ゝ´)
275 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:25:02 ] >>273 わかる DLLバージョン多すぎ
276 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 19:28:58 ] だから2004octを使えとあれほど・・・
277 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:30:26 ] 僕ハンゲームというゲームしたいんですけど それにはこのdirectxが必要なんですが、その 安全性が非常に心配です。 調べてみると、「DirectXの脆弱性」などとよく書いてあります。 ダウンロードするとしたら、最新の10.1がいいのでしょうか? それと、当たったらどんな症状が出るのでしょうか?
278 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:32:14 ] ここはプログラミングの板なのでよそで聞いてください
279 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:35:20 ] おまえはなにを言ってるんだ ……と思ったが、マジレスするなら、今までWindows使ってて、脆弱性のせいでなんか不都合が起こったことあるか? そもそも、ココに書き込みしてる時点で脆弱性を突かれて君のパソコンまずいことになってるよ。 他の人(もちろん俺も)は、事前に対策してるけど。君は丸腰なんじゃないか?
280 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:35:39 ] なんかリアリティがあってワロタ 本当に何もわからんやつは、確かにプログラム→DirectX初心者でこういうところに質問するのかw
281 名前:デフォルトの名無しさん [2008/05/02(金) 21:43:17 ] ハンゲ自体が君の人生にとって有害だよ
282 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:43:34 ] 10.1 はまだ Vista でしか使えなかった気が。 というか、Vista だと標準装備じゃなかったっけ? 入ってないってことは XP なんだろうけど、 それなら 9.0c を入れるといいよ。
283 名前:デフォルトの名無しさん mailto:sage [2008/05/02(金) 21:54:49 ] DirectXの穴はwindows updateで修正されてるし。
284 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 05:51:55 ] >>270 D3DX関数群の集まりって昔中身見れたんだけど なんか難しそうなアセンブラで書いてあって速そう(?)だったよw
285 名前:デフォルトの名無しさん mailto:sage [2008/05/03(土) 10:12:11 ] 最近発覚したtga読み込みの脆弱性は 比較的最近のd3dxにしないと駄目だけどね。
286 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 00:25:15 ] 質問です。 (わかりやすくするために、カメラの座標は0,0,0とします。) カメラを、とある地点Aと、とある地点Bの中間の方向を向かせるために、以下の方法をやっています。 中間というのは、3次元ベクトルAとBの平均(A + B) / 2 ということではなく、 角度的な中間です。 (説明のために2Dベクトルで例えます)現在のカメラの方向からAが+20度の方向。Bが+80度の方向にあるのならば、カメラは+50度の方向を向かせたいのです。 ttp://w3e.kanazawa-it.ac.jp/math/category/kika/heimenkika/henkan-tex.cgi?target=/math/category/kika/heimenkika/naibunntenn.html この法則を利用し、Aまでの距離とBまでの距離を利用。 lenA = D3DXVec3Length(pVecA); lenB = D3DXVec3Length(pVecB); D3DXVec3Lerp(pOut, pVecA, pVecB, lenA / (lenA + lenB)); としてpOutの方向を向かせれば、丁度中間の方向を向けそうです。 まず、ここまであっているでしょうか? あっていると仮定して、次のステップ、(例えば)AとBの角度的に3:7の方向を向きたいという場合はどうすればいいでしょうか?
287 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 01:01:25 ] 角度で応用きかすなら極座標を使った方がいいような気がする
288 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 12:34:56 ] 図の角度**のところをそれぞれθ、φとおいて、二通りの求め方で面積S1、S2求めて比較
289 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 15:42:44 ] 質問よろしいでしょうか D3DXLoadMeshHierarchyFromXを使っているのですが、Debugビルドの場合のみ 14MBほどの大きさのXファイルの読み込み時に ハンドルされていない例外 は test.exe にあります: 0xC0000005: Access Violation。 と出てしまいます。 10回に1回くらい出ないこともあるのですが・・・ __sbh_free_block の中でエラーになっているようで、これはメモリー空間が破壊されている時に出るとのこと なのでプログラムを最小構成にしてやってみましたが、それでもダメでした。 Releaseビルドでは問題は出ません。 また、アニメーションの数を減らして7MBくらいにするとDebugビルドでも問題は出ませんでした。 Xファイルはテキスト版でも、バイナリ版でも同様の結果でした。 何か心当たりある方はいらっしゃいますでしょうか? 環境はVC6.0+DirectX 9.0 SDK Update - (October 2004) です。
290 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 18:24:27 ] 自己解決しました。 デバッグモード時、d3dx9.libではなくd3dx9d.libをリンクすることでうまくいきました。
291 名前:デフォルトの名無しさん mailto:sage [2008/05/04(日) 19:04:18 ] 質問です。 DirectXアプリケーションで、日本語入力(IME)をサポートしようと思っています。 やりたいことは、IMEの変換ウィンドウと候補一覧ウィンドウを表示するということだけなのですが、 DirectXのサンプル(CustomUI)では、独自のコントロールの実装や継承を自前で行うことで実現していました。 CDXUTControl ↑ CDXUTEditBox ↑ CDXUTIMEEditBox 特にCustomUIのような独自のコントロールを作成したいわけではないのですが、 あきらめてCustomUIと同じような実装を自前でしなければならないのでしょうか。 それとも変換ウィンドウと候補一覧ウィンドウを表示したいだけであれば、もっと楽な方法があるのでしょうか。
292 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 02:20:18 ] D3DFILL_WIREFRAME のワイヤーフレームの描画の太さを、太くする方法ってありませんか? Zバッファへの書き込みをOFFにした状態で2ドット以上の幅でワイヤーフレームを描き、その後通常どおり描画。 とやることで、背景との輪郭線を綺麗に描けるのを期待しているのですが。
293 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 10:48:52 ] どんな画面だそれ
294 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:38:21 ] いい加減固定機能パイプライン使うの止めようぜ
295 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 11:57:59 ] >>293 理屈上は背景とキャラと間に線が入る感じになるかと。 ワイヤー時はZバッファへ書き込みしないようにしているので、ワイヤーフレームの後にキャラクタの描画で輪郭線以外は塗りつぶされますから。 >>294 プログラマブルシェーダで同等のことできますか? モデルのポリゴン裏返して黒くし、法線方向に膨らませる…。っていうやつも悪くはなかったのですが、何分重くて。 スキンメッシュなので、自前でID3DXLineで引くわけにもいかないんですよ。 いかないですよね…? 変形後の頂点位置、わからないですし。
296 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:24:37 ] >>295 それが速く描画できる理由になるところが俺にはわからん
297 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:15:04 ] ワイヤーフレームモードでやりゃわかるが、ピクセルシェーダが呼び出される回数が圧倒的に少ないぞ だが俺はあの線を太くする方法は知らんな あれば結構魅力的な輪郭線描画法かもしれん
298 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:21:27 ] 質問 連邦VSジオンみたいなゲームでも作ろうかと3Dを本格的に始めたのですが、スペックで相談です。 あのゲームは2VS2なのでキャラが4体でてきます。 1キャラ6000三角ポリゴンくらいで作って4体を画面内に表示したところ、FPS60が維持できませんでした。 私のPCのグラボが、GF6600GTとかなり古めだというのはあるのですが、こんなもんなのでしょうか?
299 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:35:59 ] 実際にやってみてそうなったのなら、幻覚を見るような病気がない限りその通り。
300 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:02:35 ] えーと、私のプログラムが甘いとは思うので 「それ低すぎだろw何かミスってね?」 でなければいいなと思ったのです。 こんなものですか。1キャラ2000ポリくらいにしないと、マップとかにパワーまわせませんね
301 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:06:45 ] 1キャラ△6000て割きすぎ
302 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:38:29 ] あちゃー、割きすぎでしたか。 今まで3Dツール上でレンダリングするだけだったので、その癖ですね。 ゲーム用はやはりもっと抑えないとということですか。 ありがとうございました。
303 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:48:30 ] デバッグをpするとobjbase.h': No such file or directoryと出てデバッグできません どうすればデバッグできるようになるのでしょうか?
304 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 22:49:16 ] >>303 は誤字 デバッグをするとobjbase.h': No such file or directoryと出てデバッグできません どうすればデバッグできるようになるのでしょうか?
305 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:06:05 ] objbase.h': No such file or directoryだけだとわかりませんね エラーメッセージ貼ります c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory Stage4.cpp c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory Stage3.cpp c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory Stage2.cpp c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory Stage1.cpp c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory Ranking.cpp c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory Option.cpp c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory MyGameLib.cpp c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory Main.cpp c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h(40) : fatal error C1083: include ファイルを開けません。'objbase.h': No such file or directory
306 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:16:53 ] デバッグ?コンパイルじゃなくて?
307 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:17:31 ] そのパスに、d3d9.hは実際にあるの?ないの? パスはあるけど、ヘッダファイルだけないの? それともパス自体ないの?
308 名前:デフォルトの名無しさん [2008/05/05(月) 23:40:39 ] >>306 デバッグボタンでコンパイルしてるというのでしょうか・・・? >>307 あるとかないとか言われてもわかりません インストールしてオプションでパス設定してデバッグしただけですから・・・ Microsoft DirectX SDK (August 2007)ファルダの中にはDeveloper Runtime Documentation Include Lib Samples Utilitiesフォルダがあります
309 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:43:16 ] Windowsのパスもわからんのに、プログラム組むのは無茶だぜ… c:\program files\microsoft directx sdk (august 2007)\include\d3d9.h というファイルは、Windows上にファイルとしてきちんと存在してるの? パス間違えてるんだと思うぜ? 半角スペースのあるなし 括弧の半角全角とか、きちんとやってみ。
310 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:44:42 ] 真性のゆとりだな
311 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:52:45 ] 3Dでキャラの髪の毛が動きに合わせて(自動計算で)フワってなるやつって、 動きの計算は自前でやるにしても、どうやってモデルから構造出して、計算してんのかなぁ やったことある人いる?
312 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 23:55:59 ] 普通に自前でぼーん入れてノードを布シミュの応用で動かしてるだけじゃねーの大抵は
313 名前:デフォルトの名無しさん [2008/05/06(火) 00:02:41 ] d3d9のC/C++ヘッダーってファイルあります
314 名前:デフォルトの名無しさん [2008/05/06(火) 00:03:19 ] >>313 は>>309 へレス
315 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:46:22 ] objbase.h がないんだとさ。 PC内全検索して、objbase.hがあるか確認 あるなら、そこへもパス通せ。 ないならSDKの再インストール
316 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 00:58:58 ] クロスシミュレーションの動きを、Xファイルにアニメーションとして取り込むことってできませんよね? 再生するだけで十分なのですが、Direct3Dでクロスシミュを簡易的に再生するのに適した方法はどんなのがありますでしょうか?
317 名前:デフォルトの名無しさん [2008/05/06(火) 01:12:24 ] >>315 C:\Program Files\Microsoft Platform SDK\Includeにあるみたいなんですがこれでいいんでしょうか?
318 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 07:46:19 ] >>316 Xファイルを吐き出す側の3Dソフトに クロスシミュのプラグインとか入れて、そのモーションで吐き出すが一番簡単 それとも自前でクロスシミュをDXで出来ていて、それをDX上でしたくてどうにか出来ない、 って事とは思えないが…一応… 前提としてD3DX関数でしかXファイル扱えないとかじゃないよね… クロスシミュで求めた頂点で、モーフアニメーションでもすれば良いじゃん
319 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 07:54:17 ] >>286 亀レスで申し訳ないが… カメラ位置からA地点を結ぶベクトルA、カメラ位置からB地点を結ぶベクトルB それぞれのベクトルA, Bを単位化して、その単位化したベクトルをAA, BBとする AAとBBを結ぶベクトルCCを作って、そのCCの長さを任意に割合で分ける点DDを作る カメラ位置とそのDDを結ぶベクトルが君の求めるカメラ注視点ベクトルだと思うが…
320 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 08:25:59 ] 質問させてください。 dxsdk_aug2007をインストール中に「This pre-release version of XAudio2 has expired please upgrade to tha latest version」と出るのですが、 そのままokをクリックしてインストールを終わらせていいのでしょうか?
321 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 09:29:44 ] >>320 MSお得意のベータ版の時限装置が発動でもしてんじゃね? xaudio2使うんじゃなければ問題無いと思うよ。
322 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 09:37:46 ] MyGameLib.obj : error LNK2019: 未解決の外部シンボル __imp__TranslateMessage@4 が関数 "void __cdecl playMovie(char const *)" (?playMovie@@YAXPBD@Z) で参照されました。 MyGameLib.obj : error LNK2019: 未解決の外部シンボル __imp__GetClientRect@8 が関数 "void __cdecl playMovie(char const *)" (?playMovie@@YAXPBD@Z) で参照されました。 D:\プログラミング参考サンプル\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\MuscatBoy.exe : fatal error LNK1120: 外部参照 21 が未解決です。 ビルドログは "file://d:\プログラミング参考サンプル\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\BuildLog.htm" に保存されました。 文字数制限にひっかかるので多少省きましたすみません このエラーの解決策を教えてくださいお願いします
323 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 10:02:45 ] 関数宣言はあるのに実態が無いんだろ
324 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 10:55:18 ] >>319 亀レスでも大変ありがたいです。 ただ、AAとBBを結ぶCCは直線なので、任意の割合で分けても「角度的に割合で分けた」ことにはならないと思います。 本当に角度的なものなら、DDはAAとBBを結ぶ「曲線」の上になければならないと思います。
325 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:05:33 ] >>324 その通り それよりなぜ極座標を使わないかを教えてくれ
326 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:26:10 ] >>318 Xファイルから布部分を取り出して、自前でクロスシミュしてリアルタイムに描画ってのはできます。 これだと ・リアルタイムゆえ、色々な変化に柔軟に対応可能 ・リアルタイムに計算するコストが必要 ですよね。 今回はキャラがきまったアニメーションしかしません。リアルタイムに計算しない方針です。 D3DXのXファイル再生サポートをD3DXAnimationControlerしか知らないのですが、 これが制御するのはボーンの動きだけですよね? 古典的クロスシミュの1つとして、布に大量にボーンを仕込んで…という方法がありますが、(D3DXを使った)Xファイル再生ではその方法しかないのかな?という疑問です。
327 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:35:51 ] >>325 極座標を使うということは、一旦座標をatanなどを使って角度に直した方がいいということでしょうか? AとBと0,0,0を含む平面を考え、その平面上でのAの角度(0度とすると計算しやすいか)と、Bの角度を求める。 という方法でしょうか? また、今勉強中なのですがクォータニオンというものを使えば、望んでいることが簡単にできるのかとも思っているのですがどうでしょうか?
328 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:48:14 ] >>327 角度で応用きかすなら角度に直した方が可読性が高いかと思って 思いついてたのはargとpolar ごめんクォータニオンはよくわからない
329 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:51:03 ] >>322 Platform SDKをインストールしていなければインストール。 ttp://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en インストールしている場合、binとincludeとlibの優先順を確認。 ttp://forums.microsoft.com/MSDN-JA/rss.aspx?siteid=7&postID=1320640&forumID=188
330 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 14:59:47 ] >>321 そうですか。 クリックしてみます。 ありがとうございました。
331 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 15:54:51 ] >>324 AAとBBは単位化してるから、CCは二等辺三角形の底辺と同じなんだけど… プロセスが必要で、結果が求まるだけじゃ駄目なのかね
332 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:04:46 ] >>331 >>319 だと角の2等分でしかうまくいかない
333 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 16:10:04 ] >>328 の訂正 そういや3次元だからargとpolarは使えないわw >>327 の通りです。 座標系変換の関数がなければ作ってみてもいいだろうし