1 名前:デフォルトの名無しさん mailto:sage [2007/11/27(火) 16:56:40 ] ※回答する人も、質問する人も必ず読んでください これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。 【C++】 DirectX初心者質問スレ Part14 【C】 pc11.2ch.net/test/read.cgi/tech/1189257706/
360 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 17:09:49 ] システムメモリー上のサーフェイスに直接アクセスするときは Lockしなくていいってほんと?いきなりddsd.lpSurfaceにアクセスできる?
361 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 19:05:53 ] DirectX SDKをインストールしたんですけどインストールしたバスの場所が分かりません 一応{D¥Program}にインストールしたつもりですが{DIRECTX9SDK}が見つかりません {Redist}{Samples}{Utilities}{Developer Runtime}{Documentation}{Extras}{Include}{Lib}はあるんですけど プログラムの追加と削除には登録されてるみたいなんですけど肝心のバスが分かりません バスの調べかたなど知ってる方がいたら教えてください
362 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 19:48:45 ] VCを使ってたら知る必要もないけど別ので作るのかな SDKはあくまで金槌や釘などと同じく道具だから本体は無い。 重要なのはIncludeフォルダとLibフォルダで、まぁ説明書と目次みたいなものか。 IncludeフォルダとLibフォルダが分かっていれば、それぞれのパスを登録するだけでOK
363 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 19:57:14 ] レスありがとうございます もう1つ質問なんですけど、VC++で使うにはサブシステムのバス通さなきゃいけないと思うんですけど(ネットや書籍で書いてた) ですがdxsdk_november2007では勝手に登録してくれるんですか? インクルードファイルに{Include}が登録されてあったり ライブラリファイルには{Lib\x86}が登録されてるんです ちなみにインストール前は登録されてなかったです これはどういうことなのでしょか?この上に新しく登録しなきゃいけない?それとも自動で行われてるからやらなくていい? 分かる方いたら教えてください
364 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 20:05:16 ] 別に説明書や目次が重複しても問題ないだろ、無駄なだけで。
365 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 20:17:16 ] なるほどじゃぁ登録します ありがとうございました
366 名前:デフォルトの名無しさん [2008/01/05(土) 20:41:02 ] VisualStudio2003 Spoke VersionのMSDNライブラリにはVisualBasic以外のDirectXの解説を インストールできますか?VisualBasicしか検索でてこないので・・・ お願いします。
367 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:39:46 ] ビルドは正常終了するのにデバックだとエラーが出るんですけどどうしてなんでしょうか? エラー文は以下の通りです ------ ビルド開始: プロジェクト: MuscatBoy, 構成: Debug Win32 ------ コンパイルしています... StageMenu.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Stage4.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Stage3.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Stage2.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Stage1.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Ranking.cpp
368 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:40:19 ] D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory Option.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory MyGameLib.cpp D:\Program\Microsoft_DirectX_SDK(November2007)\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800 d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\muscatboy\MyGameLib.h(16) : fatal error C1083: include ファイルを開けません。'dmusici.h': No such file or directory コードを生成中... ビルドログは "file://d:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\BuildLog.htm" に保存されました。 MuscatBoy - エラー 8、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== よろしくお願いします
369 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:46:35 ] ビルド自体失敗してるやんw
370 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:55:46 ] 見間違いしてましたビルドでも失敗してました ですがこれサンプルなので自分では一切さわってないものなんですけど・・・ サンプル自体糞ということですか?
371 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 21:56:01 ] >>368 SDkNovember2007から DirectMusicをサポートしなくなった
372 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 22:05:32 ] てことはAugust 2007 DirectX SDKをDLしないといけないんですね 助かりましたありがとうございました
373 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 00:07:52 ] DirectMusicなくなっちゃったのか 音の再生はMusicしか使ってないと言うのに
374 名前:デフォルトの名無しさん [2008/01/06(日) 11:57:29 ] 一昨日最近アップされた(?)DirectX9.0C(4.09.0000.0904)ってやつに したんだけど、次の日からパソコンが立ち上がらなくなり(黒い画面で 左上に文字カーソルが点滅のまま)仕方ないので、F8で前回正常にっての 選んでから起動させたんだけど、今日完全に起動しなくなった・・・ 人によっては、最悪なケースになるのかな?
375 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:28:09 ] DirectX3位までは、ドライバまで置き換えられることがあって、 その結果起動しなくなったって話がたまにあったよね。
376 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:34:53 ] DirectX「3位」ってなんだろうと思った
377 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:36:26 ] d:\ゲーム製作案追加\ warota(w
378 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:42:03 ] >>374 ぶっちゃけDirectXのせいじゃないんじゃね? ランタイム入れなおしたなら 再起動求められたはずだしそのときは正常起動したんだろ? 他になにかやらかしてないかよく思い出せ あと一昨日アップされたやつなんてあったっけ?
379 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:45:00 ] >d:\ゲーム製作案追加\ ワロタw
380 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:03:39 ] >>360 スルーされてるけど、知らない??
381 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:30:37 ] 昔やねうらおがそんなこと言ってた希ガス。 www.sun-inet.or.jp/~yaneurao/intensive/diw1.html
382 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:44:49 ] >>380 おまえは何を言ってるんだ?とか思われてる予感。 DirectX7のDirectDrawのヘルプを見る限り、 そんな保証はどこにもされていない。 ただし、現実問題としてはできるらしい、と。 非Lock状態だからといって、わざわざアドレスを動かすような理由も無いし。 ちなみに>>381 のサイトは既に6年以上も前の記事だから現状は不明。 仮にLockしたところで、パフォーマンスへの影響は無いに等しい気がする。
383 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:33:36 ] DirectMusicなくなったのかよ DirectShowでMP3とかしか流せなくなったのか?
384 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:21:16 ] >>381-382 禿しくサンクス >>382 そんなこと言ったって資料は出てこないし余りにも未開の地過ぎて右も左も分からんのだよ・・・
385 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:04:35 ] DirectX9のサイトとか普通にあるけど
386 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:07:13 ] てか それこそ自分で試してみれば良いんでね?
387 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:14:08 ] 所詮、現在のグラフィックカードは、IntelかAMDかnVidiaしかないも同然だから、 3種類試せばおkじゃね。
388 名前:367 mailto:sage [2008/01/06(日) 21:19:00 ] August 2007 DirectX SDKをインストールしたのですがまたエラーがでました 分かる方いたら教えてください 'MuscatBoy.exe': 'D:\ゲーム製作案追加\アクションゲームプログラミング\マスカットボーイ\ソースファイル\MuscatBoy\Debug\MuscatBoy.exe' を読み込みました。バイナリはデバッグ情報と一緒にビルドされませんでした。 'MuscatBoy.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\kernel32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\user32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\gdi32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\ole32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\advapi32.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\rpcrt4.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\msvcrt.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\d3d9.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\d3d8thk.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\version.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\winmm.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\d3dx9_35.dll' を読み込みました。シンボルが読み込まれていません。 'MuscatBoy.exe': 'C:\WINDOWS\system32\dinput8.dll' を読み込みました。シンボルが読み込まれていません。 プログラム '[4068] MuscatBoy.exe: ネイティブ' はコード 0 (0x0) で終了しました。
389 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:21:34 ] 別にエラーなんか出てないだろ。 デバッグ実行してみたけど、シンボル情報がない、というInfoだけ。 最後は、MuscatBoyが終了した、ってだけ。
390 名前:367 mailto:sage [2008/01/06(日) 21:25:23 ] そうだったんですか デバック後アプリ出てこなかったのでエラーだと思ってました ありがとうございました
391 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:23:26 ] >390 悪いことは言わんからツクールでも使っとけ。
392 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:42:35 ] バンプマップでメカのモールドを表現しているんですが、これだと環境光だけの陰の部分は溝が 出てこず、のっぺらりんとしてしまいます。 これの対応策としては、テクスチャで描いた溝と組み合わせる、くらいでしょうか? 他に良い方法があるようでしたらご教示ください。
393 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:43:50 ] >>391 いや、最初はわけわからんだろ?
394 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:44:59 ] ピクセルシェーダからスカラ値を出力 -> 入力したいんですが、 レンダリングターゲットのビット深度が最高16bit x 2だったので それを32bit x 1にする変換を組み込みました。 // ピクセルシェーダ出力 vOutColor.x = sSrcColor * 65536.0f; vOutColor.y = sSrcColor * 65536.0f * 65536.0f; vOutColor = floor(vOutColor) / 65536.0f; vOutColor = frac(vOutColor); ↑この出力を↓この入力に // ピクセルシェーダ入力 sInColor = vSrcColor.x; sInColor += vSrcColor.y / 65536.0f; しかしこれだと、ノイズが乗って正しく処理できないのか画像にゴミが出ます。 普通に16bit x 1でおこなった場合はゴミは出ません。 シェーダの精度の問題かと思い、65536.0fではなく256.0fでやっても同様でした。 せっかく高精度にしたのに、逆の結果になって哀しいんですが 何でだと思いますか? GPUはラデオン9700です。 >>392 バンプマップが光の入射ベクトルと法線ベクトルの差で 陰影をつけるテクニックなら、無指向の環境光で 陰影がつかないのはそれで正しい結果だと思うけど。 対策としては、ディレクショナルライトに変えるか 環境光に擬似的なライトの位置や方向を設定してみては?
395 名前:デフォルトの名無しさん [2008/01/07(月) 00:59:35 ] 参考書についてきたアニメーション入りのXファイルはちゃんと動くのだが、 どっかから拾ってきたXファイル(アニメ入り)が動かない(表示はされる)。 現在は再帰でフレーム走査して云々って処理してるんだけど、 これは拾ってきたXファイルが悪いのだろうか? ちなみにXファイルをダブルクリックして起動するソフトで見るとメチャクチャ。
396 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 01:46:41 ] >>395 Xファイルのフォーマットに癖があるからw 少なくとも俺は、どのフォーマット(Xファイルの方言みたいなもんw)にも 対応したXファイル読み込み→表示ってのは見たことない 書き込み→読み込みも同様 ちなみに ・メッシュのみ ・フレームとメッシュ混合 ・アニメーション+アニメーション対応フレーム+メッシュ ・アニメーション+アニメーション対応フレーム+メッシュ+フレーム(アニメーション非対応) ・ワンスキン ・ワンスキン+アニメーション ・スキンメッシュ+アニメーション+フレーム(アニメーション非対応)+メッシュ ・なんだかよくわからん名前でモデルのインスタンスを共用してるやつ(イミフw読めたのみたことないw) ・他多数 等、すべてに対応しようとすると組み合わせが鬼 結論:Xファイルは考えるだけ無駄(考えるな感じろ) 補足 まあ、どっかの入門サイトでそいつができるって言った方法や内容以外の用途で使わないのが頭のいい使い方 そうすると応用が利かないし、ツール上で1つばっかりモデル作ってはいおしまいなんてありえないから 実際はXファイルなんて使ってなんとかしようとすると「ああ、こんなことなら違う方法でやっときゃよかった」ってなるんだよね ま、アニメーション使わなきゃ余裕だし、結構使えるから自分ができる範囲でなんとかしなさいな おしまい
397 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 01:58:07 ] >>394 その式は 0.0≦sSrcColor<1.0 ならいいけど、 sSrcColor=1.0 の場合 多分 0.0 になっちゃうわね。(frac(1.0)=0.0) vOutColor = frac(vOutColor); を vOutColor.y = frac(vOutColor.y); (上位側(x)をfracしない) にしてもダメかしら。
398 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 02:23:52 ] >>397 直りました! まさにそれでした。 ありがとうございました。
399 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 02:58:12 ] >>394 それで本当に精度がよくなってるか、確認した方がいいかと。 俺は以前ピクセルシェーダで1/640を計算させただけで精度が悪くて 使い物にならなかったよ。
400 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 09:39:25 ] クライアント領域全体をキャプチャして.jpgなどの画像として保存できる関数ってありますか?
401 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:02:13 ] ありません
402 名前:デフォルトの名無しさん [2008/01/07(月) 13:17:11 ] >>396 レスサンクス。やはりフォーマットの問題だったか。 どっかでフォーマットに注意すべし!って聞いたことあったのでもしや・・・と思ったがやはり。 まぁ、注意するだけで何もできないのだけどw つまり、アニメしなかったらグラフィッカーに文句言えばおkってことですね。
403 名前:K田 [2008/01/07(月) 13:36:38 ] FortranをC言語に直すことが出来なくて… やってくれ☆
404 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:22:46 ] Direct3Dのついて質問です。 デバイス初期化の際にHWNDが必要ということは、複数のウィンドウが開かれるアプリケーションの場合 ウィンドウごとにデバイス初期化が必要ですよね? ということはそのデバイスを通じてロードされるテクスチャもウィンドウ毎にロードする必要があるのでしょうか? 例えばAというPNGファイルをロードしたテクスチャを、ウインドウAでもウインドウBでも使いたい場合、A用B用と@別個にロードするのでしょうか? VRAMもったいないなぁという気分なのですが…)
405 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 15:55:00 ] >>404 まずはFAQを全部読むんだ ttp://msdn.microsoft.com/library/ja/jpdndxgen/htm/directx9devfaq.asp
406 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 16:16:10 ] >>405 >1 つの Direct3D デバイスのみを使う。複数のターゲットにレンダリングする必要がある場合は、SetRenderTarget を使います これですね ありがとうございます。 昔作ったSwapChain管理クラスひっぱりだします(何のために作ったのかを失念してましたわ…)
407 名前:374 [2008/01/07(月) 17:51:32 ] >378 すいません、一昨日というのは4ゲーマーを見た時でした。 で、インストール完了後は再起動を求められなかったのでその日は そのままパソコンを落としたと・・・ で、次の日に起動したらその症状が出てたという訳です(^^;
408 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 18:04:43 ] >>402 データを追ってどこに問題があるのか確認するのがプログラマの仕事だろ。 使えないなら自分でまともなエクスポータを書いてグラフィッカーに渡
409 名前:392 mailto:sage [2008/01/07(月) 18:59:03 ] >>394 >陰影がつかないのはそれで正しい結果だと思うけど。 それを承知の上での質問です。 >環境光に擬似的なライトの位置や方向を設定してみては? なるほど! ありがとうございました。
410 名前:304 mailto:sage [2008/01/07(月) 21:49:45 ] 今まで、 // 射影行列の初期化 D3DXMatrixIdentity(&m_proj); D3DXMatrixPerspectiveFovLH(&m_proj, D3DXToRadian(45.0f),//カメラの画角 aspect, //アスペクト比 1.0f, //Nearプレーン 1000.0f); //Farプレーン pD3DDevice->SetTransform(D3DTS_PROJECTION, &m_proj); と参考書のサンプル通りにしていたところを、>>322-324 さんのを参考に D3DXMatrixIdentity(&m_proj); D3DXMatrixPerspectiveOffCenterLH(&m_proj, -CLIENT_WIDTH * 0.5f, CLIENT_WIDTH * 0.5f, -CLIENT_HEIGHT * 0.5f, CLIENT_HEIGHT * 0.5f, 1.0f, 1000.0f); pD3DDevice->SetTransform(D3DTS_PROJECTION, &m_proj); に変更しました。 すると、Xファイルを読み込んでCGを描画していたのですが、表示されなくなってしまいました。 何が原因なのでしょうか?
411 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 22:20:14 ] >>410 OffCenter の引数をちゃんとカメラ座標系で指定しているか?
412 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 23:19:34 ] シェーダ解説本を見ていると、アプリケーションからシェーダ変数を設定する際にハンドルを介して 行うものがありますが、直接"(シェーダ変数名)"で指定するのに対し、どういった利点があるのでしょうか?
413 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 23:27:33 ] >>412 パフォーマンスが上がる ハンドルは固定なので 一番最初に一度だけ取得するだけで良い
414 名前:412 mailto:sage [2008/01/07(月) 23:31:05 ] >>413 なるほど! ありがとうございました!
415 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:32:52 ] C言語でコンパイルすると○○(ファイル名).OBJが開けませんと出るんですが、 原因は何でしょうか?
416 名前:415 mailto:sage [2008/01/08(火) 00:33:48 ] すみません、誤爆しました。
417 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:47:05 ] 設定されているパスにそのOBJがないからです
418 名前:410 mailto:sage [2008/01/08(火) 17:13:47 ] すいません、これを忘れていました。 #define CLIENT_WIDTH 770 #define CLIENT_HEIGHT 480 >>411 DirectXは左手座標系ですよね。 -CLIENT_WIDTH * 0.5f = -335 CLIENT_WIDTH * 0.5f = 335 -CLIENT_HEIGHT * 0.5f = -240 CLIENT_HEIGHT * 0.5f = 240 になるので、特におかしくない気がするのですが…。
419 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 17:37:23 ] >>418 glFrustumも D3DXMatrixPerspectiveOffCenterLHも クライアントサイズを指定するものじゃないぜ OpenGLの知識があって OpenGLのプログラムをDirectXに移植するとかで こんな面倒なことしてるんじゃないのか??
420 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:18:19 ] そもそもDirectXに座標系など無い。 決めているのはプログラマ自身でDirectXは何の関係もない。
421 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:39:36 ] 使ってるモデリングソフトにあわせると吉 そうでなくても吉
422 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:21:10 ] 目的がよくわからんな 2Dと同じ座標感覚にしたくて ニアクリップ面を画面サイズに合わせて 適正な画角になるようにカメラを設置するってことなのか?
423 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:50:11 ] 2Dゲーなら大事だけど3Dゲーではたいして大事ではない
424 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:14:47 ] ファーストフードにはあるけどコンビニにはない。 auにはあるけどdocomoにはない。
425 名前:410 mailto:sage [2008/01/08(火) 23:29:33 ] すいません、実は>>234 も私なのですが、目的は「斜め投影変換」です。 OpenGLの知識は全然ありません。 OpenGLなら↓のURLのように、glFrustumを用いれば実現できると聞いたので、DirectXでglFrustumを実装しようとしていました。 (ttp://www.vsl.gifu-u.ac.jp/techinfo/view/index.html)
426 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:54:37 ] 行列変換理解しろ。
427 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:57:46 ] 無理じゃねぇかなぁ
428 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 13:28:35 ] glFrustumもD3DXMatrixPerspective*****も あくまで透視変換をするための行列を生成するものだから どういじろうと物体が歪んだりはしない 簡単に言うと カメラの近くにある物を大きく遠くにある物を小さく描画するためのもの もし行列変換でやるなら その斜め投影変換とやら専用の行列を生成する必要がある てか斜めにしたいだけなら 適当な板にレンダリングして頂点を移動するだけでいい気もするんだが そもそもなんでそんなことしたいわけ?
429 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 15:55:45 ] >>425 411,419が何を言ってるのか理解できるまで、もっと勉強しる。 410のパラメータのD3DXMatrixPerspectiveFovLHで得られた行列と D3DXMatrixPerspectiveOffCenterLHで得られた行列を見比べるだけでも 何が間違っているのかなんとなく分かるだろう。 D3DXMatrixPerspectiveOffCenterLHに何を与えれば、元の行列と同じ行列が 得られるのか考えてみろ。
430 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 00:22:50 ] DirectX9.0cなのですが、 DirectMusicで、今現在再生しているセグメントの曲の再生が 終了したかどうかというのを調べるにはどうすればいいのでしょうか 再生終了していればそのセグメントを開放し、そこを別の曲に差し替えたいのですが 肝心の終了したかどうかの判別の仕方がわかりません 知っている方いたら教えてください。よろしくお願いします
431 名前:430 mailto:sage [2008/01/10(木) 21:50:25 ] 自己解決しました
432 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:06:25 ] 自己じゃねえだろ マルチな上に嘘まで書くのかよ
433 名前:430 mailto:sage [2008/01/11(金) 00:58:35 ] >>432 あなたがマルチとおっしゃっているのは外部サイトの話ですか? そこを見ればわかりますが、自分で解決していますよ。 それ以外の方法も教えてもらうことができましたけど。 それに、このスレッドのテンプレには外部で質問してはいけないなどと書いてないですし。 色々なサイトを利用して、できる限りの情報を集める事がそんなにいけない事なのでしょうか? どのスレでも同じルールだと決め付けるのはやめましょう。
434 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:06:08 ] >>433 一般的な常識として、複数箇所に同じ質問を投げるのは避けるべきです。
435 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:06:33 ] >>430 >>432 じゃないが、マルチと分っててやってるなら尚更だが、 そういうのはいけない事。どのスレでも・・・・とかのLvじゃなくて、ネットでは原則的なぐらいのルール。
436 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:09:59 ] ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88 www.ippo.ne.jp/g/53.html e-words.jp/w/E3839EE383ABE38381E3839DE382B9E38388.html ここらにも書いてあるが、ネット創世記からある基本的なマナー違反。 マルチポストはスレや板のルールとか以前の問題。
437 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:10:24 ] 心がせまいなぁ 俺ルールをネット原則とかもうね
438 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:13:07 ] そうそう、「俺様ルール」を持ち出して、マルチを正当化するなんてどうかしているよね。
439 名前:430 mailto:sage [2008/01/11(金) 01:20:38 ] >>436 はあ。ネット原則なのかどうかはともかく、嫌う人も多いのだということですね こちらで答えてくれる人が早くいらっしゃれば、外部で質問する事もなかったのですが… これからはなるべく気をつけて書き込む掲示板を選ぶ事といたします。 ご忠告どうもありがとうございました
440 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:22:32 ] 訳 : 使えねー掲示板だな。もうこねーよヽ(`Д´)ノ
441 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:25:30 ] いいんじゃねーの別に。マルチ嫌うって感覚はよくわからんよ しょせん掲示板なんて使い捨てなんだしさ
442 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:26:00 ] ネチケットもしらねえのか
443 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:28:11 ] ネチケットわきまえてるような人種はここにはいないんじゃないかな
444 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:36:07 ] ま、向こうの解答者は間違ってるけどな IsPlayingはスピーカーで音が鳴ってるかどうかを判断するものだから Playした直後でも鳴ってないという結果になる場合がある 結局の所、メッセージ拾う方が確実に終了を検知できるんだよ
445 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 01:45:16 ] これか。糞仕様すぎる ttp://msdn.microsoft.com/library/ja/directx9_c/directx/htm/idirectmusicperformance8isplaying.asp?frame=true
446 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 02:15:20 ] 所詮MSですから
447 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 02:34:32 ] ネチケットとかもう死語じゃね? 掲示板であろうとログが残り、そのログは将来同じような問題を抱えた人間にとって有益なものとなりうる。 複数サイトでの同様の質問は検索を困難にさせ、解決方法を見つけにくくなる。 そうなればまた同じ質問をすることになる。ネットの世界であろうとリソースは有限なので無駄であることに変わりはない。 とかキモイこと書いてみましたw ぶっちゃけ回答する側の人間はいろんなサイトを回っていることが多く、マルチは実際問題よく見かける。 解決したならその方法や、今回の場合であれば解決した側のサイトのアドレスでも張ってくれれば多少はよかったかな?
448 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:12:44 ] むしろ複数サイトに書いてあったほうがみつけやすくていいよ
449 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:16:00 ] 何も答えもしない相手に解決方法書く馬鹿がどこにいるんだよ
450 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 03:50:47 ] 一箇所にしかない答えってのは結局、他の可能性を潰してるだけだと思うんだ その答えが真である保証だってどこにもないんだから 一箇所にしかない答えより、複数の答えがある方がずっといい
451 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 04:02:03 ] ぶっちゃけそんなの気にする奴はたいしていない 短気な奴の方が声が大きいのはネットもリアルも同じと言うだけの話
452 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 07:13:46 ] 俺は2ちゃん以外みてないからマルチOKだよ マルチが嫌な人は2穴責めが嫌な人だと思う
453 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 10:30:38 ] これはひどい自演ですね。
454 名前:454 mailto:sage [2008/01/11(金) 10:37:00 ] 自己解決しました
455 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 11:04:12 ] カスラックみたいな事言うなよ コピーワンスなんて馬鹿馬鹿しいものが導入されたせいで 後世に文化を繋ぐことが困難になってしまったというのに
456 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 11:18:57 ] カスラックは好かんけどコピーワンスと文化云々は関係ねーだろ(w
457 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 11:44:31 ] 関係あるだろ マイナー番組を録ったメディアが劣化したら取り返しが利かなくなるんだから
458 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 12:16:58 ] >>452 ケツの穴のちいさい奴だな
459 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 13:07:00 ] 俺はマルチよりあおいちゃんの方が好きだな
460 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 13:19:03 ] なんでDirectX関連以外の話題だと盛り上がるんだよw
461 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 00:18:54 ] DirectXゲームグラフィックスプログラミングVer.2.1Vistaのサンプルで //カメラのパラメータ設定 // ビューポートの取得 D3DVIEWPORT9 vp; if(FAILED(pD3DDevice->GetViewport(&vp))) { return; } // アスペクト比の計算 float aspect; aspect = (float)vp.Width / (float)vp.Height; (以下略) とあるのですが、 vp.Widthとvp.Heightを見てみると0と770になっていました。 vp.Widthが0になっているせいでaspectが正常に取得できません。 なぜ0になっているのでしょうか?
462 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 00:28:18 ] >>460 俺がよく燃える燃料を投下してしまったからorz
463 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 03:34:32 ] >>461 SetViewportしてないからじゃ ちゃんと設定してるかい?
464 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 17:48:14 ] direct Showの解説してるサイト知ってる方居たら教えてください。 VC++6.0です。
465 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 17:56:30 ] Direct Show 解説で検索
466 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 19:15:18 ] >>465 お前に聞いてない。
467 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:05:43 ] DirectShow で解説、だよなあ。
468 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:09:50 ] 解説じゃなくて検索だった。
469 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:23:03 ] これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人
470 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 20:45:04 ] >>468 お前に聞いてない。
471 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 21:41:06 ] >>463 セットしないといけないんですね。 サンプルに見当たらなかったので追加してみました。 //カメラのパラメータ設定 // ビューポートの取得 D3DVIEWPORT9 vp; if(FAILED(pD3DDevice->SetViewport(&vp))){ return; } if(FAILED(pD3DDevice->GetViewport(&vp))) { return; } // アスペクト比の計算 float aspect; aspect = (float)vp.Width / (float)vp.Height; (以下略) すると、 Direct3D9: (ERROR) :Viewport width or height is zero or negative というエラーが延々とでてきてしまいました。 もしかしてSetViewportの使い方間違ってます?
472 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 21:48:49 ] SetViewportは自分でビューポートのサイズを指定するんだYO・・・
473 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 22:26:41 ] もはや頭が悪いとか言うレベルじゃないぞ。
474 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 22:37:02 ] DirectXを理解していないとかC++を理解していないとかじゃなく プログラミング自体を理解していないんだな
475 名前:デフォルトの名無しさん mailto:sage [2008/01/12(土) 23:10:35 ] ワロタ(w エラーメッセージくらい読めよ
476 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 03:23:18 ] そんなエラーメッセージ出してくれるのか 親切だなw
477 名前:デフォルトの名無しさん [2008/01/13(日) 06:35:13 ] VC++2005ExpressEdition DirectX 9.0を使用しています。 Game.h Game.cpp Input.h Input.cppというファイルで入力によって値を変えようとしてるんですけど、Game.h内で class Game{ <略> privete: struct AIRPLANE{ FLOAT v; FLOAT roll; FLOAT pitch; }airplane; } と構造体を宣言して、Input.cpp内で構造体の値を入力によって変えたいんですがうまくいきません。 error C2061: 構文エラー : 識別子 'AIRPLANE' とエラーが出てしまいます。Input.cppの実際に値を変えようとしているところは #include "Input.h" <略> void Input::GetInput_Game(AIRPLANE airplane){ if(KEY_Z == TRUE){ airplane.v += 0.001f; } でInput.hのクラスでは "Game.h"をincludeして void GetInput_Game(AIRPLANE airplane); としています。キー入力はうまくいくのですが、構造体の受け渡しがうまくいきません。includeのやりかたが悪いのでしょうか?
478 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 07:23:11 ] ひょっとしてそれはギャグでいっt
479 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 09:49:30 ] . ィ .._ .......、._ _ /:/l! :~""''.>゙' "~ ,、、''‐'、| _ ゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':, ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ " .!-'",/ `'-‐'') /\ `/ でノ-〈 .-''~ >'゙:: ‐'"゙./ ヽ.,' ~ / //::::: ', / ,:'゙
480 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 09:57:14 ] >>477 君それ、DirectX全く関係ないから。 DirectXに手を出す前に、とりあえず君はコンソールアプリでも作って クラスと構造体、引数の受け渡しの勉強をしなおせ // 構造体定義 typedef struct { FLOAT v; FLOAT roll; FLOAT pitch; } AIRPLANE; // クラスメンバに構造体を加える class Game { private: AIRPLANE airplane; (略) }; void Input::GetInput_Game( Game *game ) { if( KEY_Z == TRUE ) { game->airplane.v += 0.001f; } } どういう動作をさせるつもりだか知らんが、だいたいこんな感じか
481 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 10:15:02 ] 志村ぁ、属性属性!
482 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 11:19:15 ] ああすまんwprivete→privateだけ気になってて間違えた privateじゃなくてpublicねw
483 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 15:25:11 ] ありがとうございます。 上手くいきました。
484 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:44:37 ] DirectX SDK を使いたいんだけど、インストールの仕方がいまいちわからんのです。 いろいろ試したところ以下の操作でビルドできるようになったけど、これって正しい? 1. DirectX 9.0b SDK をダウンロードして c:\dx90bsdk に展開する 2. DirectX SDK - (November 2007) をダウンロードして c:dx90bsdk に上書きコピーする 3. インクルードパスに c:\dx90bsdk\Include を追加する アドバイスあればお願いします。
485 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:50:40 ] 普通に実行すればインストーラーが勝手にやってくれるだろ 頭にウジが涌いているのか?
486 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:54:33 ] >>484 1はいらない 2はアップグレードじゃないので単体で動作する むしろ、前のバージョンのSDKは抜くべき 3はその動作だけじゃ足りないはず わからなければ入門書を買ってきたほうがいい 時間とお金を考えたら1人で考えるのは無駄かもわからんね 本は自分で立ち読みして探せ 致命的なのは1と2 なんでこんなことした? 普通に最新のSDKをダウンロードしてこい アップグレードキットはない
487 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:03:11 ] >485 まず DirectX 9.0b SDK をインストールしてビルドを試みたところ、最近のコードをビルドできなかった。 で、DirectX SDK - (November 2007) をダウンロードして上書きコピーしたらとりあえずビルドできた。 「そんなことしなくても○○をDLして入れればおk」とかアドバイスがあれば知りたいなと思って聞いてみた。 スマン>485
488 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:10:20 ] >>486 アドバイスありがとう。明日、本屋にいってみるよ。
489 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 18:30:40 ] ばーか
490 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:07:33 ] >>487 >ダウンロードして上書きコピーしたら これ駄目 レジストリとか環境変数とかなんも考えないのか? ファイルだけ書き加えて動くもんなんてそうそうないから 動いた→OK は全体の構造を把握してない限りありえない 一度アンインストールしてもう一度インストールしなおせ その状態で進めるとまた問題が起こったときに何が原因かさっぱりわからなくなるぞ
491 名前:デフォルトの名無しさん [2008/01/13(日) 19:16:51 ] DirectX9.0c以上ってどれをダウンロードしたらいいんですかね? いつも確認したら8.0になってるんですよ・・・
492 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:22:45 ] Windows95はDirectX8.0aまでの対応だよ。
493 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 19:38:56 ] そうだ まずOSのバージョンの確認からだな たまに古いの使ってる分際で開発なんてしようと思うキチガイがいるから閉口する とりあえずXPにしろよな つか、もっというと金がない奴はゲーム開発なんてやろうと思うな 色々楽をしようとするたびに出費がかさむ職業だぞw なんでもケチるとなんにもできない上になんにもわからない だからなんのゲームもできない 入門書のこともそう 読めばわかるようなことだけど自分で調べるとなるとひと月ふた月平気で過ぎていく なんにも金を出さないと2年たっても3年たってもいつまでたってもゲームなんかできない
494 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:45:34 ] 5000円の参考書買って役に立たなくても 「はずれか、チッ」としか思わなくなるようでないとだめ
495 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:56:55 ] 古い環境での動作、古い環境での開発が求められる場合もあるだろ まあガキの遊び程度だったら新OSでやった方が色々と楽だが あと、別に今時本がなくったって検索ワードを使いこなす技量があれば さほど情報に困ることはない もちろん本があるにこしたことはないけどね 楽をしようとするたびに出費がかさむというのには同意 馬鹿は大人しく金を使った方がいい
496 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:00:35 ] VC++2005の本を買ったけど、.NETフレームワーク開発が主体だと気づいて 結局ほとんど使ってない俺
497 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:21:23 ] >>493 は言い過ぎかもしれんが、俺も専門書にかかる出費はけちるべきではないと思う。
498 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:25:59 ] この分野はプログラミングの中でもニッチな方だから、 Web常に情報の蓄積がなく、本にしか書いてない基礎的情報も多い。
499 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:26:18 ] >>495 ていうか、調べてもいいけど該当する情報を見つけるまでかなりかかる場合もあるしね お前が本がなくてもなんてのは本を十分みたり、たくさんの人と話す機会があって何かを学んだいま だからこそいえることだろ? なくてもいいというにもたくさん本をみたうえでないとなくてもいいといえないわけだから そういう情報なんだよね必要なのって あるものごとを決める平均値みたいなもの、最適な判断材料は糞も糞なりに全部みないと 最後の解は得られない たくさんの選択肢を判断できるだけの情報力があればあとは時代が変わるごとの 差分値だけで済む こうなってしまっている状態の人間を基準にしてもしょうがない はじめはなんでも買ってなんでも吸収する気でないととても普通にプログラムが作れるレベルまで届かない 低賃金の割りに意外とつらいと思うぜ
500 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:56:42 ] ごめん。俺本買ったことないけど、使いこなせてるや。
501 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:03:39 ] 金出して買う程の書籍とかないよな。 ネットで十分。
502 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:04:50 ] まあ初心者レベルの情報だったら買うほどのこともないだろう 本屋に通えるだけの行動力があればいい
503 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:10:22 ] >>500 わかってるつもりで実はわかってない ってのはよくある ゲーム系から業務系にいったときにちょっとだけ苦労した 実務の正確さがちょっと足りなったかな 精度を高めるためにちょっとした苦行がいった でもそれだけだったけどw
504 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:12:43 ] ゲーム系は速さ重視だからな 業務系だとどうでもいいような決まりが多そうだ
505 名前:484 mailto:sage [2008/01/13(日) 23:35:48 ] 484です。 個人サイトとか MSDN とかを見て Visual Studio 2008 Express Edition で DirectX SDK のサンプルをビルドして実行できるようになった。 特に >>486 のコメントが参考になったよ。どもです。 ところで、DirectX (特に3D) プログラミングをするのにおすすめの本とかある? ネットで十分っていうコメントもあるけど。 ちなみにスキルは win32 API プログラミングはペゾルト本で一通りやってて、 ベクトル・行列の計算は苦にならない感じ(予習したから)。
506 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:38:51 ] すすめられる程の本は無い。 ネットでOK。 DirectXに特化した本はロクなのない。
507 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:41:35 ] >>505 1冊も買わないか 全部買って良いとこ取りするかのどっちかしかない 1冊あればOK的な本はない
508 名前:484 mailto:sage [2008/01/14(月) 00:53:51 ] >>506 >>507 そうか。しばらく DirectX SDK のサンプルと API リファレンスでがんばってみる。
509 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:47:22 ] >>508 一冊も買わないなんて効率悪いだけだと思うぜ俺は 細かい技術が足りてないくせにできると思ってる奴のいうことだと思う 俺のこれまでの経験でいうとネットなんてざっとしか載ってない おおざっぱに知るだけ知って知った気でいる分にはそれでもいいけど はじめはいろんな本を読んでまず技術の土壌を固めるべき そっちのが速い いらないとか言ってる奴は自分は過去に他の分野の本を読んで細かい技術を身につけてる場合が多い そういう奴は新人とか育てるのものっすごい下手なのであまり信用しないほうがいい これまで自分が出会った人とかちょっとの間でも教え請うた人の存在とかすっかり頭から抜けてる 馬鹿で恩知らずな奴なのでもうこういう奴が技術的に伸びることはもうない 本を読むことは人を知ることでもある ネットでは薄い 色んな人の色んな考えを吸収するには本をたくさん読む必要がある プログラム構成がめちゃくちゃ下手糞な奴とかいるけど アイディアが浮かばないとか素質がないんじゃなくて単純なスキル不足である場合がほとんど グローバル変数・関数使いまくりのままとか糞なソースばっかり書いて何年たってもグローバル変数を使う初心者のままとか結構ザラw
510 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:12:43 ] >509 それじゃ、一冊本のタイトルあげてみ?
511 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:19:24 ] まあ本買うやつなんて旧世代の人間だけだな。
512 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:23:01 ] >>510 誰向けの?
513 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:23:06 ] 本だったら電車の中とか布団の中とか喫茶店でも読めるだろ
514 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:29:22 ] DirectX SDK のサンプルってどうやってみれるの?
515 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:29:44 ] >512 俺に聞かんでも自分で良書と思うもんあげればおk。
516 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:39:21 ] >>514 DirectX Sample Viewer
517 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:40:32 ] 俺のオススメ Game Programming Gems 1-6 日本語版 (単行本) ゲームプログラミングのための3Dグラフィックス数学 (単行本(ソフトカバー)) 難しいので初心者にはオススメできないけど 絶版になる前には買っておいてほしいと思う 初心者にいいと思ったのは irectX ゲームグラフィックス プログラミング Ver. 2.1 Vista [NextCreator] (NEXT CREATOR) (大型本) ゲームエフェクトマニアックス (C MAGAZINE) (大型本) がおもしろいと思った 小さいプログラムを組みながら覚えるといいと思う 読んでないけどなんかいいかなと思った本は アクションゲームプログラミング (大型本) ホントに初心者がアクションゲーム作れるようになるかどうかやってみてくれw
518 名前:484 mailto:sage [2008/01/14(月) 03:46:42 ] >>512 たしかに自分が win32 API プログラミングを調べていたころを思い出すと ペゾルト本を読まなければ理解に時間がかったかも。 一度理解すれば API リファレンスでなんとかなるけど 道しるべとして本を頼るのも手だな。
519 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:03:11 ] >>509 おちつけ 何か嫌なことでもあったか?
520 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 04:09:23 ] >>509 の社内人間関係を綴った本が出版されたら買う(w
521 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 09:02:00 ] >>509 は将来会社を引っ張っていく貴重な存在。
522 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 12:08:48 ] 俺も一冊では足らず、DirectXでゲーム制作する本を四冊くらい買ったかな しかしどうしても本では理解できず 最終的にネットの情報に助けられた事もあるのも確かだな 国内のサイトじゃなかったけど
523 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:23:21 ] Managed DirectXでお勧めの入門書ってある? 洋書で黒い表紙の本がなかなか良かったんだけど、 和書だと見つからないんだよトニー
524 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:33:57 ] >>523 ないと思う。自分もさらっと調べてみた事あるけど XNA以上に日本じゃ通らないような感じうけるしねぇ。 きっと和訳やその他の場合でも出版で十分なリターンが見込めない領域と思われてる そう邪推するぐらいにはManagedはないねぇ。
525 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:43:21 ] C++/CLIでMDXしたいよぅ
526 名前:484 mailto:sage [2008/01/14(月) 14:46:55 ] 大きめの本屋2件まわって「マスタリングDirectXプログラミング」を買ってきた。 ttp://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0DirectX%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E6%A9%8B%E5%8F%A3-%E3%82%86%E3%81%86%E3%81%99%E3%81%91/dp/4797340258 立ち読みした感想 DirectX 関連本は工学社の緑色の本がいっぱいあったがどれも内容は微妙だった。 「DirectX 9プログラミング入門」は DirectX SDK のサンプルプログラムを載せて、ほんの少しコメントを足しただけのひどい本だった。 前書きにだまされて思わず買ってしまうところだった。 ttp://www.amazon.co.jp/DirectX-9%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-Windows-2000-XP%E7%89%88/dp/4886487262/ref=sr_1_13?ie=UTF8&s=books&qid=1200288761&sr=1-13 他にも何冊か読んだけど、あんまりいい本ないな。 ネットだけで十分っていう人はひどい本つかまされたのかな。
527 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:02:52 ] それなら、「ネットだけで十分」じゃなく、「本は使えない、ネットの方がマシ」ってなるだろ 先に国語の教科書買った方がよかったんじゃない?
528 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 15:22:41 ] 工学者のDirectXの本はヘルプをなぞるようにできてるだけだけど 色んな要素がつながってない初心者には全体が見渡せていいと思う 俺は超オススメ ただ、緑っぽい外装で中身が違う類似品があるので中身は見て買わないとw
529 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 16:50:52 ] >>523 ManagedってUnmanagedとどう違うの? 関数名やクラス名が違うだけであんまり変わらないと思うんだけど。
530 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:14:43 ] .NETかそうでないか
531 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:18:42 ] >>516 ありがとうございます
532 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:21:13 ] >>517 Game Programming Gemsはなかなか絶版にならないよ
533 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 17:23:10 ] >>517 初心者用の2Dアクションゲーム本ならソフトバンクから出してるよ
534 名前:533 mailto:sage [2008/01/14(月) 17:26:44 ] あっ出てたw
535 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:17:53 ] >>533 うーん、ただ2Dで満足してほしくないな 3Dを知ってる人間が作る2Dゲームのほうが圧倒的に出来がいいからw
536 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 18:45:14 ] >>535 初心者本ね
537 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:03:29 ] 3Dを知ってるのと2Dゲームの出来は別に関係ないよ エフェクトに3Dを使う事もあるだろうけど、それは純粋な2Dゲーではないから もっとも、DirectX自体が2Dを3Dの一部とする考え方なので 2Dゲーを作るにも3Dの知識が少しは必要になる
538 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:13:47 ] >>537 全然わかってないな 見た目は2Dでもゲームの空間を3Dにする技術のことを言ってるんだよ 表現次第でグラがいくら2Dでもゲームの空間を3Dにすることは可能 3Dの機能なんて理解してて当たり前
539 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:32:33 ] だからそれは見た目2Dなだけの3Dゲーだっての
540 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:33:25 ] タクティクスオウガみたいなのを想定しているのか?
541 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:35:27 ] >>538 が2Dゲーだと思ってるのは3次元上にビルボードを貼り付けた 3Dゲーの事を言ってるんだろ
542 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:41:14 ] レイフォースが使ってる表現なんかのことじゃないの?
543 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 19:46:57 ] まあFFなんかでも2Dの美麗マップ上を3D空間座標で キャラが移動してたりするからな それを2Dゲーと見るか3Dゲーと見るかは人それぞれ
544 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:04:59 ] >>543 そうそうそういうことそういうこと 高低差とか奥行きとかあるマップとか理解してもらえるといいと思う 螺旋階段とかw
545 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:05:57 ] ま、一般的には3Dゲーって言うけれども
546 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:18:54 ] >>545 2Dゲーっていうんじゃない? だって見た目3D機能使ってないように見えるんだよ? 内部の演算まで見通して「あ、これ3Dだ」っていえないと思うんだよね 2Dでうまくやってるかもしれないし
547 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:20:34 ] あらかじめレンダリングしたデータを 2D で持ってるだけっしょ。 z-order などを工夫して立体っぽく見せてるだけで。
548 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:29:45 ] 本当に重要なのは2Dか3Dかではなく、回転有りか無しかだけどな。 回転無しの3Dは全然難しくない。
549 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 20:40:41 ] 正確には、回転と移動の組み合わせが難しい。 思い通りに座標点を制御するのはプログラムそのものだけじゃなく、 最低でも高三以上の線形代数の知識が必要。
550 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:24:40 ] Release()し忘れたDirectxTextureなどを検出する方法ってありますか
551 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:33:32 ] CComPtrでも使っとけ
552 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:45:45 ] >>517 アクションゲームプログラミング (大型本)持ってるけど玄人以外にはいいと思う ページ構成は糞だけど
553 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 21:52:11 ] >>547 3Dを表現した2Dの絵に当たり判定(地形なども含む)を合わせるときなんかは どうしても内部は3Dでもったほうが楽だ フラグとか利用して根性で2Dでも表現できるっちゃできるけど、 開発が長引いたときに地獄みると思うw
554 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:00:34 ] 回転を一切使わない3Dって成り立つのか?
555 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:02:55 ] >>554 何の話だよw カメラ固定なら拡大縮小だけでいけるんじゃね?w
556 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:10:59 ] スマブラみたいに基本を2Dで、モデルを3Dでっていうのは成り立つ。 そういうのはあんまし線形代数の知識はいらん。
557 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 23:03:41 ] >>556 GCで出たのは結構小技が冴える出来だったけどな 板ポリレーザーなんだけどカメラをぐるぐるまわしてもちゃんとレーザーに見える・・・みたいな
558 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 01:37:58 ] >>554 ジャンプできる2Dアクションゲームは大抵、中身は回転を一切使わない3Dだよ。 古い例だとサークとか。
559 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 12:52:33 ] VRシステムは回転をサポートしていません。
560 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 22:59:20 ] パースペクティブシャドウマップで質問です。 スポットライトの場合、 matrix4x4 toShadowSpace = cameraView * cameraProj * lightView * lightProj; のようにするのが一般的だと思いますが、このlightProjの作り方がわかりません。 cameraの射影空間では、スポットライトのコーンがひしゃげてしまい ワールド空間のように、コーンから一意に射影行列を求める訳にはいきません。 現在はひしゃげたコーンから近似的に射影行列を作っていますが、 満足のいく精度ではありません。世の中一般ではどうするのが普通なんでしょうか?
561 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:09:00 ] LPDIRECT3DTEXTURE9 pTexture; と宣言していて、デストラクタで pTexture->Release(); と解放しようとすると 0x004897d1 でハンドルされていない例外が発生しました: 0xC0000005: 場所 0xcccccccc を読み込み中にアクセス違反が発生しました。 とエラーが出てしまいます。 初期化では D3DXCreateTextureFromFile(pD3DDevice,"sample.bmp",&pTexture) としています。 環境はdirectx9.0 , Visual C++ 2005です。 解放の仕方が悪いのでしょうか?
562 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:10:17 ] ロード失敗したのに解放しようとしてるとか
563 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:21:09 ] >562 そう思って if ( pTexture != NULL ) { pTexture->Release(); } としてみたんですが、それでもエラーが出てしまいます。
564 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:23:54 ] NULLで初期化してる?
565 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:30:11 ] >564 やってないことに気づいて if(FAILED(D3DXCreateTextureFromFile(pD3DDevice,"select_back.bmp",&pTexture))){ pTexture = NULL; return E_FAIL; } としてみましたが、やはりエラーが出てしまいます。
566 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:38:02 ] if ( pTexture != NULL ) { pTexture->Release(); pTexture = NULL; } 次はこれだ! ・・・なーんか違うような気もするが・・・w
567 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:39:19 ] なんかたくさん聞かなきゃいけないけど そもそもD3DDeviceは取得できてるの? それとテクスチャロードして、それ使って表示できてる?
568 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:43:14 ] 当然アドレスは調べたんだろうな。
569 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 23:46:55 ] >567 すいません、初期化やる場所が悪かったみたいで、コンストラクタ内でやったらか解決しました。 ありがとうございます。
570 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:07:06 ] } catch (...) {
571 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 00:31:47 ] 変数の初期化は、その変数を最初に作ったときに必ずするべきだ クラスのメンバ変数なら全てコンストラクタで初期化すべし
572 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 07:25:37 ] >>569 はぁ? しばらく悩みそうだなお前・・・w
573 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 19:55:28 ] Win32APIはある程度書けるけど、DirectXはまったく知らないって状態なんだけど どの本買って勉強すればいい?
574 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 19:55:57 ] ネットで十分
575 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:20:53 ] そもそも何をしたいのかすら説明するのを面倒くさがる、 その必要性を鑑みることの出来ない人間が何をやっても無駄。
576 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:48:54 ] >>575 氏ね
577 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:32:46 ] 反論できずに罵倒しか出てこない場合、図星だったってことだ
578 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 21:45:24 ] >>573 人生論(トルストイ著)
579 名前:デフォルトの名無しさん [2008/01/17(木) 18:34:42 ] DirectMusicが 2007November からなくなってしまいましたが、代替手段はどうしていますか? やっぱりDirectSoundでゴリゴリ書くしかないのでしょうか……
580 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 23:31:32 ] www.4gamer.net/specials/tooearlytogetvista/003/tooearlytogetvista_003.shtml
581 名前:579 [2008/01/18(金) 18:39:32 ] >>580 情報ありがとうございます まだ混沌としているみたいですね。落ち着くまで古いバージョンのSDK使うことにしました
582 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 19:30:02 ] SDIで開発してるんですが、各コントロールにリアルタイムで動くグラフを書きたいんですが、 SwapChainであってるんですか? またその後の方法もわからんです・・・
583 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 07:26:10 ] スレ違いの予感 グラフ描くだけならGDIで事足りるだろ
584 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 01:20:27 ] 統合シェーダ型GPUって、DirectX9.0でも動的にVS、PSの振り分けしますよね?
585 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 06:33:59 ] >>584 ドライバーの設計次第。
586 名前:584 mailto:sage [2008/01/20(日) 10:02:27 ] >>585 ありがとうございました!
587 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 10:34:34 ] >>573 本が好きなら本屋で自分好みのDirectX本を探せ あと、どうでもいいコメントはスルーしろ
588 名前:デフォルトの名無しさん [2008/01/20(日) 21:08:22 ] DirectXを使ってWindowsゲームを作ろうとしてます。 買った教則本ではDirectX 9bを使ってましたが、 Microsoftのサイトに行くと、 9とか10とか数字のバージョンが書いてなくて、 DirectX SDK (Novemeber 2007)というのがありました。 これでいいんでしょうか?
589 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 21:24:57 ] 当然C++は理解してるんだろうな?
590 名前:588 mailto:sage [2008/01/20(日) 21:29:48 ] >>589 俺あてでしょうか? 大丈夫です。CとC++は1ヶ月くらい勉強しました。
591 名前:588 mailto:sage [2008/01/20(日) 21:41:07 ] Novemeber 2007をインストールしてみたら、 教則本で使ってる<d3dx9.h>ってのが入ってたので、 9も使えるっぽい感じでした。
592 名前:588 mailto:sage [2008/01/20(日) 21:58:32 ] と思ったら"d3dx9dt.lib"と"dplayx.lib"がないです。。。 前者は"d3dx9d.lib"で代用できるっぽいですが、後者はないんでしょうか。
593 名前:588 mailto:sage [2008/01/20(日) 22:27:22 ] つまずきました。。。InitD3d(hWnd)ができません。 エラー「'InitD3d': 識別子は、引数依存の照合を使用しても見つかりません。」 #include <d3dx9.h>はできてるのに、なんで?
594 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:38:59 ] >>588 www.microsoft.com/downloads/results.aspx?freetext=DirectX%20SDK&DisplayEnglishAlso=true&sortCriteria=date&displaylang=ja まず必要なバージョンを調べて入れろ。 分からなきゃ教則本と同じバージョンを入れろ。 教則本を一通り終えるまでここには書き込むな。
595 名前:588 mailto:sage [2008/01/20(日) 22:39:58 ] <d3dx9.h>に入ってるのかと思ったら、 InitD3dは自前の関数だったようです。。。
596 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 22:50:10 ] また今度な。いちいちお前のレポでスレ消費したくない
597 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:29:11 ] >>595 気持ちは分かるがんばれ
598 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 23:53:46 ] >>588 ここの住人は辛口だが、これくらいで挫折するなよ。 それからはじめから全部理解しようとするな。 まず本に書いてあるとおりに開発環境を整えて、 DirectX SDKのサンプルコードをビルドして実行しろ。自力で。
599 名前:デフォルトの名無しさん [2008/01/21(月) 00:28:08 ] >>593 全然C/C++理解してねーだろw
600 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 00:57:46 ] >>599 上げんなクソガキ
601 名前:588 mailto:sage [2008/01/21(月) 02:20:31 ] 初心者質問スレなんだからいいじゃん。。。 なんとか2Dのスプライト描画ができました。
602 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 02:48:25 ] お前のチャットルームじゃねーんだよ甘えんな糞ガキ
603 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:12:59 ] はたしてクソガキに見えるレスをしているのはどちらだろうか。
604 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 03:48:21 ] >>603 ズバリあなたです。
605 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 04:16:20 ] お前らクソガキクソガキ書きたいだけちゃうんかとクソガキが
606 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 05:29:49 ] >>601 分からないなら参考書と同じSDKを入れるのが一番いいと思うぞ