【C++】 DirectX初心者質問スレ Part11 【C】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/09/29(金) 00:09:44これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
0002デフォルトの名無しさん
2006/09/29(金) 00:10:27MSDN DirectX
http://www.microsoft.com/japan/msdn/directx/default.aspx
DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.mspx
BBX (掲示板)
ttp://isweb8.infoseek.co.jp/computer/bbx/
DXライブラリ置き場
ttp://homepage2.nifty.com/natupaji/DxLib/
Lamp:ゲーム開発とその学習をサポートするミドルウェア
ttp://lamp.sourceforge.jp/
TWINTAIL LOVERS.
ttp://www.twin-tail.jp/
Pastel's Laboratory
ttp://www.roy.hi-ho.ne.jp/pastel/home/index.html
GamDevPukiWiki - DirectX総合スレ (過去ログ等)
http://gamdev.org/w/?%5B%5BDirectX%C1%ED%B9%E7%A5%B9%A5%EC%5D%5D
GamDevPukiWiki - 3DCG製作ソフト (過去ログ等)
http://gamdev.org/w/?%5B%5B3DCG%C0%BD%BA%EE%A5%BD%A5%D5%A5%C8%5D%5D
ゲームを作るための素材を集めよう まとめサイト
http://paw.my-sv.net/index.html
0003デフォルトの名無しさん
2006/09/29(金) 00:12:20【C++】 DirectX初心者質問スレ Part10 【C】
http://pc8.2ch.net/test/read.cgi/tech/1153831096/
0004デフォルトの名無しさん
2006/09/29(金) 00:15:340005デフォルトの名無しさん
2006/09/29(金) 00:18:170006デフォルトの名無しさん
2006/09/29(金) 00:23:21Tutorialsのところにある例えば、Tutorial 2: Vertices などを、SimpleSampleやEmptyProjectで実現したいのですが、方法がよく分かりません。
3角形を描画するための初期化、描画、解放を行う関数をそれぞれ、Initial()、Render()、Close()としてdraw.h、draw.cppに記述したとした場合に、それぞれの関数を、メインのソースファイルのどこに記述すればよいのかを教えていただきたいです。
情報が不足していたら、ご指摘願います。
以上、よろしくお願いします。
00076
2006/09/29(金) 00:25:00環境は、Visual Studio.Net2005+DirectXSDK(August 2006)+XPです。
0008デフォルトの名無しさん
2006/09/29(金) 08:49:37度々ありがとうございました。
無事目的が達成できました。
ちなみに990は別の方が便乗されたようです。
0009デフォルトの名無しさん
2006/09/29(金) 10:56:54スキンメッシュアニメーション(ボーンアニメーション)と、
通常のアニメーションメッシュ、
などの「Xフィアル」について仕様が書かれた
ホームページありますでしょうか?
0010デフォルトの名無しさん
2006/09/29(金) 11:27:26どんな時でもMSDNだぞ。
0011デフォルトの名無しさん
2006/09/29(金) 12:20:21MSDN ?????
????????
???? ??? Embedded ??
.NET ??
Office ?????????
???? ??? ??????????
Web ??
Win32 ??? COM ??
MSDN ????? ?????
MSDN ????? ?????
他のまともな方お願いします。
0012デフォルトの名無しさん
2006/09/29(金) 12:58:450013デフォルトの名無しさん
2006/09/29(金) 13:28:11そのブラウザで見れないんだったらIEで見てみ。
普通にマイクロソフトの開発者向けサイトだから。
0014デフォルトの名無しさん
2006/09/29(金) 14:02:27見られました。
今からじっくり見てわからなかったらまた質問しにきます。
ありがとうございました。
>12
俺もそう思いましたw
なんか偉そうな態度のわりには>10は頭悪い感じしますよねw
0015デフォルトの名無しさん
2006/09/29(金) 14:04:14オマエが >>11と同一人物ではないことを願うよ(;´д`)
0016デフォルトの名無しさん
2006/09/29(金) 18:05:44どんな、組み合わせが一番無難なの?
よろしく
0017デフォルトの名無しさん
2006/09/29(金) 18:30:060018デフォルトの名無しさん
2006/09/29(金) 19:07:14用途によりけり。
0019デフォルトの名無しさん
2006/09/29(金) 19:22:22それだけじゃあ、わからんよ
用途ごとに、どんな組み合わせでつかってるの?
用途に合わせた組み合わせを紹介してくれよ
よろしく頼む
0020デフォルトの名無しさん
2006/09/29(金) 19:29:460021デフォルトの名無しさん
2006/09/29(金) 19:44:35用途の説明とそれに合った無難な組み合わせを
5個ぐらい紹介してくれるとうれしい。
よろしく
0022デフォルトの名無しさん
2006/09/29(金) 19:49:540023デフォルトの名無しさん
2006/09/29(金) 19:56:36>>21
>あなたが、よく使うやつでいいから
よろしくね
まあ、いくつかのパターンを知りたいだけなんだよ
0024デフォルトの名無しさん
2006/09/29(金) 19:57:34頂点フォーマットのRHWがよくわかりません
2Dのポリゴンを表示するときはRHWを定義して、普通は定義しなくていいと解釈してるんですが
どうですか?
0025デフォルトの名無しさん
2006/09/29(金) 20:00:23それならドキュメントに書いてある通り。
0026デフォルトの名無しさん
2006/09/29(金) 20:01:46Matrox系のビデオカードとかRHWだとクリッピングが働かず、
範囲外に描画すると何にも表示されなくなるので、2Dの場合でも使用はおすすめしない。
0027デフォルトの名無しさん
2006/09/29(金) 20:02:190028デフォルトの名無しさん
2006/09/29(金) 20:10:37それともサンプルやチュートリアル、ドキュメントだけで大丈夫ですか?
0029デフォルトの名無しさん
2006/09/29(金) 20:12:040030デフォルトの名無しさん
2006/09/29(金) 20:20:14その解釈でOK
頂点が既にスクリーン座標に変換されてますよーフラグ
と思っとけば良いと思うよ
>>28
本買った方が、気楽だし、お金出してる分力が入ると思うよ。
DirectXゲームグラフィックスプログラミング
↑この本が一番無難だと思う
>>25
>>21 >>テンプレ SDK呼んでもわからないから聞いているんだよ
>>27
いや、ネタじゃないんだよ
マジだよ。
いろんな、サイト見ても、みんな0かD3DUSAGE_WRITEONLY + D3DPOOL_MANAGED
ぐらいしか、使ってないしw
みんなも良くわかって使ってるとは思えないんだよね〜
だから、確認したいから質問してるんだよ
0031デフォルトの名無しさん
2006/09/29(金) 20:23:470032デフォルトの名無しさん
2006/09/29(金) 20:25:13君にすべてを押し付けるようなことになって・・・。
でももうちょっと回答ができそうなんだ、
だから頼む、君の頂点バッファの用途を教えてくれ!
0034デフォルトの名無しさん
2006/09/29(金) 20:37:47>>21
それにしても、君らもがんばるねェ
たった、5個答えるだけだろ?w
スレが汚れるから、これ以上やめたらw?
0035デフォルトの名無しさん
2006/09/29(金) 20:43:49環境によって動いたり動かなかったりする。
開発環境
VC++6.0+DirectX9
1.動くパターン
「d3dx9_25.dllがありません」という警告が出るタイプのパソコンは
d3dx9_25.dllを実行ファイルと同じフォルダに入れると動く
2.動かないパターン
実行できるが、ファイルを読み込むときに
「Xファイルが読み込めなくて」落ちる。
(落ちるのは俺のプログラムの仕様なわけだが)
「2」においてd3dx9_25.dllの新しいのをSystem32に入れてみたり
したがだめだった。
ちなみにDirectX9.0cです。
0036デフォルトの名無しさん
2006/09/29(金) 20:50:22先生、お願いします!
>落ちるのは俺のプログラムの仕様なわけだが
修正頑張ってください。応援してます。
0037デフォルトの名無しさん
2006/09/29(金) 20:56:33DLLどうこうじゃなくて、単純にプログラムにバグがあるせいだろう。
細かいところはソースを晒すしかない。
0038デフォルトの名無しさん
2006/09/29(金) 20:58:01まず間違いなく>>37の言うとおりなので、落ち方晒せ。
0039デフォルトの名無しさん
2006/09/29(金) 21:03:30読み込み時に返ってきている(であろう)エラーは確認した?
004035
2006/09/29(金) 21:08:14まず、ファイルを読み込むところ
HRESULT SkinMesh_Class::SKIN_MESH::InitThing(LPDIRECT3DDEVICE9 pDevice,THING *pThing,LPSTR szXFileName,D3DXVECTOR3* pvecPosition)
{
// メッシュの初期位置
//memcpy(&pThing->vecPosition,pvecPosition,sizeof(D3DXVECTOR3));
// Xファイルからアニメーションメッシュを読み込み作成する
if( FAILED(
D3DXLoadMeshHierarchyFromX(szXFileName, D3DXMESH_MANAGED, pDevice, &cHierarchy,
NULL, &pThing->pFrameRoot, &pThing->pAnimController)))
{
MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
return E_FAIL;
}
//
AllocateAllBoneMatrices(pThing,pThing->pFrameRoot);
return S_OK;
}
0041デフォルトの名無しさん
2006/09/29(金) 21:08:41動くか、クラッシュするからしいし。
とはいえ、動く方でデバッグレベル最大にして実行するのは
価値があるとは思うけど。
004235
2006/09/29(金) 21:09:30{
SkinMesh.InitThing(pDevice,&Thing,create_skin_mesh_str.file_name,&D3DXVECTOR3(0,0,-1));
return S_OK;
}
0043デフォルトの名無しさん
2006/09/29(金) 21:09:51004435
2006/09/29(金) 21:10:31{
OPENFILENAME ofn;
memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.lpstrFilter =
"x files(*.x)\0*.x\0All Files(*.*)\0*.*\0\0";
ofn.lpstrFile = FileName;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_FILEMUSTEXIST;
ofn.lpstrDefExt = "x";
ofn.nMaxFileTitle = 64;
ofn.lpstrFileTitle = FileTitle;
ofn.lpstrTitle = "xファイルを選択してください";
if (GetOpenFileName(&ofn)) {
InvalidateRect(hWnd, NULL, TRUE);
strcpy( sm.create_skin_mesh_str.file_name, FileName );
if( S_OK == sm.CreateSkinMesh() )
{
show = 1;
sm.skin_mesh_str.vecPos = D3DXVECTOR3( 0, 0, 0 );
}
}
return;
}
004535
2006/09/29(金) 21:11:29switch (LOWORD(wParam)) {
case IDM_END:
SendMessage(hWnd, WM_CLOSE, 0, 0);
break;
case IDM_OPEN:
OpenFiles(hWnd);
break;
0046デフォルトの名無しさん
2006/09/29(金) 21:13:46>MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
ここ通ってんじゃないの?
D3DXLoadMeshHierarchyFromX の戻り値調べてみなされ。
後は一応、渡してる引数に異常な値が入ってないかどうかも。
パスはありえるな、D&Dで起動してカレントがデフォルトになっちゃってるとか。
004735
2006/09/29(金) 21:13:54汚い・・・っていう突っ込みは簡便してぽ。
>>40 がファイルを読み込むところ
>>42 使いやすいように変更したところ
>>44 mainで開くための関数
>>45 メッセージループで実際に使っているところ
>>他の人
連続カキコスマソ。
0048デフォルトの名無しさん
2006/09/29(金) 21:13:550049デフォルトの名無しさん
2006/09/29(金) 21:22:57005035
2006/09/29(金) 21:26:41例外処理 (初回) は _show_.exe (D3DX9_25.DLL) にあります: 0xC0000005: Access Violation。
って関係ありまつか?
>>48 >>49
もう少しまってぽ。
>>46
今、プログラムで確認中。
005135
2006/09/29(金) 21:39:43D3DXLoadMeshHierarchyFromX
の戻り値は0x80004005でつた。
ネット調べると、よくわからない失敗ってことになっているけど・・・。
0052デフォルトの名無しさん
2006/09/29(金) 21:45:36005335
2006/09/29(金) 21:51:29http://aploda.net/dl.php?mode=pass&file_id=0000022030.txt
005435
2006/09/29(金) 22:00:54HRESULT SkinMesh_Class::CreateSkinMesh()
{
return SkinMesh.InitThing(pDevice,&Thing,create_skin_mesh_str.file_name,&D3DXVECTOR3(0,0,-1));
}
って変えたら落ちなくなったっす。
>>52
嫌いじゃないぜ、もまえみたいなやつ。
005535
2006/09/29(金) 22:06:15>>50
の例外処理うんぬんが消えまつた。
重要なことを言い忘れてまつた。
(すんません)
読めるモーション付Xファイルと
読めないモーション付Xファイルがあります。
>>35の
「1」のケースではすべてのモーション付Xファイルが読めます。
「2」のケースでは読めないモーション付Xファイルが存在します。
(読めるのもある)
0056デフォルトの名無しさん
2006/09/29(金) 22:11:33SkinMesh.InitThing
の戻り値じゃなくて、じゃなくて
D3DXLoadMeshHierarchyFromX
の戻り値だぞ?
ちゃんと、
>MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
この行の直前にブレークポイント置いた?
0057デフォルトの名無しさん
2006/09/29(金) 22:34:34俺はパーティクルなんかでは D3DPOOL_DEFAULTに USAGE_DYNAMIC | USAGE_WRITEONLY を使うこともある。
どのような場合でどのような使い方をしたらいいかなんてのはドキュメントに書いてあるし、
そのとおりに場合に合わせて適切なものを選べばいいだけ。
>いろんな、サイト見ても、みんな0かD3DUSAGE_WRITEONLY + D3DPOOL_MANAGED
>ぐらいしか、使ってないしw
>みんなも良くわかって使ってるとは思えないんだよね〜
>だから、確認したいから質問してるんだよ
D3DUSAGE_WRITEONLY + D3DPOOL_MANAGED は
ファイルから読み込んだモデルデータのように一度作成したらその後手を加えない
頂点データに向いている使い方。
そこらの初心者講座とかモデル読んで出してるだけだろうし間違ってはないだろ。
ドキュメントにフラグの意味も、最適化の手法もすべて書かれているのに
よく分かって使ってないなんてヤツは程度が低すぎる。
0058デフォルトの名無しさん
2006/09/29(金) 22:37:19>読めるモーション付Xファイルと
>読めないモーション付Xファイルがあります。
これは当たり前
アニメーションのフォーマットは統一されてないから
読み込む側がいろんな方言に対応しないといけない
005930
2006/09/29(金) 23:36:20まさしく、質問通りの聞きたかった事を答えてくれて有難うございます。
おっしゃる通り、私は程度が低かったです。
程度が低いレスをしてしまったことも反省しております。
なんだかんだ言って、回答してくれる、ここの人達はやさしいですね。
本当に有難うございました。
0060デフォルトの名無しさん
2006/09/29(金) 23:46:12006135
2006/09/30(土) 01:07:43>SkinMesh.InitThing
>の戻り値じゃなくて、じゃなくて
>D3DXLoadMeshHierarchyFromX
>の戻り値だぞ?
>ちゃんと、
>>MessageBox(NULL, "Xファイルの読み込みに失敗しました",szXFileName, MB_OK);
>この行の直前にブレークポイント置いた?
ボスの言うとおり、
D3DXLoadMeshHierarchyFromXの戻り値でさぁ。
OutputDebugString()関数でガッチリきゃっちしましたぜ。
>>58
>アニメーションのフォーマットは統一されてないから
>読み込む側がいろんな方言に対応しないといけない
えと、
「同じ実行ファイル」で「環境によって」は
「同一のXファイルが読めなかったり、読めたり」します。
0062デフォルトの名無しさん
2006/09/30(土) 01:21:55006335
2006/09/30(土) 01:33:16ソースコード?
それとも実行ファイル?
0064デフォルトの名無しさん
2006/09/30(土) 01:37:03これで確実に問題点を見つけてくれる。誰かがw
006535
2006/09/30(土) 01:37:20http://aploda.net/dl.php?mode=pass&file_id=0000022043.zip
一応、実行ファイルはアップロードしますた。
もまえさんの環境で実行してみてケロ。
exeファイルで勇気いるかもしれんが、
そこは信用しちくり。
006635
2006/09/30(土) 01:42:23ソースコード全部はさすがに恥ずかしい。
中学生の時に書いた(書いてないけど)ポエムを
晒すようなもんだ。
0067デフォルトの名無しさん
2006/09/30(土) 01:45:59信用して実行してみた。
どっちのXファイルも問題なくロードできて表示できたよ。
よって、俺の環境では検証できない('c_`;)
0068デフォルトの名無しさん
2006/09/30(土) 01:49:34よって以下同文('c_`;)
006935
2006/09/30(土) 01:50:34漏れの環境では再生できない。
うちにある他のパソコンでは再生できたんだYO。
つーわけで、プログラムのコーディングミスの線は
そろそろ諦めてくれると嬉しぃ。
おじさん、dll関係が怪しいと思うのだよ。
(DirectX9.0cなんだが、更新できてないdllとかありそう)
0070デフォルトの名無しさん
2006/09/30(土) 01:59:53上2行と次の2行がつながってないぞ
例えば、デバイスの初期化できちんとデバイスの能力をチェックしていないとかエラー処理をしていないとか
(そのせいで、初期化に失敗してるのに次に進んでしまって、たまたまそこで落ちてるだけかもしれない)
メッシュロード部分を削ったらちゃんと動く?
007135
2006/09/30(土) 02:00:49ファイル名を指定して実行→dxdiag
でDirectX診断ツール呼び出してくんろ。
DirectXのバージョンって、
DirectX9.0c(4.0900000904)
でつか?
タブで「DirectXファイル」を選択すると
「ファイル d3d9d.dll はデバッグ版です。製品版より遅く動作します。」
って出るんだけど、これって出てるの漏れだけ?
007268
2006/09/30(土) 02:03:11>DirectX9.0c(4.0900000904)
Yes.
>「ファイル d3d9d.dll はデバッグ版です。製品版より遅く動作します。」
>って出るんだけど、これって出てるの漏れだけ?
SDK入れてりゃ出る。気にすんな。
007335
2006/09/30(土) 02:06:03言語障害なもんで、正しく日本語使えなくてスマソ。
>メッシュロード部分を削ったらちゃんと動く?
えと、ロード(つーかなにもしないプログラム)は今やってみたけど、へーきでしたぜ。
プログラムは動きます。
0074デフォルトの名無しさん
2006/09/30(土) 02:13:37実行ファイルだけ渡してソースのどこがおかしいとか聞かれてもこまっちゃう
007535
2006/09/30(土) 02:13:39�dクス。
グラッフィックボードのビデオチップって関係ありまつか?
なんせ、5年前のもの使ってるんで・・・。
Creative CT6971(NVIDIA)
GeForce DDR
ビデオメモリ32MB
とりあえず、今からドライババージョンアップしてみる。
つーか、読み込みの段階で失敗してるから、
関係ねぇと思うけど・・・。
0076デフォルトの名無しさん
2006/09/30(土) 02:16:54まぁ試してみた。
読めることは読めたが終了時にエラー。
Direct3D9: (WARN) :Ignoring redundant SetRenderState - 151
スレッド 0xF10 終了、終了コード 0 (0x0)。
スレッド 0x9A4 終了、終了コード 0 (0x0)。
スレッド 0xD38 終了、終了コード 0 (0x0)。
スレッド 0x418 終了、終了コード 0 (0x0)。
Direct3D9: :====> ENTER: DLLMAIN(0367d6e0): Process Detach 00000a64, tid=000007c4
Direct3D9: (INFO) :MemFini!
Direct3D9: (WARN) :Memory still allocated! Alloc count = 124
Direct3D9: (WARN) :Current Process (pid) = 00000a64
0077デフォルトの名無しさん
2006/09/30(土) 02:17:13気持ちはわかるが、やっぱりソースをうpるべきだと思うぞ。
0078デフォルトの名無しさん
2006/09/30(土) 02:26:17ビデオメモリ圧倒的に足りてないんじゃないか?
それにしても、エラーが E_FAIL ってのが謎なんだよな。
007935
2006/09/30(土) 02:33:03死の予感。
>>76
げげ、終了時のエラーでまつか?
欝だ死のう。
漏れの環境だと一回も出なかったのに・・・。
原因については、ちょい究明するまで待ってくらさい。
(メモリの開放臭いけど)
>>77
>>74
うpするのちょい待ってケロ。
朝までに解決しなかったらうpする。
うちのパソコン全部で4台あるんだよ。
漏れのパソコン以外の3台では動いたんでつ。
環境はどれもWindowsXP SP2だと思う。
>>78
ビデオメモリ32MBで足りないッすか?
今時の人どんくらい積んでんの?
008035
2006/09/30(土) 02:38:32関係ないと思うけど、明日
ビデオカード買ってくる。
今って128MBがふつーなんだすね。
ちょい考え直した。
0081デフォルトの名無しさん
2006/09/30(土) 02:39:42どんだけ持ってんだよwww
0082デフォルトの名無しさん
2006/09/30(土) 02:48:231台はLinux鯖だけど。
ATIとnVIDIAで最低でも2台は欲しい。
0083デフォルトの名無しさん
2006/09/30(土) 02:48:32008483
2006/09/30(土) 02:49:15008535
2006/09/30(土) 02:53:370086デフォルトの名無しさん
2006/09/30(土) 03:01:26動作検証用か?
個人で持つには持ち過ぎな気がするんだが…
いや、好き好きだからいいんだけどね。
俺はノートと家鯖とMacと…
すまん、うちも3台はあったわ。
008735
2006/09/30(土) 04:10:40なんか同じ症状っぽい。
原因はグラフィックカードの挙動っぽ。
008835
2006/09/30(土) 04:27:32みなさまありがとうございました。
みなさまには厚く御礼申し上げます。
,. -‐'''''""¨¨¨ヽ
(.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ!
|i i| }! }} //|
|l、{ j} /,,ィ//| 『おれはCriateDevice関数をHALモードで実行したんだが
i|:!ヾ、_ノ/ u {:}//ヘ 俺の環境だけD3DXLoadMeshHierarchyFromX関数でエラーが返ったんだ』
|リ u' } ,ノ _,!V,ハ |
/´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが
/' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも 何をされたのか わからなかった…
,゙ / )ヽ iLレ u' | | ヾlトハ〉
|/_/ ハ !ニ⊇ '/:} V:::::ヽ 頭がどうにかなりそうだった…
// 二二二7'T'' /u' __ /:::::::/`ヽ
/'´r -―一ァ‐゙T´ '"´ /::::/-‐ \ コーディングミスだとか排他ロックだとか
/ // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ そんなチャチなもんじゃあ 断じてねえ
ノ ' / ノ:::::`ー-、___/:::::// ヽ }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ もっとVGAの恐ろしいものの 片鱗を味わったぜ…
008935
2006/09/30(土) 04:37:24結局なんだったの?
:問題
「スキンメッシュが読み込めねぇ、環境によっては読み込める」
「スキンメッシュのXファイルも、モノによっては読み込めたり、
読み込めなかったりする」
(D3DXLoadMeshHierarchyFromX関数が環境によっては、
エラーを返さなかったり返したりする)
:原因
ビデオカードが中途半端にしょぼい5年前のものだった。
しょぼいが故に頂点数?が少ないものについては、
実行できるものの、複雑なものになると実行できない。
しょぼいビデオカード使うやつは3Dのプログラム組むな。
:解決策
以下に示す解決策が有効だと思われる。
1.ビデオカードのドライバをバージョンアップする。
2.「1」がダメならビデオカードが古いなら新しいのを買う。
3.「2」がダメなら新しいパソコンでも買え。
以上、まとめでつた。
改めて、親身になって考えてくれたみなさまには
厚く御礼申し上げます。
009035
2006/09/30(土) 04:38:44CreateDeviceを HAL→REF で実行したらうまく行った。
009135
2006/09/30(土) 04:46:34pD3d->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &pDevice ) ) )
HardwareのHALだとアウトで、
SoftwareのHALだと無事動きまつた。
マジこういうバグ、きつい。
0092デフォルトの名無しさん
2006/09/30(土) 05:03:35それ、多分バグじゃないよ。
頂点ブレンドの時の同時参照可能数なマトリクスパレットの数とかの違いが
そのまま出てるだけだと思われ。クラッシュは理由がわからんが。
SOFTWARE_VERTEXPROCESSINGにすると、マトリクスパレット周辺の使用制限は
事実上無くなる。HARDWAREでやってるとデバイスの性能に引きずられる。
DEVICECAPSで違いをよく追っかけてみ。
0093デフォルトの名無しさん
2006/09/30(土) 08:56:21つーかその辺をCAPSでちゃんと調べてHARDWARE/SOFTWAREで分岐させるのは
DirectXでは最低限の礼儀、バグ扱いとかあほかと。
0094デフォルトの名無しさん
2006/09/30(土) 09:04:040095名無しさん@お腹いっぱい。
2006/09/30(土) 10:16:35カチョさんは「ウィルス?ウィルス!?」とパニック状態。
ウィルスに感染すると社内報告が大変だそうで、とにかくパニック。
んで見たところマウスにえらくごみが溜まってる。タッチパッドは動く。
マウスをティッシュで拭いて即座に復活。
「マウスに埃が溜まってたみたいですね、拭いて直りましたよ」
「ほんとにウィルスじゃないんですね?」
「えぇ、違います」
「・・・」
「・・・・・」
「いや、やっぱりウィルスじゃないですか?」
(ちがうってばよ!)
>>35
カチョさん、それ多分DirectX側のバグじゃないですよ。
0096デフォルトの名無しさん
2006/09/30(土) 10:50:33単純に解像度を高くするとジャギの問題って消えちまうっぽい。・・・そうだったのか・・・。
別にαかかってるマスクでも0or1のマスクでも結果に違いがなくなっていてちょっとショック。
0097デフォルトの名無しさん
2006/09/30(土) 11:32:440098デフォルトの名無しさん
2006/09/30(土) 12:41:19長い自演だったぜ
0099デフォルトの名無しさん
2006/09/30(土) 17:34:58どうやればいいんでしょうか?
0100デフォルトの名無しさん
2006/09/30(土) 18:39:03別の方法考えろよ。
0101デフォルトの名無しさん
2006/09/30(土) 18:47:55システムキーを拾ったらOSに処理させないようにすればいい
0102デフォルトの名無しさん
2006/09/30(土) 19:05:27ありがとうございます。
それはどうすればいいんでしょうか?
キーボードフックというものですか?
0103デフォルトの名無しさん
2006/09/30(土) 20:07:40WH_GETMESSAGEでフックしてWM_USER+260が飛んできたら無視すればいい
やり方はネットに沢山転がってる
0104デフォルトの名無しさん
2006/09/30(土) 20:09:43WM_SYSKEYDOWNで捕まえて、握りつぶしてしまえ。
ただ、基本的に無作法とされている。
本当はフルスクリーン時にスコープを奪われたら最小化、
戻ったらデバイスを復元して再度全画面化するぐらいがいい。
0105デフォルトの名無しさん
2006/09/30(土) 21:06:37MS的には禁止のはず。
それをやるってことは少なくとも礼儀のないアプリってコトになる。
ALT+TABをブロックは特にやられるとウザイしな。
0106デフォルトの名無しさん
2006/09/30(土) 21:16:30そうだよ死ね
0107デフォルトの名無しさん
2006/09/30(土) 21:21:06あのですねー。
マイソフが禁止してようがしてまいが俺には関係ないのではないんでしょうか?
ネトゲのようにお互いが同期をとるタイプのゲームを想像するとわかりますが、
うっかりウィンドウキー押すとゲームが最小化されちゃうんですよ。
あわてて戻ったら死んでた・・・なんてしゃれにならないと思いませんか?
こういうゲームを作りたくないんですよ。
0108デフォルトの名無しさん
2006/09/30(土) 21:24:350109デフォルトの名無しさん
2006/09/30(土) 21:38:01ウィンドウズキー周辺のキー使わなきゃいいじゃん。
0110デフォルトの名無しさん
2006/09/30(土) 21:44:49あなたはフリーウェア程度のゲームしか作ったことないんでしょうけど、
製品として出す以上そんな馬鹿みたいな仕様なんてありえないでしょう?
0111デフォルトの名無しさん
2006/09/30(土) 21:48:24なんだシェアウェア厨か。死ね。
有料で出そうとしている癖に、無料でその辺の情報を得ようなんて
虫が良すぎる。もっと苦労しろ。
0112デフォルトの名無しさん
2006/09/30(土) 21:57:36>有料で出そうとしている癖に、
ゲーム作って金もらってる俺が悔しいんですか?
>無料でその辺の情報を得ようなんて
ネットするのも金かかるの知ってますか?
>もっと苦労しろ。
このスレで調べて苦労してますが?
0113デフォルトの名無しさん
2006/09/30(土) 21:58:44何、もうファビョってるのか。いいから回線切って首吊って死ね。
0114デフォルトの名無しさん
2006/09/30(土) 21:59:43釣りだろ釣り。
0115デフォルトの名無しさん
2006/09/30(土) 22:01:45こいつら情報をタダだと思ってやがる。スレで得た情報分の利益を分配
する事を本来なら求めるべきだ。
>>114
釣りですかね?
0116デフォルトの名無しさん
2006/09/30(土) 22:07:17いい感じに火病ってるのまで演出してるし。
それはさておき、誰かこのスレで利益得てるとしても、そんなのの還元求められる義理なんかないぞ。
何事も自己責任な匿名掲示板で、ただダベってるだけなんだから、漏れら。
0117デフォルトの名無しさん
2006/09/30(土) 22:09:08こいつら自分の事しか考えてない。スレの中にロボットが居て、質問をすると
自動的に答えが返ってくると思っているような所がある。
0118102
2006/09/30(土) 22:10:110119デフォルトの名無しさん
2006/09/30(土) 22:25:41気にすんなよ。
つか、そんな理由で喧嘩するなら自分の縄張りでやってくれ。
0120デフォルトの名無しさん
2006/09/30(土) 22:48:15シェアウェアとして置いてあるベクターのソフトみるとぶっ潰したくなるなw
あんな糞レベルでよく恥ずかしげもなく出せるもんだと思うよ。
0121デフォルトの名無しさん
2006/09/30(土) 22:50:10だいたい質問に答える方もネットで金かかってるっつーの。
そんなのいちいち言わないだろ。
だからと言って割れたりしたら、それこそ糞シェアウェア厨と
同じレベルに落ちてしまうから、それはしない。単にDLしない、
使わない。もっとマシな市販ソフトを買う。
0122デフォルトの名無しさん
2006/09/30(土) 23:45:460123デフォルトの名無しさん
2006/09/30(土) 23:51:510124デフォルトの名無しさん
2006/10/01(日) 00:16:18これ非アクティブの時はゲーム内の処理止める仕様にすれば良いんじゃないの?
0125デフォルトの名無しさん
2006/10/01(日) 00:21:54通信相手の処理まで止めるつもりか?
頭が悪いにも程があるぞ。
ゲーム中にウインドウズキーを押すような間抜けは死ねばいいんだよ。
0126デフォルトの名無しさん
2006/10/01(日) 00:30:49ああネトゲか
でもネトゲだったらチート対策でホットキーからの全画面解除を制限してるソフトも多いが
0127デフォルトの名無しさん
2006/10/01(日) 00:41:58出来ることと言えば終了させるぐらいしかない。
0128デフォルトの名無しさん
2006/10/01(日) 07:36:47自分がゲーム作って金とれないからってそれはないでしょう。
実際こっちは月に4万円ぐらい入るし。
>>113
そっくり言い返すよ。
0129デフォルトの名無しさん
2006/10/01(日) 08:09:50馬鹿にしてるのか?
0130デフォルトの名無しさん
2006/10/01(日) 09:03:01そういうこと言えるということは、
あなたはそれ以上に稼げるということですよね?
まさかそうですよね?
0131デフォルトの名無しさん
2006/10/01(日) 09:06:36ふざけろ。
0132デフォルトの名無しさん
2006/10/01(日) 10:27:490133デフォルトの名無しさん
2006/10/01(日) 10:42:210134デフォルトの名無しさん
2006/10/01(日) 11:18:06仕事なら当たり前でしょう。
でもその仕事はあなた1人でやるんですか?
違いますよね?
まるで自分の力だけでその金額を稼いでると思ってませんか?
その点シェアウェアは俺1人の力だけで稼いでますよ。
>>132-133
いやこっちもこんな話なんてしたくないんですよ。
論点すりかえる低脳がいるもんでね。
流石に呆れるんで今後>>131みたいなのは無視することにします。
0135デフォルトの名無しさん
2006/10/01(日) 11:27:40お前一人で勝手に火病ってるだけじゃないか。
会社に属して業務で月100万稼ぐのが、個人ベースになったところで
そこに自己満足以上の大きな違いがあるとでも?
つーか釣りだよな?
そうでもないなら大概にしてくれ。
スレ違いだしな。
0136デフォルトの名無しさん
2006/10/01(日) 11:32:26なんかこの人デジタルトキワあたりのチャットで見た気がするw
0137デフォルトの名無しさん
2006/10/01(日) 11:38:000138デフォルトの名無しさん
2006/10/01(日) 11:49:07割に合わないと思わないのなら、相当めでたい脳味噌だ。
0139デフォルトの名無しさん
2006/10/01(日) 11:55:50( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
オウム返しは敗北宣言ですよ。
0140デフォルトの名無しさん
2006/10/01(日) 12:29:22WindwowsOS作っててOSのルールに従えないってどんな自己厨だ。
ちなみにFF11はWindwowsキーやATL+TABかますと余裕で落ちるし
当然死んでることもある。
>>134
俺にはシェアウェアというものの考え自体理解できないんだがそういうものなのか?
趣味で作るプログラムは所詮趣味だしネット上で公開する分にはただでいいやみたいな考えなんだけど。
仕事となると1プロジェクトに100人とか居るわけだし、まぁ趣味でやるのとは話が違うわな。
0141デフォルトの名無しさん
2006/10/01(日) 12:30:23すげえOSを作ってるんだな
0142デフォルトの名無しさん
2006/10/01(日) 12:31:52すげえプロジェクトに参加してるんだな
0143デフォルトの名無しさん
2006/10/01(日) 12:32:50数人〜数百人単位で共同で作るというのがどんなに大変なのか全然わかって
ないのが明らかだ。
というか、大勢で共同作業ができない性格だから一人で作ってるんでしょ?
まともな会社に勤まらないからこんなスレで火病っているだけだと思うがm9(^Д^)プギャー
0144デフォルトの名無しさん
2006/10/01(日) 12:39:03>ないのが明らかだ。
その数百人の案件は、具体的にどんなプロジェクトで、
なにを経験して何が大変だったのか感想を希望。
0145デフォルトの名無しさん
2006/10/01(日) 12:40:50自分で経験すればわかるよ。それに、数人〜数百人と幅を持たせている
のに、わざわざ数百人と部分的なレスを返す時点でレスする意味無し。
0146デフォルトの名無しさん
2006/10/01(日) 12:41:35そしてそれは自分の経験を話すのが最適。
で、数百人のプロジェクトって具体的に何?
0147デフォルトの名無しさん
2006/10/01(日) 12:43:23大変さはスレ1つ分くらい楽々埋まるから割愛。
もしくはPCオンラインゲーの案件で担当はUI全般と通信部分の一部、
最後人手が足りなくて課金DBも若干メンテ、
大変さはスレ2つ分くらい楽々埋まるから割愛。
こんなんでいいか?
0148デフォルトの名無しさん
2006/10/01(日) 12:44:110149デフォルトの名無しさん
2006/10/01(日) 12:44:440150デフォルトの名無しさん
2006/10/01(日) 12:47:420151デフォルトの名無しさん
2006/10/01(日) 12:50:45漏れのケツの穴見てみろ、太平洋みたいだぞ(*)
0152デフォルトの名無しさん
2006/10/01(日) 13:25:47だからシェアウェア厨は嫌いなんだ。
0153デフォルトの名無しさん
2006/10/01(日) 14:27:37まあ、気を取り直して次の話題逝ってみよう。
0154デフォルトの名無しさん
2006/10/01(日) 15:23:33DISCL_NOWINKEYです。
同じDirectXスレなのにレベルが違いすぎますね。
次スレのタイトル案を置いていきます。
【C++】 俺達DirectXわからない初心者なので質問にも満足に答えられないスレ Part12 【C】
長すぎますが適当に短くして下さい。
それではさようならもう来ません。
0155デフォルトの名無しさん
2006/10/01(日) 15:33:28二度と来るなカス
0156デフォルトの名無しさん
2006/10/01(日) 17:40:14マジでレスしていいのか分からんが、
フルスクリーン専用でALT+TABは対策しないけど、Winキーは対策します。
画面切り替えはサポートしませんって、ダメなソフトウェアの典型なんだけど・・・。
そういう中途半端なのを許容するのは杜撰だと思われても仕方ない。
フックをやるなら全部やる、フックをやらないなら他の方法でフォローって考えとけよ。
0157デフォルトの名無しさん
2006/10/02(月) 17:09:23ライブラリの使用者は識別番号を使って構造体の配列を指定する、という仕様のライブラリがあるんですが
配列の要素数が多いと最初から大量のメモリを占領してしまうし、なんとなくかっこ悪いので
STLのvectorを使って必要なときにpush_backで要素数を増やして、不必要になれば削除するようにすれば
カッコイイと思うんですが、DirectXのサンプルなどでプログラム終了時にテクスチャは
Release()で解放してから終了しています。もしかして要素を削除するときにもテクスチャを解放してから
要素を削除しなければいけませんか?
長文ですみません
0158デフォルトの名無しさん
2006/10/02(月) 17:57:06> 要素を削除しなければいけませんか?
当然。
それよりも、カッコイイ/かっこ悪いでコーディングするのはどうかと思う。
コンシューマ機では動的に要素数を増減するのは問題があるし「かっこ悪い」。
0159デフォルトの名無しさん
2006/10/02(月) 17:58:390160デフォルトの名無しさん
2006/10/02(月) 20:58:55解放しなかった場合、何か問題があるんですか?
0161デフォルトの名無しさん
2006/10/02(月) 21:09:340162デフォルトの名無しさん
2006/10/02(月) 21:13:50それって問題ないっていうこと?
0163デフォルトの名無しさん
2006/10/02(月) 21:20:18どうぞ好きなだけメモリ使い果たして下さい
200MBでも700MBでも使いまくって結構ですよ
0164デフォルトの名無しさん
2006/10/02(月) 21:24:35カッコイイ!
0165デフォルトの名無しさん
2006/10/02(月) 21:24:54要素を削除してもメモリは解放されないのですね
0166デフォルトの名無しさん
2006/10/02(月) 21:47:03メモリプール&アロケーターの自作なんて常識じゃねぇの?
どうせソフトの終了=リセットor電源OFFしかねぇのに。
0167デフォルトの名無しさん
2006/10/02(月) 22:06:20設定ファイルで変えられるようにするやつもいる。PCのプログラムで
前者みたいなのを見たことあるし、コンシューマーで後者みたいなのも
見たことある。
0168デフォルトの名無しさん
2006/10/02(月) 23:10:29> コンシューマーでも動的な確保は普通すると思うだけど・・・
動的な確保は当たり前。「動的に要素数を増減する」だよ?
これはメモリが細分化するから禁止してるよ。
0169デフォルトの名無しさん
2006/10/02(月) 23:30:22ちょっとまとまった領域作って
その中での確保、解放は管理して見た目自由にさせてやれば?
用はワンフレ単位で確保・解放を繰り返すようなのがまずいだけっしょ?
禁止にしても作りにくいだけじゃん。
0170デフォルトの名無しさん
2006/10/02(月) 23:38:07それただのメモリプールじゃんか・・(;´д`)
動的な確保・解放は普通にやるよ。
「vectorで要素数の増減」の意味がわかってないのか??
0171デフォルトの名無しさん
2006/10/03(火) 00:12:160172デフォルトの名無しさん
2006/10/03(火) 00:15:030173デフォルトの名無しさん
2006/10/03(火) 00:17:160174デフォルトの名無しさん
2006/10/03(火) 00:17:180175デフォルトの名無しさん
2006/10/03(火) 00:20:14if( it != tex_map.end() ){
create...
}else{
ret = it->second
0176デフォルトの名無しさん
2006/10/03(火) 00:20:45学生ですか?
0177デフォルトの名無しさん
2006/10/03(火) 00:21:210178デフォルトの名無しさん
2006/10/03(火) 00:28:110179デフォルトの名無しさん
2006/10/03(火) 00:36:27いやスレ違い承知だけど言わせてくれ
コンシューマ機でもいい加減STL解禁でいいと思うんだわ
自前アロケータがライブラリのアロケータに性能や効率で勝つことなんて滅多にねーんだし
メモリの細分化もリソースの寿命ちゃんと設計に入れてれば
vectorの類が刻む影響なんて屁でもねーのが普通だしな…
0180デフォルトの名無しさん
2006/10/03(火) 00:57:14こーいうのは計測しづらいから、実際どれだけ有効なのかがわかんない。
0181デフォルトの名無しさん
2006/10/03(火) 01:02:27もしかするとWindowsプログラミングの
問題かもしれないですが、よろしくお願いします。
今、ウィンドウモードとフルスクリーンモードを
切り替えできるように実装したのですが
フルスクリーンからウィンドウモードに切り替えると
ウィンドウのタイトルバーとかが無くなってしまいます。
どこへ行ってしまったのでしょうか(><)
0182デフォルトの名無しさん
2006/10/03(火) 01:10:27俺は毎フレームしたら駄目とか言ってない。
そもそも分断化するから禁止してるんだよ。
>>179
内部処理を理解して使う分には全然問題ないと思う。
問題なのは「便利だから気兼ねなく使う」人達。
>>180
メモリの状態を視覚化すると分かりやすいよ。
コンシューマゲームだったらタイトルデモ中に分断化したら
8時間放置とかした時にメモリ不足で落ちるとかあり得る。
0183デフォルトの名無しさん
2006/10/03(火) 01:26:09毎日朝会社に来て「よかったきょうも生きてた」ってホっとするんだよな。
そして帰りしなに覗いてみたら止まってて真っ青になったり。
いや、実際問題、そもそもメモリ資源への要求が厳しい場合はさておき、
あまりに長寿命なリソースが…
端 的 に は グ ロ ー バ ル 変 数 と か が
野放図に使って無い限り、動的確保と言えど適当な枠内に収まるのが普通。
リソースの処分ステージを設けてやるのは、本来上流の設計工程の責任だしな。
テクスチャマネージャだのの類が原因になってる場合は…まあそのなんだ、ご愁傷様。
こーいうのに限っては自前のメモリ管理導入も止むを得ないつーかむしろマストだったり。
しかしなんだね。
どこの現場の悩みも同じ様なもんだっつーか、代わり映えしないよなw
0184181
2006/10/03(火) 01:40:14ShowWindowを呼んだら上手くいきました。
失礼しました。
0185デフォルトの名無しさん
2006/10/03(火) 01:41:37テクスチャはある意味管理しやすいってのが救いだけど。
(最悪データ捨ててもプログラム停止とかになり難い)
>どこの現場の悩みも同じ様なもんだっつーか、代わり映えしないよなw
代わり映えしないなw(´Д`)
0186デフォルトの名無しさん
2006/10/03(火) 03:15:27描画させると、ポリゴンが透ける部分があります。
透けないようにしたいんですが、
なにかヒントいただけないでしょうか?
pDevice->SetRenderState( D3DRS_SHADEMODE, D3DSHADE_GOURAUD );
pDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_CW );
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
pDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
pDevice->SetRenderState( D3DRS_AMBIENT, 0x00555555 );
pDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE);
上記、設定どこか間違ってますでしょうか?
0187デフォルトの名無しさん
2006/10/03(火) 06:24:420188デフォルトの名無しさん
2006/10/03(火) 06:45:24はぁ?意味わかんない。
要素数の増減も糞も結局はメモリの確保と違いがあるのか?
全くわからない。
自前のnewが呼ばれて、自分が確保したまとまった領域のどっかに入るようにしときゃ問題ねぇんだろ?
0189デフォルトの名無しさん
2006/10/03(火) 07:29:05「DirectX Managed」を入れろって言われたんで
DirectX End-User Runtime Web Installer
http://www.microsoft.com/downloads/details.aspx?FamilyId=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3&displaylang=en
でインストールしようと思ったら「もうインスコされてるよ」って・・・
強制的にもう一回インスコとかできないものか・・・
なんでこうなっちゃったんだろう。
0190デフォルトの名無しさん
2006/10/03(火) 08:19:24透けるってのは半透明ってこと?
つ D3DRS_ALPHABLENDENABLE
0191デフォルトの名無しさん
2006/10/03(火) 12:31:34開発が無事に終わりCD−ROMを配布したんですが、
ダイレクトXが戻らないというトラブルが頻発してます。
仕組みはこうなってます。
CD−ROMを入れる→自動起動→パソコンに入ってるダイレクトXのバージョンを記録→
ダイレクトX9セットアップ→自社システム起動→メニューから終了を選ぶ→自社システム終了→
元のダイレクトXをセットアップ→CD−ROMを抜く
↑
顧客からの電話の話では、ここの部分でトラブルになってるようなんです。
他のソフトが正常に動かなくなったりしたり、画面が大きく?なったりしてるようです。
社内で確認したところ、
ダイレクトXバージョンの記録は問題なく動いてました。
CD−ROMにもダイレクトX3からX8までのランタイムが入ってます。
どこに原因があるかわかる方お願いします。
0192デフォルトの名無しさん
2006/10/03(火) 12:41:51戻したかったらシステムの復元でも使え。
0193デフォルトの名無しさん
2006/10/03(火) 13:35:06開発中に誰一人としてreadmeすら読まなかったのか・・・。
0194デフォルトの名無しさん
2006/10/03(火) 14:05:240195デフォルトの名無しさん
2006/10/03(火) 14:05:28プログラマの話ではアドミンじゃないとシステムファイルをいじれないので、
ダイレクトXに関連するレジストリやファイルを削除できないらしいんです。
どうやら自社システムを終了するときにこれらを削除することで、
ダイレクトXセットアップが新規として認識するようしてあるみたいです。
常にアドミンにしておくようにするという案がプログラマのほうからありましたので、
今後はこれで対応することにしようかと会議続行中です。
>>192
プログラマは可能と言っていたのでお願いしたんですが、
元のダイレクトXに戻すのは不可能なんですか?
システムの復元というアイディアは素晴らしいです。
早速提案してみます。
>>193
プログラマは個人の外注1人です。
0196デフォルトの名無しさん
2006/10/03(火) 14:22:08こーだーのバイト君雇ってますレベルじゃないか。
0197デフォルトの名無しさん
2006/10/03(火) 15:53:360198デフォルトの名無しさん
2006/10/03(火) 15:57:59動作要件が 開発した Dx? 以上 ってだけなのに…
アッパーコンパチでなくなった微妙な機能使っているのかな?
0199デフォルトの名無しさん
2006/10/03(火) 16:34:25トラブル出ていたところには緊急で対処法を連絡したのですが、
常にアドミンにしておくとセキュリティの問題がでてしまうというのと、
顧客にも詳しい人がいて、
システムファイルいじるなんて異常だというお叱りの電話が入りました。
システムの復元についても、
1つのソフトがOSを振り回すなんておかしいだろということです。
それなのでこれらの案は使えないことになりました。
今日の夜にプログラマが来る予定なので、真夜中の会議となりそうです。
>>196
一応ちゃんとした求人サイトで募集し、大卒のプログラマさんにお願いしてます。
>>197
顧客のほうからもかなりの大声で同じこと言われたようです。
>>198
98/ME/2000/XPで動くようにお願いしていたのですが、
ベータの時点でXPでしか動かないというトラブルが出てしまい、
緊急でこのような仕組みにしたようです。
最初はOpenGLで作ることになっていたのですが、(募集要項にも書きました)
いざ始まったらダイレクトX9しか使えないということで、、、。
0200デフォルトの名無しさん
2006/10/03(火) 17:04:59GDIも捨てたもんじゃないからな。 HALFTONE指定の StretchBlt とか
0201デフォルトの名無しさん
2006/10/03(火) 17:20:28そうじゃないと思うんだがなぁ。その DirectX のバージョン依存の機能に
何の必然性があるのかと問うてみるが良い。
0202デフォルトの名無しさん
2006/10/03(火) 18:07:42システムファイルを弄る提案をした時点でその人は地雷なのではないでしょうか?
0203デフォルトの名無しさん
2006/10/03(火) 18:13:110204デフォルトの名無しさん
2006/10/03(火) 18:45:39なにやら急用ということですが、こちらも急用なので係長たちが家まで向かったようです。
>>200
GDIというのもあるんですか。
今回は開発が終わってしまったので次回の参考にさせていただきます。
>>201
新しいほうが綺麗とか速いとか言ってた気がしますが、詳しいことはわかりません。
なんせプログラムを知る人が社内にいないので、完全にお任せ状態になってました。
>>202
かなり詳しそうな人だったのと、
面接のときに動いてるプログラムを見せてもらって素晴らしかったのでお願いしたのですが、
ちょっと今は怪しい状態です。
大卒でゲーム会社に居たという言葉に騙されたのでしょうか、、、。
ギャランティ支払い終えてからは、いちいち電話しないと会議に来ないようになりました。
>>203
今思うと最初の頃熱心に会議に顔出してくれたのは、
CとOpenGLを使えないのでルナとダイレクトX9にしたかったんでしょうね、、、。
0205デフォルトの名無しさん
2006/10/03(火) 19:09:36( ゚д゚)
( ゚д゚ )
0206デフォルトの名無しさん
2006/10/03(火) 19:55:09そいつがゲーム会社に勤めていたって信じれない
雑用とかしてただけじゃね?
Lunaなんて趣味でゲーム作ってる高校生レベルじゃねーか
0207デフォルトの名無しさん
2006/10/03(火) 20:38:360208デフォルトの名無しさん
2006/10/03(火) 21:23:51Managed DirectXと普通のDirectXは違うよ
これかこれを試してみれ
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=136a7b29-aa12-4c3b-aa7d-15cd98a9a59c&DisplayLang=ja
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=fff5ed7d-3446-4583-b2c9-8db1bc10b16e&DisplayLang=ja
0209デフォルトの名無しさん
2006/10/03(火) 21:30:500210デフォルトの名無しさん
2006/10/03(火) 21:45:31ゲームエンジンとしては何もないのでは?
0211デフォルトの名無しさん
2006/10/03(火) 22:03:11DirectX9は 初代Win98/Win98SE/WinME/Win2000/WinXP/WinVISTA対応してるだろう。
XPでしか動かないトラブルってどんな特殊機能駆使してるんだ・・・。
>>210
作っといて自分でいうのも何だけどぶっちゃけDirectX9とシェーダーのお勉強をしようがコトの始まり。
もう色々gdgdだからこれ以上弄らない宣言を・・・。
0212デフォルトの名無しさん
2006/10/03(火) 22:05:17{
SAFE_RELEASE( pFont );
for(DWORD i=0;i<THING_AMOUNT;i++)
{
FreeAnim(Thing[i].pFrameRoot);
cHierarchy.DestroyFrame(Thing[i].pFrameRoot);
SAFE_RELEASE( Thing[i].pAnimController);
}
SAFE_RELEASE( pDevice );
SAFE_RELEASE( pD3d );
}
0213デフォルトの名無しさん
2006/10/03(火) 22:10:27わかった、Windows XPで採用されたLunaを(ry
0214デフォルトの名無しさん
2006/10/03(火) 22:42:13>>188
オマエはプログラマー辞めろ。
0215189
2006/10/03(火) 23:54:08これ入れてみて、って送られてきたファイルのタイムスタンプを見ると
2002年12月12日。どうやら 9.0c とかではなくて 9.0 の時代のモノ。
こんなの入れちゃって大丈夫かなと思ったけど、インストールすれば
問題なく動かしたかったソフトが動くようになりました。
いろんな時期の DirectX 関連のランタイムって、共存させまくって
良いモノなんだろうか。
0216189
2006/10/04(水) 00:00:09ここ見ると、すげぇ昔の DirectX SDK はダウンロードできるんだけど、
すげぇ昔のランタイムはダウンロードできないなぁ。
0217デフォルトの名無しさん
2006/10/04(水) 01:40:32DirectXは一応アッパーコンパチを標榜してるのだし、特定のランタイムに依存するコード自体に
改善の余地があるのは間違いないとは思うのだけれど。
つーかそーいうコードだとDirectXのバージョンの問題以前にドライバの相性とかでもgdgd発揮しそうな悪寒だ。
0218デフォルトの名無しさん
2006/10/04(水) 02:08:08とりあえず最新版を入れておけば過去のバージョンは全部動作する(はず)だし。
実際動作はちゃんとしてるしな。
そもそもバージョンを戻せるとしても、戻す前に何らかの不正な処理でアプリが落ちたら終わりだろ。
0219デフォルトの名無しさん
2006/10/04(水) 05:25:32PC98で256色モードの使用に消極的だった頃の感性を今も残す。
0220デフォルトの名無しさん
2006/10/04(水) 06:09:08俺も君の言ってる意味がわからないけど?
0221デフォルトの名無しさん
2006/10/04(水) 07:47:30造ったんでつが・・・、
もりもり動くのはいいんだけど、
うまく「ライト(光)」が反映されないでつ。
普通のXファイルはちゃんとライトは反映されまつ。
どこら辺のソースコードを晒せばいいでつか?
0222189
2006/10/04(水) 08:00:10インストールされている状態で mdxredist.msi をインストール
しないと駄目なんだな。その MSI ファイルは ManagedDX.cab
を展開して取り出す、と言うことらしい。
http://www.microsoft.com/japan/msdn/directx/japan/dxreadme_U04_jp.aspx
0223デフォルトの名無しさん
2006/10/04(水) 08:00:24法線がそのままだから変なライティングに見えてしまう
ちゃんと計算しましょ
0224デフォルトの名無しさん
2006/10/04(水) 08:27:33つ [CloneMesh]
法線の追加ね
0225デフォルトの名無しさん
2006/10/04(水) 08:38:00うはっ、俺様DQNなので、知能障害起こしそう。
法泉を計算するって、まじムズそう。
Xファイル吐き出すソフトとかで
やってくれてもよさそうなもんなんだが・・・。
>>224のCloneMeshを調べてみるみる。
0226デフォルトの名無しさん
2006/10/04(水) 08:57:52バーテックスシェーダー使ってるならボーンの変形を
法線にも適用しないといかんが。
0227デフォルトの名無しさん
2006/10/04(水) 09:03:000228デフォルトの名無しさん
2006/10/04(水) 09:28:32今ちょっと軽くコーディングしてみた。
つーか、良く見たら、Xファイルを吐き出すソフトの方で法泉吐き出してるみたいだ。
// 当該メッシュが法線を持たない場合は法線を追加する
if (!(pMesh->GetFVF() & D3DFVF_NORMAL))
{
pMeshContainer->MeshData.Type = D3DXMESHTYPE_MESH;
hr = pMesh->CloneMeshFVF( pMesh->GetOptions(),
pMesh->GetFVF() | D3DFVF_NORMAL,
pDevice, &pMeshContainer->MeshData.pMesh );
if (FAILED(hr))
{
return E_FAIL;
}
pMesh = pMeshContainer->MeshData.pMesh;
D3DXComputeNormals( pMesh, NULL );
}
else
{
pMeshContainer->MeshData.pMesh = pMesh;
pMeshContainer->MeshData.Type = D3DXMESHTYPE_MESH;
pMesh->AddRef();
}
↑はelseの方にちゃんと入ってるみたい。
「ライティング(光)」がまったく反映されないか?っていうとそうでもなくて、ほんの少しだけ明るい。
ただし、通常のXファイルを表示すう場合とちがって、光の方向やら、その他設定がぜんぜん違う。
スキンメッシュモーションを「通常のXファイルと同様」に読み込むと「いい感じにライティングが反映」されているんだが、
スキンメッシュモーションをスキンメッシューモーション用に読み込むと、ライティングが辺な風に反映される。
ちょっと、知能障害起こしてるから、文章分かりにくかったらスマソ。
0229221
2006/10/04(水) 09:30:34スマソ。
>>228の読み込むという表現はまずい。
読み込む→読み込んで、描画する。
正直スマンカッタ。
0230デフォルトの名無しさん
2006/10/04(水) 10:00:390231221
2006/10/04(水) 10:09:34知能障害の俺に優しくしてくれてありがとう。
>光源の位置とタイプは平気か?
light.Type = D3DLIGHT_DIRECTIONAL;
vecDirection = D3DXVECTOR3(0, -1, 1);
light.Diffuse = D3DXCOLOR(1.0f, 1.0f, 1.0f, 0.0f);
light.Specular = D3DXCOLOR(1.0f, 1.0f, 1.0f, 0.0f);
light.Ambient = D3DXCOLOR( 0.5f, 0.5f, 0.5f, 0.0f);
D3DXVec3Normalize( (D3DXVECTOR3*)&light.Direction, &vecDirection );
pDevice->SetLight( 0, &light );
pDevice->LightEnable( 0, TRUE );
pDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
pDevice->SetRenderState( D3DRS_AMBIENT, 0x00111111 );
pDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE);
一応、こんな感じ。
高原の位置とかタイプは自信がありまつ。
通常のXファイルとかなら、まったく問題なくいけてまふ。
ちょい聞きたいんでつが、
スキンメッシュのファイルって、どっかにサンプル落ちてない?
0232デフォルトの名無しさん
2006/10/04(水) 12:24:42サイズ)を実行中に動的に変えようとした際に、一部の環境でエラー
(D3DERR_DEVICELOST)が発生してしまい悩んでいます。
IDirect3DDevice9::TestCooperativeLevelではD3D_OKが返ってきているのですが、
その直後のResetでエラーが出ます。(どれだけリトライしてもダメ)
IDirect3DDevice9::Reset以外に、フレームバッファサイズを変更する方法は何か
ないでしょうか?
0233デフォルトの名無しさん
2006/10/04(水) 16:53:00Resetでいいんだよ
デバイスロストしたときの仕組みが間違ってるだけ
サンプル見ればわかるよ
0234232
2006/10/04(水) 17:20:46�d
問題の環境で追いかけた限り、デバイスロストからResetで復帰できないのではなく、
デバイスロストしていない状態でResetの実行に失敗(DEVICELOSTを返される)して
いるようなのですよ。
TestCooperativeLevel()ではD3D_OKが返ってきているので、デバイスはoperational
になっている(と信じるしかない)わけですが、その直後にResetをかけるとエラー、と。
何がいけないのやら…orz
0235デフォルトの名無しさん
2006/10/04(水) 17:33:45>Reset メソッドを呼び出す前に、アプリケーションは、そのデバイスに関連付けられた明示的レンダー ターゲット、
>深度ステンシル サーフェイス、追加スワップ チェーン、ステート ブロック、D3DPOOL_DEFAULT リソースを
>解放しなければなりません。
まずはこれの確認。
0237デフォルトの名無しさん
2006/10/04(水) 20:02:103D関係の画像処理に使ってみようと思うのですが。
0238221
2006/10/04(水) 20:06:40テクスチャのないものについては
うまくライティング処理ができるのですが、
テクスチャがあるものについては、
ライティング処理ができないことが判明しました。
どこら辺が怪しいですか・・・。
0239デフォルトの名無しさん
2006/10/04(水) 20:14:57レンダーターゲット(サーフェイス)を貰えば指定座標がどうなってるのかわかるよ
0240デフォルトの名無しさん
2006/10/04(水) 21:38:162つほど。
・ライティングをOFFにした場合、そのテクスチャのあるものはちゃんと表示される?
・「処理が出来ない」とは具体的にどうなってる?真っ黒に表示されるとか、テクスチャの原色がでるとか
0241デフォルトの名無しさん
2006/10/04(水) 21:53:22そのうちに勝手に自己解決して終わり。
付き合っても誰の特にもならないってオチ。
0242221
2006/10/05(木) 00:22:350243デフォルトの名無しさん
2006/10/05(木) 02:59:52誰だよそんなの立てた奴w
0244221
2006/10/05(木) 05:41:00>>240
質問1
>・ライティングをOFFにした場合、そのテクスチャのあるものはちゃんと表示される?
質問2
>・「処理が出来ない」とは具体的にどうなってる?真っ黒に表示されるとか、テクスチャの原色がでるとか
質問1について
ライティングをOFFにするとはどういう意味でつか?
当方DQNのため、ライティング処理をやめたら、
画面が真っ黒にしかなりませんでつた。
質問2に答えるために
ちょい、うpしたいと思う。
http://aploda.net/dl.php?mode=pass&file_id=0000022268.zip
うpした画像なんでつが、
「1.jpg」、「2.jpg」がテクスチャのあるスキンメッシュで、
うまくライティング処理ができていないもの。
(2.jpgは「1」のファイルを違うカメラ視点から見たもの)
「3.jpg」がてテクスチャのないスキンメッシュで、
ライティング処理ができているもの。
「4.jpg」が「1」を通常のXファイルとして読み込んで
表示させたもの。
0245221
2006/10/05(木) 06:27:48// カリングはしない
pDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
// Zバッファー処理を有効にする
pDevice->SetRenderState( D3DRS_ZENABLE, TRUE );
pDevice->SetRenderState(D3DRS_ZWRITEENABLE,TRUE);
// ライトを有効にする
pDevice->SetRenderState( D3DRS_LIGHTING, TRUE );
// アンビエントライト(環境光)を設定する
pDevice->SetRenderState( D3DRS_AMBIENT, 0x00111111 );
// スペキュラ(光沢反射)を有効にする
pDevice->SetRenderState(D3DRS_SPECULARENABLE,TRUE);
DirectXの初期化のときに上記を
実行しているんですが、
上記をコメントアウトするとうまく実行できまつた。
なぜでせうか?
0246221
2006/10/05(木) 06:33:35が原因だったようです。
意味不明。
pDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
カリング処理をはずすとうまくいきました。
こいつをはずすとうまく処理がライティング処理が
行きます。
0247221
2006/10/05(木) 06:58:49通常のXファイルでは
light.Ambientが利くのに
スキンメッシュアニメーションでは
light.Ambientが利きません。
その他のライティング処理は利いているみたい。
なぜでせうか?
0248232
2006/10/05(木) 10:25:24おかげさまで解決しました。ありがとうございました。
>D3DPOOL_DEFAULT リソースを解放しなければなりません
これが引っかかってました。
テクスチャをD3DPOOL_MANAGEDでプールするように変更して解決です。
0249デフォルトの名無しさん
2006/10/05(木) 16:18:27法線が逆か、ポリゴンが裏返ってね?
0250221
2006/10/05(木) 16:30:35閣下、法泉はXファイルが持ってる臭いであります。
ポリゴンが裏返るというのが当方DQNなため、よくわかりません。
ライティング処理なんですが、
Light_Class::light.Diffuse = D3DXCOLOR(1.0f, 1.0f, 1.0f, 0.0f);
↑利いてるっぽい
Light_Class::light.Specular = D3DXCOLOR(1.0f, 1.0f, 1.0f, 0.0f);
↑利いてないっぽい
Light_Class::light.Ambient = D3DXCOLOR( 0.5f, 0.5f, 0.5f, 0.0f);
↑利いてないっぽい
みたいな感じです。
0251デフォルトの名無しさん
2006/10/05(木) 16:31:350252デフォルトの名無しさん
2006/10/05(木) 16:36:28いいからプログラム晒してみろって。
ソース見られるのが嫌だったらXファイルだけでも。
あとHLSL使ってるんだったらソレも。
0253221
2006/10/05(木) 16:47:10博士、Xファイルだけとりあえずうpいたします。
博士、無知な私目にご教授願います。
http://aploda.net/dl.php?mode=pass&file_id=0000022281.zip
HLSLっていうのは初めて知ったんですが、
多分使ってないです。
0254221
2006/10/05(木) 16:50:46シェーダーの計算とは、具体的にどこでしょうか?
当方、DirectXを独学で始めたばっかなので
よくわかっていません・・・。
提督、2階級降格ですか?
0255デフォルトの名無しさん
2006/10/05(木) 16:55:57ttp://aploda.net/dl.php?mode=pass&file_id=0000022282.jpg
0256221
2006/10/05(木) 17:01:08せんぱぁ〜い、お弁当作ってきましたぁ〜。
現状をまとめます。
スキンメッシュの読み込み→再生はできます。
ただし、ライティング処理のAmbientがうまく反映されない。
スキンメッシュのファイルをただのXファイルとして扱い、
表示した場合、Ambientはちゃんと反映される。
→ライティング処理のAmbientを反映させたい。
0257デフォルトの名無しさん
2006/10/05(木) 17:14:54こっちにはなにもないのにどうやって指示するのか
0258デフォルトの名無しさん
2006/10/05(木) 17:19:32DirectX Viewerで見る限りはライティング問題なさそう。
剣がデカくなった時に暗くなってるのは気になるが・・
0259デフォルトの名無しさん
2006/10/05(木) 17:31:04> vecDirection = D3DXVECTOR3(0, -1, 1);
ライトさ、奥から手前に向かってない?
Zを-1にしてみたらどうなる??
スクリーンショットみても下から当たってるようにも見えるし
ライト関連の設定に問題がありそうなんだよね。
0260221
2006/10/05(木) 17:38:06おっしゃるとおりで・・・。
正直すまんかった。
>>258部長
調べてもらってスンマセン。
>>259先生
先生、
vecDirection = D3DXVECTOR3(0, -1, -1);
にしたら、スキンメッシュ全体がかなり暗くなりました。
同じ設定(vecDirection = D3DXVECTOR3(0, -1, -1);)で
通常のXフィル用に先ほどのスキンメッシュを開いたら、いい感じに
ライティング処理が施されていまふ。
おっしゃるとおり、ライト関連がかなり怪しいです。
ライト関連ならさらせますが・・・うpしますか?
0261221
2006/10/05(木) 17:47:38http://aploda.net/dl.php?mode=pass&file_id=0000022286.txt
コーディングがうんこなのは、知能障害のためです。
0262デフォルトの名無しさん
2006/10/05(木) 18:17:36プログラム作ってるんだが、
サーバ開始した時点でプレイヤーが一人居るんだが
こいつはサーバ自身のプレイヤー?
こいつと普通のプレイヤー見分ける方法ある?
0263デフォルトの名無しさん
2006/10/05(木) 18:34:45過去のプログラムのメンテなら分かるが、新規で使う気が知れない。
0264デフォルトの名無しさん
2006/10/05(木) 18:36:02今って通信のプログラムって何が流行りなの?
0265デフォルトの名無しさん
2006/10/05(木) 18:39:060266デフォルトの名無しさん
2006/10/05(木) 18:41:10Winsockでつか?
0267デフォルトの名無しさん
2006/10/05(木) 18:53:07「音声通信せよ」
との命令なんだ。
かなりローカルで使うプログラムだから許してちょ
0268デフォルトの名無しさん
2006/10/05(木) 19:00:29今となっては完全にDirectPlayは必要が無い。
0269デフォルトの名無しさん
2006/10/05(木) 19:18:38そんなのもあるのか
サンクス
0270デフォルトの名無しさん
2006/10/05(木) 19:49:31んーよくワカランかった(;´д`)
描画するときに-1でスケールとかしてないよね?
0271デフォルトの名無しさん
2006/10/05(木) 20:00:49SetRenderState(D3DRS_NORMALIZENORMALS, TRUE);
も試しにやってみるといいわね。
0272デフォルトの名無しさん
2006/10/05(木) 20:53:000273261
2006/10/05(木) 23:02:03>んーよくワカランかった(;´д`)
>描画するときに-1でスケールとかしてないよね?
してないズラ。
>>271団長
>SetRenderState(D3DRS_NORMALIZENORMALS, TRUE);
>も試しにやってみるといいわね。
やってみた。
ダメだった。
0274デフォルトの名無しさん
2006/10/05(木) 23:08:082Dなんですけど、左から右に行くほどどんどん透明になっていくテクスチャ
ってのを作りたいんですけどどうやって作ればいいんでしょうか?
ちなみに画像のファイル形式はbmpです。
0275261
2006/10/05(木) 23:30:20とりあえず、現状報告。
画像をうpします。
1.jpg スキンメッシュを通常のXファイル描画
2.jpg スキンメッシュをスキンメッシュモーションとして描画
多分Ambientが利いていないんだと思う。
ライティング処理関係か、SetRenderState関係が
非常にあやすぃ。
0276デフォルトの名無しさん
2006/10/06(金) 00:04:55もう面倒だからコンパイル環境まとめてうpしなさいな
0277261
2006/10/06(金) 00:08:03すまそ、間違えてパスつけてた。
VC++6.0で漏れの珍妙なソースコード見てくれる
ネ申はいたりますか?
0278デフォルトの名無しさん
2006/10/06(金) 00:13:57それだけのことだろう。
見れば分かるわけでもないが、見なければまず分からない。
0279261
2006/10/06(金) 00:17:26うんこみたいなコードを晒します。
0281デフォルトの名無しさん
2006/10/06(金) 00:30:25ナイス度胸!よくUPした!!
待ってろよ〜すぐ解決してやっから。
まずはリンクエラーを何とかして・・・(;´д`)
0282デフォルトの名無しさん
2006/10/06(金) 00:45:01テクスチャーファイルがねー(;´д`)
とりあえず灰色でよければライトちゃんと当たってたよ。
ところで、DirectXって左手座標系だからZ座標は手前が正(プラス)方向だよ。
カメラとライトがどっちも右手系の指定になってたのは
単にモデルを正面から見るため?
0283261
2006/10/06(金) 01:00:16このバグ?で2日も悩んでる。
DQNコードだとか、DQNデザインパターンだとか
もぉ・・・、いいんです。
助け・・・、て。
>>282監督
http://aploda.net/dl.php?mode=pass&file_id=0000022316.zip
ごめんなさい。
テクスチャつきのをうpします。
>カメラとライトがどっちも右手系の指定になってたのは
>単にモデルを正面から見るため?
単に漏れがDQNなため・・・。
0284デフォルトの名無しさん
2006/10/06(金) 01:05:21なるほど、確かに暗くなるね。不思議。
いろいろ見てみる。
0285261
2006/10/06(金) 01:05:56モーションファイルを開く
を行った後に、
Xファイルを開く
を行うと落ちます。
逆はなぜかヘイキ。
0286261
2006/10/06(金) 01:07:54スキンメッシュクラスがすげぇ怪しいキガス。
スキンメッシュクラスは正直、本のコピペをちょい改悪した程度。
あと、ライティング関係も怪しいキガス。
0287デフォルトの名無しさん
2006/10/06(金) 01:16:050288デフォルトの名無しさん
2006/10/06(金) 01:20:04pMeshMaterials[i].Ambient Diffuse = d3dxMaterials[i].MatD3D.Diffuse;
通常のメッシュはここでアンビエントにディフーズを代入しているので、
アンビエントがかなり強くとうぜん明るい。
スキンメッシュの方は読み込んだマテリアルそのままなので、
アンビエントは低く暗い。
マテリアルの展開を統一しないから出たバグだな。
0289デフォルトの名無しさん
2006/10/06(金) 01:23:00DirectGraphics.cpp の 693行目と925行目の後に↓を追加
// ディフーズ色をアンビエント色にコピーする
pMeshContainer->pMaterials[iMaterial].MatD3D.Ambient = pMeshContainer->pMaterials[iMaterial].MatD3D.Diffuse;
でも、できればプログラムでいじるんじゃなくて
Xファイルの方で正しくアンビエント色を設定できたほうがより良い。
0290デフォルトの名無しさん
2006/10/06(金) 01:24:37memcpy(pMeshContainer->pMaterials, pMaterials, sizeof(D3DXMATERIAL) * NumMaterials);
こう書かれている。
下のループの中で
pMeshContainer->pMaterials[iMaterial].MatD3D.Ambient = pMeshContainer->pMaterials[iMaterial].MatD3D.Diffuse;
こう書くと普通のメッシュと同じ明るさで出る。
0291289
2006/10/06(金) 01:25:10「FU」って変換すると単に「フ」なんだな・・(;´д`)
0293デフォルトの名無しさん
2006/10/06(金) 01:27:48ディフューズしか持たせてないなぁ。
一応アンビエントに半球ライティング使ってるけど。
0294261
2006/10/06(金) 01:30:34漏れが超うんこであることがわかりました。
大変うんこで申し訳ないのでつが、
どのように直せばいいかヒント出してもらっていいでつか?
直すところは
AnimationMesh_Class::MY_HIERARCHY::CreateMeshContainer
の内部でつか?
0296デフォルトの名無しさん
2006/10/06(金) 01:35:31DirectXのスキンメッシュって今回初めてだったんだが
確かにモデルのマテリアルにもアンビエントがあると混乱するね。
半球ライティング使ってるんなら特別な理由がない限りモデル単位では
アンビエントは無効になるね。
>>295
> >>290 >>291 >>292 >>293 四天王
たぶん2人だけだぜw
0297261
2006/10/06(金) 01:36:01できたー。
0298261
2006/10/06(金) 01:40:48これで故郷(くに)に帰れます。
DQNな漏れの汚いコードを読んでくれて、
まじ、感謝でつ。
0299デフォルトの名無しさん
2006/10/06(金) 01:45:24お疲れさん〜
まだ先は長いから頑張りな!
0300261
2006/10/06(金) 01:46:03Xファイルでアンビエントを設定するというのは、
独自のXファイルを作るということでせうか?
それとも、そういう定石的なやり方があるのでせうか?
>>296隊長
クソ初心者なので、クソ躓いて、クソ混乱してしまつたよ。
あと、1つ質問なんでつが
スキンメッシュ読み込んでから、普通のXファイルを
開こうとするとエラーでソフトが落ちるんでつが、
なにかヒントなんぞあれば教えていただけないでゲスか。
0302デフォルトの名無しさん
2006/10/06(金) 01:55:37> 独自のXファイルを作るということでせうか?
いや良くは知らんのだが、Xファイルのマテリアル情報の中に
アンビエントってのがあるんだろタブン。で、それを設定できるんなら
した方がいいよってこと。できないんなら諦める。
> スキンメッシュ読み込んでから、普通のXファイルを
> 開こうとするとエラーでソフトが落ちるんでつが、
さっそく↓を実行したまえ。
> 2chに甘えることなく、次はちゃんと自分でバグを
> 見つけられるようになりたいでつ。
0303261
2006/10/06(金) 01:58:35>いや良くは知らんのだが、Xファイルのマテリアル情報の中に
>アンビエントってのがあるんだろタブン。で、それを設定できるんなら
>した方がいいよってこと。できないんなら諦める。
ちょい調べてみまつ。
>さっそく↓を実行したまえ。
おっしゃるとおりで・・。
えと、自分で調べまつ。
0304デフォルトの名無しさん
2006/10/06(金) 02:02:51「聞いてみる」ってのが好まれます。
また行き詰った時はソース晒せば皆が見てくれるよ、タブン。
0305デフォルトの名無しさん
2006/10/06(金) 08:46:290306デフォルトの名無しさん
2006/10/06(金) 16:02:270307デフォルトの名無しさん
2006/10/07(土) 00:05:47LPDIRECT3DDEVICE9
って、普通、プログラム中にみなさん何個作りますか?
自分1つしか使ってないのですが・・・。
0308デフォルトの名無しさん
2006/10/07(土) 00:30:090309デフォルトの名無しさん
2006/10/07(土) 00:31:15よかった、安心したダス。
0310デフォルトの名無しさん
2006/10/07(土) 01:33:510311デフォルトの名無しさん
2006/10/07(土) 01:49:040312デフォルトの名無しさん
2006/10/07(土) 02:18:27>>307
マルチウインドウ物なんかだと複数作りたくなる場合もあるんだが、
MS的に一応公式で「パフォーマンスが落ちるからやめなさい」ってことになってる。
マジぬるぽ。
0313デフォルトの名無しさん
2006/10/07(土) 02:53:44ラジオシティでレンダリングしたような感じの描画は可能ですか?
ローズオンラインっていうネトゲの描画がそれっぽい感じだったんですが
これはテクスチャで擬似的に表現しているだけなのでしょうか?
ttp://www.4gamer.net/news_photo/roseonline/004.jpg
こんな感じです
0314デフォルトの名無しさん
2006/10/07(土) 02:54:42<詳しい症状>
最初に、スキンメッシュファイルを開く→描画する
次に、Xファイルを開く→描画されない。 (最初にXファイルを開く分にはぜんぜんOK)
Debugモードだと、以下のようなものが 「デバッグ欄」にいっぱい出てくる。
例外処理 (初回) は _senkoro_.exe (KERNEL32.DLL) にあります: 0xE06D7363: Microsoft C++ Exception。
<エラー行>
VOID Mesh_Class::DrawMesh()
{
// レンダリング
for( DWORD i=0; i<dwNumMaterials; i++ )
{
pDevice->SetMaterial( &pMeshMaterials[i] );
pDevice->SetTexture( 0, pMeshTextures[i] );
pMesh->DrawSubset( i ); //←ここをコメントアウトするとヘイキ。もちろんなにも描画されない
}
}
エラーが出ているときに、DrawSubsetの戻り値を見てみた。
hr = [0] (i = [0])
hr = [8876086c] (i = [1])
上記のようになっている。
→8876086cを調べてみた。
よくわからなかった。
ヒントがあれば教えてつぁさい。
ギギギギギ。
馬鹿たれ、銃は卑怯じゃ。
0315261
2006/10/07(土) 04:21:36ジークゲイツ!!
最初にスキンメッシュの方で描画を行うときに、
pDevice->SetRenderState(D3DRS_VERTEXBLEND, dwBlendMatrixAmt);
こいつ↑をコメントアウトしておくと
次にXファイルを普通に開いても問題ないっぽです。
もう少し調査して、改めて報告します。
0316261
2006/10/07(土) 04:28:01できたー。
普通のXファイルを描画するときに、
描画の前に
pDevice->SetRenderState(D3DRS_VERTEXBLEND, 0);
って入れればOKみたい。
うほぅ、2chのおかげでまたバグが一つ解けた。
自己解決だけど、
2chにカキコミながら、デバッグすると
頭が整理されるみたい。
0317デフォルトの名無しさん
2006/10/07(土) 06:34:46チラシの裏に書け
頭を整理してから来いよ
0318デフォルトの名無しさん
2006/10/07(土) 07:31:59それはテクスチャに焼いてあるだけだよ
0319デフォルトの名無しさん
2006/10/07(土) 14:58:10HDRが本物だとか偽者だとかいう変な記事があったりするけど、
見た目が気にならないぐらい同じなら、CG的にはインチキして
より少ない計算資源でやりくりしているほうが、あまった処理に
別の表現を詰め込むことが可能になるから偉いんだよ。
0320デフォルトの名無しさん
2006/10/07(土) 15:47:22言ってることは悪くないんだが、>>313には伝わらないことだな。
ラジオシティが何たるかを理解してないだけじゃなくて
DirectXで何ができるかを理解してない。要するに何も知らないんだ。
0321名無しさん@お腹いっぱい。
2006/10/07(土) 17:40:34別に記事は変じゃないだろ。
ほとんどの記事はただ手法を紹介しているだけで
本物だから偉いとか最初から書いてない。
0322デフォルトの名無しさん
2006/10/07(土) 19:02:29煽りを含んでいるからだよ。そういう記事の論調は、確かに直接偉いと
までは書いてないが、単なる手法の紹介というほど公平でもないと思うが。
>320の言うように、経験が浅い人間が同じような言い回しをするのは
仕方ないのかもしれないけどね。
0323名無しさん@お腹いっぱい。
2006/10/07(土) 21:34:25>313の質問は>318で終わるだろうに、半端に口をだすから
第三者にツッコミ入れられるんだよ。
てゆかこの流れで>319が語りだす理由が分からん。
0324デフォルトの名無しさん
2006/10/07(土) 23:56:13とりあえずこれでも食って落ち着いてくれ。
つ【ようかん】
0325デフォルトの名無しさん
2006/10/08(日) 00:07:51ポリゴン重ねてそれっぽくなったがまだ不自然
0326デフォルトの名無しさん
2006/10/08(日) 00:45:030327sage
2006/10/08(日) 18:47:27DirectXのサンプルを見ながら
スキンメッシュを読み込むプログラムを作っているのですが
途中で使われているConvertToBlendedMeshやConvertToIndexedBlendedMesh
のやっていることがよくわかりませんでした。
ConvertToBlendedMeshのヘルプには
"頂点単位のブレンドの重みとボーンの組み合わせテーブルを適用した
新しいメッシュを返す"
とあったのですが
頂点単位のブレンドの重みやボーンの組み合わせテーブルは
どこから取ってきているのでしょうか。
また、これらが適用されると具体的にどういったことになるのですか。
0328デフォルトの名無しさん
2006/10/08(日) 20:49:23元データから
>これらが適用されると具体的にどういったことになるのですか。
データ形式が変わる
質問が具体的じゃないのに具体的な回答もとめちゃいかんよ
0329デフォルトの名無しさん
2006/10/08(日) 21:04:06切羽詰ってわけわからなくなった人や無知なお子様が掛けるものだから、
テレパシーでも何でも使って、相手の意図を汲むものなんだ。
このスレみたいに初心者につらく当たるスパルタ教育じゃない。
0330デフォルトの名無しさん
2006/10/08(日) 21:14:520331デフォルトの名無しさん
2006/10/08(日) 21:16:11正確に記述しなければ、思った通りには動いてくれないんだから。
質問すらまともに出来ないのであれば、プログラムなど組めようはずもない。
0332デフォルトの名無しさん
2006/10/08(日) 21:26:010333327
2006/10/08(日) 21:30:03>>どこから取ってきているのでしょうか。
>元データから
元データといえば第一引数のID3DXMeshのことだと思うのですが
たとえばそのデータはID3DXMeshのどのメソッドを使って取れるデータですか。
ID3DXMeshのメソッド一覧には見当たらないように見えました。
>>これらが適用されると具体的にどういったことになるのですか。
>データ形式が変わる
名前にConvertとついていることや、ヘルプの新しいメッシュを返す、
というところからデータ形式が変わることはわかっています。
ヘルプの"頂点単位のブレンドの重みとボーンの組み合わせテーブルを適用した
新しいメッシュを返す" の意味がいまいちよくわからなかった為の質問でした。
1つ質問をし忘れたのですが
ConvertToIndexedBlendedMeshはConvertToBlendedMeshと比べて
インデックスが適用されるかの違いだと思うのですが
インデックスが適用されるとはどういうことですか。
(また具体的になってないかもしれない...)
0334デフォルトの名無しさん
2006/10/08(日) 21:34:420335デフォルトの名無しさん
2006/10/08(日) 22:06:23細かいところからやってくのは満足度こそ高いが、それだけだし。
使い物にならんコンポネントも多くて、そのリプレースが必要になってくる場合もあるが、
それはそれで必要になったらやりゃいいんだし。
0336デフォルトの名無しさん
2006/10/08(日) 22:21:390337デフォルトの名無しさん
2006/10/08(日) 22:34:37どこかに詳しく書いてるサイトがあれば教えてください
0338デフォルトの名無しさん
2006/10/08(日) 22:36:170339デフォルトの名無しさん
2006/10/08(日) 22:38:51ローマ字だけなら出来るんですが日本語入力とか変換の仕方がわかりません
0340デフォルトの名無しさん
2006/10/08(日) 22:41:240341デフォルトの名無しさん
2006/10/08(日) 22:41:52フレームワーク使ってるやつ
最近のSDKじゃ削られてんの?
0342デフォルトの名無しさん
2006/10/08(日) 22:59:16中々に出来もいい。
ただ、コードはやっぱりそれなりに大掛かり。
頑張ってコピれ。
俺もコピった。
0343デフォルトの名無しさん
2006/10/08(日) 23:21:11機能も分からずに使おうとして、その挙句2chで教えてクンになってる人を前にしても
そんな発言ができるなんて、>>334 の真意を理解してない証拠。
0344デフォルトの名無しさん
2006/10/08(日) 23:40:23勉強のために自分で一通り作ってみる方が理解が進む。
小学生が算数ドリルをやるのは車輪の再発明でも何でもない。
0345デフォルトの名無しさん
2006/10/09(月) 00:03:08他己解決しました。
0346デフォルトの名無しさん
2006/10/09(月) 00:05:120347デフォルトの名無しさん
2006/10/09(月) 00:06:31面倒くせえ。
0348デフォルトの名無しさん
2006/10/09(月) 00:27:490350デフォルトの名無しさん
2006/10/09(月) 01:02:44へっ!折角の素質も磨かなきゃ意味がねぇな!
そんなことじゃ、この俺はもry
0351デフォルトの名無しさん
2006/10/09(月) 20:18:39悩んでいます。
1つの立方体をXファイルから読み込み
3x3x3=27個並べてルービックキューブのような立方体を
作ってライトを当てたのですが、1つの面に含まれる9個の
ブロックが、それぞれ独立して光を反射しているように見えます
┌──┬──┬──┐
|暗□|暗□|暗□|
|□明|□明|□明|
├──┼──┼──┤
|暗□|暗□|暗□|
|□明|□明|□明|
├──┼──┼──┤
|暗□|暗□|暗□|
|□明|□明|□明|
└──┴──┴──┘
これを1枚の面のように光を反射するように
したいのですが、何に気をつければよいのでしょうか。
┌──┬──┬──┐
|暗□|暗□|□□|
|□□|□□|□□|
├──┼──┼──┤
|暗□|□□|□□|
|□□|□□|□明|
├──┼──┼──┤
|□□|□□|□□|
|□□|□明|□明|
└──┴──┴──┘
0352デフォルトの名無しさん
2006/10/09(月) 20:22:590353351
2006/10/09(月) 21:18:30レス感謝です!
ポイントライトにしてみました
ディレクショナルライトを使用していたときより
よくなった感じはするのですが、
素材がおかしいのか、暗い位置になるほど
┌──┬──┬
|■□|■□|
|□明|□明|
├──┼──┼
|■□|■□|
|□明|□明|
├──┼──┼
が目立ってしまいます。
なめらかにならないんですよね・・・
0354デフォルトの名無しさん
2006/10/09(月) 21:30:03頂点ごとに明るさを計算して、面はそれを元に補間して色つけてるだけだよ。
もしかして立方体の頂点数って8とか少ない数じゃない?
0355デフォルトの名無しさん
2006/10/09(月) 21:39:04レスありがとうございます!
そのとおり8つの一番単純な立方体です。
少ないとライティングも荒くなるってことでしょうか?
数日前からはじめたばかりの素人なもので
頂点ごとに明るさを計算して保管するという処理が
頭にイメージできないのですが、
私のようなド素人にも簡単にできることなのでしょうか?
0356デフォルトの名無しさん
2006/10/09(月) 21:40:24頂点数は4点*6面=24かと思うのですが
見当違いでしたら虫してください。
0357デフォルトの名無しさん
2006/10/09(月) 22:01:170358デフォルトの名無しさん
2006/10/09(月) 22:28:13PerPixelLightingをするかポリを増やすか。
0360デフォルトの名無しさん
2006/10/10(火) 01:44:47http://watch.impress.co.jp/game%2Fdocs/20030214/sc16.htm
↑はソウルキャリバーの画面です。
画面の黄色い部分(剣跡)は、どのようにつくるのでしょうか?
剣を振るキャラクターのスキンメッシュモーションファイルに同梱できたりしますか?
それとも、黄色い部分(剣跡)は平面テクスチャかなんかで作っておいて、
タイミングと軸をあわせて描画させておくのでしょうか?
0361デフォルトの名無しさん
2006/10/10(火) 03:08:09やってできないわけじゃないが、非生産的。
それにモーションの補間等が加わると一気に破綻するので、現実的でない。
基本は帯状のポリを剣の軌跡にあわせて振るで正解。
ただ、単にフレームごとの剣先の位置だけで刻むと、粒度が荒すぎて
ひどくカクカクした絵になってしまう。
ので、実際にはスプラインなんかを適用して滑らかな弧を描く様にしてやる。
こんなもんでどうだろか。
0362360
2006/10/10(火) 17:50:45返信�dクス。
優しくすると付け上がるいい例みたいな俺ですが、
続けて質問させてください。
>基本は帯状のポリを剣の軌跡にあわせて振るで正解。
となると、座標軸や描画するタイミングを合わせて、
シコシコプログラム組むわけですな。
>ただ、単にフレームごとの剣先の位置だけで刻むと、粒度が荒すぎて
>ひどくカクカクした絵になってしまう。
DQNなんで剣先の座標の取得の仕方がわからないです。
スキンメッシュを再生中にリアルタイムで
剣先の座標を取得する方法のヒントなんぞありば教えてほしぃです。
0363デフォルトの名無しさん
2006/10/10(火) 18:01:46まさか剣をスキンにしている奴はいないだろうし。
0364360
2006/10/10(火) 18:17:36レス�dクス
めまいを覚えるくらいにDQNな俺ですが、
教えてください。
>剣の先に見えないフレームを用意しておいておけば簡単。
フレームを用意するとはどういった意味でせうか?
(独学でDirectXをはじめて間もない、なんちゃってプログラマなんすよ)
・フレームって単語自体がよくわかっておりません。
Googleで検索するうえでヒントとなる、
単語なんぞあれば教えてください。
”フレーム DirectX”って検索すると、ちょいとヒット数が多杉でつ。
0366デフォルトの名無しさん
2006/10/10(火) 19:03:51剣先の座標に姿勢行列かければいいじゃん
0367デフォルトの名無しさん
2006/10/10(火) 19:09:21本一冊買って一からやり直したほうが良いと思われ
初心者だから分かりませんって訳じゃなくて初歩のレベルから始めてないから分からんのではないか?
0368デフォルトの名無しさん
2006/10/10(火) 19:20:31剣先がモデルのどこにあるのかどうやって判別するんだ?
0369デフォルトの名無しさん
2006/10/10(火) 19:27:20>>360が動的に剣先座標変わるモデルを操作しているとは思えんから
0370デフォルトの名無しさん
2006/10/10(火) 19:35:56そんな馬鹿な。
0371デフォルトの名無しさん
2006/10/10(火) 19:38:240372デフォルトの名無しさん
2006/10/10(火) 19:56:44形状認識を行うアルゴリズムが必要になる上に、誤認識の可能性まで出てくるぞ。
0373デフォルトの名無しさん
2006/10/10(火) 19:59:460374デフォルトの名無しさん
2006/10/10(火) 20:11:19モデルごとにいちいち座標を確認するのか?
あまりにも阿呆すぎる。
0375デフォルトの名無しさん
2006/10/10(火) 20:39:12もちつけ
0376デフォルトの名無しさん
2006/10/10(火) 21:18:29あまりにも阿呆すぎる。
0377360
2006/10/10(火) 21:23:36難しい方法ではなく、多少見栄えが悪くとも
DQNな漏れでも実装できる方法を行いたいと考えています。
やり方としてはいくつかの流派があるみたいですが、
初心者向きのはどいつなんでしょうか?
>>367
>初心者だから分かりませんって訳じゃなくて初歩のレベルから始めてないから分からんのではないか?
正解。
造りたいという気持ちが先行して、しょっぱなを結構すっ飛ばしてます。
>てゆーかD3DX使わずに、とまでは思わないが座標操作が出来ないレベルなら
座標操作とは、X、Y、Z軸でメッシュを移動させるようなことですか?
それとももっと難しいレベルの話をしているのでしょうか?
>>369
>>360が動的に剣先座標変わるモデルを操作しているとは思えんから
動的に剣先座標が変わるとは、どういうことでしょうか?
「スキンメッシュアニメーションなので、剣を振るような動作の場合」
動的に座標が変わると考えています・・・。
(毎回決まった動作ではありますが・・・)
それとも、もっと難しいレベルの話なんでしょうか?
(剣を振るたびに毎回なにかしらの計算をさせて、パラメータによって
剣を振る軌跡が変わるような場合のことを指すのでしょうか?)
0378デフォルトの名無しさん
2006/10/10(火) 21:28:340379デフォルトの名無しさん
2006/10/10(火) 21:30:33しょっぱなから勉強する方法
0380デフォルトの名無しさん
2006/10/10(火) 21:31:20付け焼き刃じゃ、自分では何もできないのは分かってるはず。
0381デフォルトの名無しさん
2006/10/10(火) 21:55:25Q. 剣の軌跡を作るにはどうしたらいいですか?
A. 剣の切っ先とつばあたりまでの直線を作れ
それを毎フレーム記録してできる帯をポリゴンにすればおk。
滑らかにしたい場合は、スプライン補間でもしとけ。
これで分からない場合は、基礎がなってないから出直せ。
0382デフォルトの名無しさん
2006/10/10(火) 21:58:240383デフォルトの名無しさん
2006/10/10(火) 23:52:43帯部分をステンシルで抜いて、1フレーム前の絵を加工して出すなんて実装もあった希ガス。
剣の軌跡の中に僅かにずれた絵が出るのは、重量感もあって中々格好よかった。
0384デフォルトの名無しさん
2006/10/11(水) 00:56:410385デフォルトの名無しさん
2006/10/11(水) 17:47:52が fatal error C1083: include ファイルを開けません。'd3dx9.h': No such file or directory」
になります.SDKはインストール済みなのですが,何が原因なのでしょうか?
・環境
WinXP pro
DX 9.0 SDK(August 2006)
VS pro 2005
(VS.net 2003もインストールされています)
よろしくお願いします.
0386デフォルトの名無しさん
2006/10/11(水) 18:56:410387デフォルトの名無しさん
2006/10/11(水) 19:17:21>VS.net 2003
どうみても違法コピーです。本当にありがとうございました。
0388デフォルトの名無しさん
2006/10/11(水) 20:16:570389デフォルトの名無しさん
2006/10/11(水) 20:23:43サービスが終了するときのキャンペーンで2005がただで貰えたがな。
0390デフォルトの名無しさん
2006/10/11(水) 20:49:400391デフォルトの名無しさん
2006/10/11(水) 20:53:36おいおい、>>385みたいな初心者にEnterpriseやTeam Systemを使わせる気かよw
逆の意味で言ってるなら、
VSのアカデミック版は卒業後も永久使用可能で学生時から商用利用可だ
0392デフォルトの名無しさん
2006/10/11(水) 21:02:530393デフォルトの名無しさん
2006/10/11(水) 21:31:160394デフォルトの名無しさん
2006/10/11(水) 21:50:53ファイルが開けないって書いてあるだろ。
SDKインスコしたら勝手にファイルが開けるようになると思ってるか?
>>387
俺は2003も2005も普通にPro版買ったが?
Pro版ならそこまで高くないし十分元が取れるソフトだろ。
0395デフォルトの名無しさん
2006/10/11(水) 22:44:17おったらただのアフォだw
0398デフォルトの名無しさん
2006/10/11(水) 23:50:100399デフォルトの名無しさん
2006/10/12(木) 01:13:46もしくは今まで標準関数しか使ってなかったとか
-Iを見てどう思うんだろうか
0400デフォルトの名無しさん
2006/10/12(木) 01:27:220401デフォルトの名無しさん
2006/10/12(木) 02:17:50まぁ正直今時Makefileから書くってのも滅多にやらなくなったけどな。
俺はPS2やってたときが最後だわ。
つかパス通すのはMakefileうんぬんの前に大抵のお勉強サイトにも書かれてるだろ。
0402デフォルトの名無しさん
2006/10/12(木) 02:51:19eclipseのCDTとか勝手にMakefile作ってくれて便利やで。
つーかお前らそんなんぐだぐだ言うくらいなら、VCのお勉強サイトでも教えてあげなさいよ。
0403デフォルトの名無しさん
2006/10/12(木) 03:50:290404デフォルトの名無しさん
2006/10/12(木) 22:12:38表示はされるのですが、動きません。
モーション付Xファイルを動かすためにはどのような処理が必要
なのでしょうか?
サンプルがあれば解析しますので、ご提示いただければ助かります。
よろしくお願いいたします。
環境です。
Visual studio C2005 VC++
winXP
Microsoft DirectX SDK (December 2005)
0405デフォルトの名無しさん
2006/10/12(木) 22:19:27スキンメッシュのやつだ。
ちゃんと見れ。
0406デフォルトの名無しさん
2006/10/12(木) 22:26:590407デフォルトの名無しさん
2006/10/12(木) 22:44:58原点にポリゴンがあって、カメラは原点から少し離れた
位置にあって、常にポリゴン(原点)の方を向いています。
いまマウスで画面をドラッグして上下左右に動かすと
カメラの位置が原点を中心に球状に移動するようにしたのですが
どうも、うまくいきません。
なにか参考になるHPや、アドバイスありましたら
よろしくです
0408デフォルトの名無しさん
2006/10/12(木) 22:50:000409デフォルトの名無しさん
2006/10/12(木) 22:50:42このベクトルAから原点を見るようにカメラを作る。
マウスの上下左右移動に応じて、このベクトルを回転させる。
0410407
2006/10/12(木) 22:57:15X軸を中しんにカメラを半周すると天地逆転すると思うのですが
逆転したときにマウスの移動方向と逆回転してしまいます
あたりまえかと思うのですが、これの防ぎ方がいまいちピンと
きていません。
>マウスの上下左右移動に応じて、このベクトルを回転させる。
この回転方法がよくわかっていないのかもしれません。
例えば
マウスがX軸方向に1ドット移動すると、カメラが1度回転するとします。
このときカメラをY軸について回転させれば、思い通りになるのですが
マウスが斜め方向に移動したときに、変な回転になっている気がします。
わかりにくくてすいません
0411デフォルトの名無しさん
2006/10/12(木) 22:58:11メタセコのカメラワークをコピーしたかったらしいが、それすら出来ずに終了。
しまいには「メタセコのカメラワークは非常に高度なアルゴリズム!」とか語ってたが
お前がアホなだけちゃうんかと。
見たところ、D3DXMatrixLookAtのようにカメラ座標、視点座標からMatrix計算してた。
そりゃ妙な動きする罠。
0412407
2006/10/12(木) 23:02:07要するに、マウスカーソルがX方向にXドット、Y方向にYドット移動したとき、
カメラの座標(Cx,Cy,Cz)が、どの軸に中心に何度回転すればよいかが
あやふやな状態です。
0413デフォルトの名無しさん
2006/10/12(木) 23:08:18こういうことか?
0414407
2006/10/12(木) 23:44:53自己解決?というか妥協しました。
マウスが斜めに移動した場合は
X成分とY成分のうち移動量の多いほうにだけ
カメラを回転させるようにしたら、うまくいきました。
おさわがせしました。
レスくれた方々に感謝します。
0415デフォルトの名無しさん
2006/10/13(金) 02:16:32DirectX9.0c 2005April FullScreenでアプリを作成中です。
マウスをクリック(右でも左でも)すると、強制で非アクティブ(最小化)になって困っています。
ウィンドウメッセージを調べたら、
WM_NCACTIVATE
WM_ACTIVATE
WM_DISPLAYCHANGE
WM_ACTIVATEAPP
WM_PAINT
上記の命令が上から順に送られてきて、非アクティブになっているようです。
どこで発行されているかは分かりませんでした。(調べ方を知りません)
この現象が何故起こる知りたいのですが、分かる方お願いいたします。
0416デフォルトの名無しさん
2006/10/13(金) 02:34:18それは全画面化している様に見えて、実際のウインドウが裏にいないんだ。
ウインドウ作った後で
ShowWindow(m_hWindowHandle, SW_SHOWNORMAL);
UpdateWindow(m_hWindowHandle);
とかしてやれば、多分収まる。
0417デフォルトの名無しさん
2006/10/13(金) 04:58:22まず、ゲームではちゃんと効果が出ています。
同じプログラムで入力設定用のダイアログを開いて、テスト用のボタンを押して、
フォースフードバックをさせようとしても何も反応しません。
DirectInputのDISCL_EXCLUSIVEだからだと思うのですが、こういうものなんでしょうか?
0418415
2006/10/13(金) 11:53:09返答ありがとうございます。
DXUTCreateDeviceの後に(DXUTを使ってます)コードを挿入してみたのですが、駄目でした。
5台で確認したのですが、XP GeFo4 MX440 1台でのみ発生します。
その他のマシンでこの事象は発生しません。
グラボが同じ 2000 GeFo4 MX440 でも発生しませんでした。
>>416さんの仰る通り実際のウィンドウが小さくなっている気がします。
画面の左上の方をクリックしても非アクティブにはならない事がわかりました。
実際のウィンドウが小さく左上にある感じがします。
(デスクトップのサイズは1280x960 フルスクリーンは1024x768)
0419415
2006/10/14(土) 07:23:53マウスが別画面に行ってたっぽいです。
お騒がせしました〜。
0420デフォルトの名無しさん
2006/10/14(土) 22:38:47頂点シェーダって使えない?
0421420
2006/10/14(土) 23:48:15ぜんぜん使えたw
0422デフォルトの名無しさん
2006/10/15(日) 21:45:35IDirectPlay8Address::AddComponent(DPNA_KEY_PORT〜〜〜
で設定するポート番号って何に使うの?
DirectPlayは47624,2300-2400を使うんじゃなかったの?
ユーザにはどのポート空けるように言えばいいのか教えてくれぃ
0423デフォルトの名無しさん
2006/10/15(日) 22:11:210424デフォルトの名無しさん
2006/10/15(日) 22:38:080425デフォルトの名無しさん
2006/10/15(日) 22:44:590426デフォルトの名無しさん
2006/10/15(日) 22:57:23DirectPlayって使わないものなのでしょうか?
やっと描画系を覚えたド素人なのですが
今後、DirectPlayを勉強しようかなってときです。
WinSockで十分ならDirectPlayは
参考程度に斜め読みしますよ。
0427デフォルトの名無しさん
2006/10/15(日) 23:08:340428デフォルトの名無しさん
2006/10/15(日) 23:11:57ネタ?
0429デフォルトの名無しさん
2006/10/15(日) 23:16:440430デフォルトの名無しさん
2006/10/15(日) 23:24:36趣味やパッケージソフトの世界だな
0431デフォルトの名無しさん
2006/10/15(日) 23:40:58今更、新規の案件で使う意味が分からない。
0432デフォルトの名無しさん
2006/10/16(月) 00:06:49DirectPlayで書く方が絶対コード量多い
0433デフォルトの名無しさん
2006/10/16(月) 00:14:33なんて実装しねーよバカ
0434デフォルトの名無しさん
2006/10/16(月) 01:06:57世界は広いぜ、ちくしょう
0435デフォルトの名無しさん
2006/10/16(月) 06:55:580436デフォルトの名無しさん
2006/10/16(月) 08:32:42それが答え。
0437デフォルトの名無しさん
2006/10/16(月) 09:51:250438385
2006/10/16(月) 17:35:25超遅レスですが出来ました!
(インクルードディレクトリ,ライブラリディレクトリを追加)
ありがとうございました.
0439デフォルトの名無しさん
2006/10/16(月) 18:31:33ちょっと聞きたいんですが、
テクスチャを重ねる処理を加えたら勝手に終了するようになってしまいました。
何かメモリ的なことだと思ったんですがよくわからない状態です。
具体的には今まではテクスチャは1枚だけくっつけて表示してたんですが、
今日の夕方にやっと正式なテクスチャがあがってきたと思ったらマルチテクスチャ?になっていて、
急遽この処理を追加したんです。
そしたらメニューからSTARTを選んでゲームを始めると、
一瞬だけゲーム画面が出るんですが即終了しちゃうんです。
もしかするとマルチテクスチャにこういうバグが潜んでるのかもしれません。
どなたか同じ経験にあわれた方いませんか?
0440デフォルトの名無しさん
2006/10/16(月) 21:40:42普通に1ポリゴンに8枚貼ったり出来る。
君のプログラムがバグっているだけだろう。
ある今マルチテクスチャが対応してないほど古いビデオカード使っているか。
というかDirectXで開発してて、何のエラーも出ずに即終了ってありえないんだが・・・。
デバッグランタイム使いつつ、VisualStudioでデバッグモードでちゃんと動かしてるのか?
そもそもどんな環境なのかもDirectXのバージョンも分からなければレスのしようもないぜ。
いや、してるけど。
0441デフォルトの名無しさん
2006/10/16(月) 23:33:18D3DX系のAPIを使うとd3dx9_xx.dllというのが必要ですと
エラーが出ると思うのですが、これの解決方法をネットで
調べていたら、エンドユーザにこれをさせるのは結構面倒
そうなので、D3DX系を使わないでコーディングするという
のは常識でしょうか?それともエンドユーザにランタイムを
インストールしてもらうほうが普通でしょうか。
0442デフォルトの名無しさん
2006/10/16(月) 23:37:06自分が必用だと思う手段をとればいい。
0443デフォルトの名無しさん
2006/10/16(月) 23:45:38フリーソフト→再配布パッケージインストールしてねとドキュメントに書く
0444デフォルトの名無しさん
2006/10/16(月) 23:57:38失礼しました、常識って言葉が悪かったですね。
いやー、個人的な話でもうしわけないんですが
PCに無知な友人(複数)にプレイしてもらいたくとも
ランタイムインストールしてって一言で言えなかったりして。
そういう場合は、やっぱ使わないんでしょうねD3DX。
ありがとでやんす
0445デフォルトの名無しさん
2006/10/17(火) 00:00:53これD3Dプログラミングでは、ほぼ必須
自前で実装は無理だしね、素直にユーザにやらせろ
0446デフォルトの名無しさん
2006/10/17(火) 00:03:49やっぱ、d3dx便利ですよねー
なして配布がこんなに面倒になったのか。
きっと理由があるんでしょうけど。
0447デフォルトの名無しさん
2006/10/17(火) 00:07:17コアは変わってないから俺はlib時代のやつ使ってるけど。
0448デフォルトの名無しさん
2006/10/17(火) 00:31:05バグが見つかったとき、MSが静かに修正できるようにするためなのかな。
0449デフォルトの名無しさん
2006/10/17(火) 00:33:53とか考えてる奴は俺だけじゃないはず・・・。
0450デフォルトの名無しさん
2006/10/17(火) 00:40:10多分、馬鹿がdllにするとカッコイイ的なこと考えてぶち込んだんだと思う。
っていうかlibがアフォ過ぎて嫌いって奴がいてdllにしたらもっとアフォなことになったとかそんな感じだと思う。
俺もlibはコンパイルオプションが少しでも狂うとリンクできなくなるから嫌い。
でも、今のdllの状況はそれよりアフォだと思う。
でも、dllにした奴がWindowsUpdateで配ってくれるだろう・・・とか考えていたなら、当てが外れてカワイソス。
ついでに俺等もカワイソス
0451デフォルトの名無しさん
2006/10/17(火) 01:09:55そうだったら
エンドユーザ<お、DX9.0c2なんてやつがでてる。俺ゲーム好きだからアップデートしとこ。
となってくれそうなのに。
0452デフォルトの名無しさん
2006/10/17(火) 02:06:59「なんだよ、アップデートしたら動かなくなったぞ、こんちくしょう
おれのPCじゃつかえねーのに何でアップデートすんだよ!」
とかクレームが
0453デフォルトの名無しさん
2006/10/17(火) 02:07:39丁度>>340が回答していたので横から参考にさせてもらっていますがimm系のAPIとは
猫のWindows SDK編278〜283章( ttp://www.kumei.ne.jp/c_lang/sdk3/sdk_278.htm など)
に書かれていることで、これを組み込めばいいのでしょうか?
用途はいろいろあるのにモノにするまでテラナガス(´・ω・)
0454デフォルトの名無しさん
2006/10/17(火) 02:29:23漏れも組み込んだ。
そこそこ面倒くさいぞ。
0455デフォルトの名無しさん
2006/10/17(火) 02:32:30�d�d
0456デフォルトの名無しさん
2006/10/17(火) 04:39:45typedef struct VERTEXDATA {
floatx,y,z,rhw;
D3DCOLORcol;
} VERTEXDATA;
VERTEXDATA v[3] = {
{32.0f, 0.0f, 0.0f, 1.0f, D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 0xFF) },
{ 0.0f,32.0f, 0.0f, 1.0f, D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 0xFF) },
{32.0f,32.0f, 0.0f, 1.0f, D3DCOLOR_ARGB(0xFF, 0xFF, 0xFF, 0xFF) }
};
pDev->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);
pDev->DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1, v, sizeof(VERTEXDATA));
これだと三角形が表示されないのですが、理由分かるひと教えてください。
頂点は
0
12
だと描画できずに
0
21
の順番だと描画できます。
0457デフォルトの名無しさん
2006/10/17(火) 05:08:120458デフォルトの名無しさん
2006/10/17(火) 05:11:050459デフォルトの名無しさん
2006/10/17(火) 05:18:11うまくいった
ありがとうございます orz
0460デフォルトの名無しさん
2006/10/17(火) 07:55:45あーレスサンクスです!
朝6時までかかりましたが無事に解決しました。
原因はマルチテクスチャをカウントするときグローバルのiDを使ってたことでした。
処理の流れを決める変数も同じiDなんですが、
テクスチャを貼らないときはiD=0になってました。
それでswitchで処理を振り分けてるんですが、
iDが0だとどれにもひっかからずにゲーム終わっちゃってました。
とりあえず間に合いました!
0461デフォルトの名無しさん
2006/10/17(火) 08:00:240462デフォルトの名無しさん
2006/10/17(火) 08:10:38いますぐソース削除して、ちんこ切ってグラフィックカードのファンにつっこめ
0463デフォルトの名無しさん
2006/10/17(火) 08:11:56なぜカリングで削られるんすか?
0464デフォルトの名無しさん
2006/10/17(火) 08:24:14じゃあ逆に、何ならカリングで削られると思うんだ?
0465デフォルトの名無しさん
2006/10/17(火) 08:25:49そんなん、その場所をステップ実行したら5分で分かると思うんだが・・・
0466デフォルトの名無しさん
2006/10/17(火) 08:38:32問題を解決したときは詳しく書いておいたほうが、
同じミスで悩んでる人のヒントになるのは常識でしょう。
>>465
そりゃあ終わってしまう原因と解決策を俺が書いたからでしょう。
原因不明な状態ではマルチテクスチャを追加したことを疑うのが先。
0467デフォルトの名無しさん
2006/10/17(火) 08:45:36普通にDirectXをデバッグランタイムで動かしている場合、
DirectX内部のエラーはすべて報告される。
D3Dエラー発生時にブレークするようにも出来る。
エラーダイアログも出ずに即終了の時点でDirectX関係のエラーの可能性はまずない。
そもそもマルチテクスチャとフロー関係の変数を同じもので
使いまわすというその学生並みの設計を何とかしろ。
0468デフォルトの名無しさん
2006/10/17(火) 11:14:26エラーが報告されるといってもそれはMSが想定した範囲でしょう。
想定外のエラーは報告されないどころか感知すらできない。
これが原因で終了していたのならエラーなんて表示されないでしょう。
それから変数をグローバルにするのは、
メモリ節約と速度アップに効果的なことぐらいゲームプログラマなら知っておくべき。
もっとも限られたメモリでプログラム組んだことないんだろうけどな。
うちの会社はコンソールとWIN両方やってるけど、
WINプログラマだからって好き勝手メモリ使うバカなんて1人もいないけどね。
0469デフォルトの名無しさん
2006/10/17(火) 11:16:18>メモリ節約と速度アップに効果的なことぐらいゲームプログラマなら知っておくべき。
えーとそのなんだ。
釣りだよね?
0470デフォルトの名無しさん
2006/10/17(火) 11:49:27CPUキャッシュにヒットしやすいとかゲームプログラマなら知っておくべき。
ただし該当部分だけグルグルまわすベンチをとって、
プログラム全体ではほとんど影響がないのに、
ほら早くなっただろうとか声高にアホを晒す必要はない。
0471デフォルトの名無しさん
2006/10/17(火) 12:33:14意見は具体的にどうぞ。社会に出てからそんな口聞いてるとクビだよ。
>>470
autoよりregisterのほうが速いの知ってるかな。知らないなら議論の無駄だね。
0472デフォルトの名無しさん
2006/10/17(火) 12:39:33無茶に敵を作らない方が良いよ。
無視する事もできるでしょ?
0473デフォルトの名無しさん
2006/10/17(火) 12:59:05registerは無用に使うと最適化の妨げになるだけなので、
VisualC7.1辺りではキーワードが完全に無視されている。
確かに知らないのなら議論の無駄だね。
0474デフォルトの名無しさん
2006/10/17(火) 19:14:39DirectXでわからないところがあったんだけど、
一生懸命がんばったら、1人でできたよ。
何度もお兄ちゃんに聞こうと思ったよ、
でも、いつまでもお兄ちゃん(2ch)にべったりだと、
また子供(DQN)扱いされちゃうから、がんばったんだよ。
頭撫でててね。エヘッ。
でだ。
DirectGraphics関係のクラスを実装して、
ある程度、自由に描画関係などを組めるようになったんだが、
どこから組めば頭いいの?
サウンド関係のクラスとかをぜんぜん作ってなくて、
そっちの方のクラスを実装してからの方が賢いのか?
その他、ゲームの実際の動きとか造る前にエフェクト関係とかを
先に実装すべきでつか?
簡単なアクションゲームを造ろうと思うのだが、
どのように造っていけばいいかが分からないのでつよ。
「お好きなところからどうぞ」
という回答の場合、
貴方ならどのように組んでいくかをご教授願いたいでゴザルよニンニン。
0475デフォルトの名無しさん
2006/10/17(火) 21:48:06MSが想定していないDirectXの関数は存在しない。
デバッグランタイムにはすべての処理にチェッカーが埋められている。
そもそもエラー発生時にアプリが何も言わずに終了というのはVisualStudio上デバッガではまずありえない。
ルーチンがおかしいとかじゃなくアプリが強制終了なんてメモリ破壊とか致命的なものでなきゃおきないぞ?
新しい仕様を盛り込んだ瞬間に発生したバグに対して自分のコードではなく
実績あるライブラリを疑うことがもう過信もいいところ。
携帯機なんかでメモリをギリギリまで絞るのは当然のことだが、
WindowsのようにOSがすべて管理してくれて高度な最適化をもった
コンパイラを使ってる状況で、同じグローバル変数を使いまわすなんて愚の骨頂。
わずかな速度アップの為にくだらないバグ仕込むような保守性の低さになんとも思わないか?
時代についてこれないのが悪いとはいわないが、自分がついてこれていない事もみとめたほうがいい。
>>474
サウンドは既存のライブラリつかいまわーし。
Oggのストリーム対応とかいくらでもあるっしょ。
0476デフォルトの名無しさん
2006/10/18(水) 01:04:49音なんか最後でいいから、とにかくゲームを作るべき。
寄り道するとすぐ飽きる。
0477デフォルトの名無しさん
2006/10/18(水) 01:42:31俺は初心者のときは寄り道も含めた勉強は大事だと思うけどな。
ゲームを完成させることは必ずしも大事なことじゃ無い気がする。
ショボイゲーム作ったところでそれがなんだって気はするけどね。
初心者のころは自作ライブラリを作る→それを使ってなんか作る(別にゲームでなくてもいい)
→また、新しいライブラリを作る→それを使って・・・
を繰り返したほうが力が付くと思う。
ゲームだけでも駄目だし、ライブラリだけでも駄目だと思う。
よく、開発者で「3Dデモよりゲームを作ってきた人を評価する」なんて人がいるけど
そんなのは他の人がそうするから違う視点でみれる俺を褒めろ的ナちょっと違う俺様アピールでしかない。
〜よりとか〜した方がじゃなくて、なんでも必要だし、なんでも大事だよ。
0478デフォルトの名無しさん
2006/10/18(水) 02:30:09好きこそ物の上手なれと申しましてな。
0479474
2006/10/18(水) 09:53:17デザインパターンはという言葉すら知らないくらいに子供のときに1回ゲーム造ったんだけど、
「めちゃくちゃ」なコーディングになっちゃったの。
そのときは、気合とコミケの締め切りがなかったら絶対に完成
できなかったと思うの。
(も、もちろんお兄ちゃんがそのともたくさん教えてくれたのはわかってるよ)
そろそろ、大人の階段の登り方を教えて欲しいな・・・って思ってるんだよ。
エヘッ。
でだ、
>>475
漏れも、サウンド関係は既存のライブリを使まーす。
>>476 >>477 >>478
寄道すると飽きるのは分かるが、
がんがんコーディングして、ニッチもサッチもいかなくなると
挫折感のせいで、前に進めなくなる経験をしている俺がいる。
とりあえず、好きなようにコーディングして、ゴタクの前に血反吐ゲロゲロ吐くのが
一番近道ってことだと了解したよ。
それで、挫折するようならゲーム造るな、ってことなんだと思う。
0480デフォルトの名無しさん
2006/10/18(水) 10:38:16サウンド関係で動かなかったりすることってある?
ビデオ関係だと特定の機能がビデオカードになくて、エミュレーションしたり
動かなかったりするけど、サウンド関係でもそんなことあるのかな?
0481デフォルトの名無しさん
2006/10/18(水) 11:11:59いい加減そのアホな書き込み止めたら?
初心者プログラマーにありがちな浮かれ加減が出てて気持ち悪い。
「やったー!動いたー!俺って天才!?」的な感じだろ?どうせ。
0482デフォルトの名無しさん
2006/10/18(水) 12:51:12ゲーム関係は全くと言っていいほど動かないorz
0483デフォルトの名無しさん
2006/10/18(水) 12:59:260484デフォルトの名無しさん
2006/10/18(水) 13:01:01http://www.alicesoft.com/support/soundn.html#s008
↑みたいなことも可能性としてあるみたいだ。
はずしてたらスマソ。
>>481
DirectXできたら1流プログラマの仲間になれると
思っている房は放置しておけよ。
下手にレスされるともっとうざい。
>>482
「初期化ができない」では、ちょっと回答しにくい。
まずは環境(コンパイラ、DirectXのバージョン、グラフィックボード)くらいは
教えてくれ。
0485デフォルトの名無しさん
2006/10/18(水) 13:37:25ありがとう。
ドライバの不具合など以外は、機能面では大丈夫ってことかな?
0486デフォルトの名無しさん
2006/10/18(水) 13:39:09すまん、自己解決した
ありがとう
0487デフォルトの名無しさん
2006/10/18(水) 18:46:53他のプログラマとか外注さんとか参加してたんで話題に出たんですが、
みんなこのスレ見てたようですねー。
やっぱ現役の声のほうが確かですわな。
結論は「あいつらホビープログラマだろw」で全員一致しました。
いろいろな意見が出ましたが「メガデモとか知らねぇんじゃねぇ?」とかもありましたよ。
まあこの話はこれで終わりということで。
0488デフォルトの名無しさん
2006/10/18(水) 19:02:37仕事で何とかやっていけるのが土方プログラマの世界。
0489デフォルトの名無しさん
2006/10/18(水) 21:26:31そしてdirectX9.0をダウンロードしていないことが原因と判明したのでインストールしようとしたら
なぜかダウンロードが1秒で終わってしまうのです。そしてネットゲームを繋いでみると・・・。
すぐ落ちてしまい、そのあとフリーズ。なぜかわかりますでしょうか?わかる方おりましたらレス下さい。
0490デフォルトの名無しさん
2006/10/18(水) 21:31:04Windows95ではDirectX9は動かないよ。
0491デフォルトの名無しさん
2006/10/18(水) 21:53:55WinMain(もしくはWinMainがあるファイル)内でデバイスのアドレス(LPDirect3DDevice9)を取得するにはどうすればいいのでしょうか。
0492デフォルトの名無しさん
2006/10/18(水) 21:54:12ちなみにサウンドに関してはサウンドバッファをハードウェアに作るのはかなり地雷。
多少の負荷は目をつぶってでもシステムメモリに作って全部CPUでやらせたほうがいい。
0493デフォルトの名無しさん
2006/10/18(水) 21:57:390494デフォルトの名無しさん
2006/10/18(水) 22:09:09Me(OS)のバージョン最大限に上げる。
関係ないと思うけど、ビデオカードのドライバのバージョンを
最新のものにする。
ハードディスクの空き容量が足りないっていうオチだったら
ぬっころす。
マイクロソフトのソフトって、ネットからソフトの本体を落としたりするから
セキリュティソフトとかの問題も疑ってみるべき。
外してたらすまそ。
0495デフォルトの名無しさん
2006/10/18(水) 22:15:460496デフォルトの名無しさん
2006/10/18(水) 22:26:37現在Direct3D9のチュートリアルを見ているところです。
サンプルではIDirect3D*をグローバルに持っているのですが、これを
スマートポインタに入れたいと思いました。
WEBで探してみると_com_ptr_tを使えば良さそうだと思いました。
ところが_com_ptr_tはInterfaceをメンバに持つクラスのオブジェクト
でなければならないようで駄目でした。
何か良い方法はございませんでしょうか?
0497デフォルトの名無しさん
2006/10/18(水) 23:14:34本当にその必要があるのかどうか考えてからのほうが良いぞ・・
0498496
2006/10/18(水) 23:59:31他に良い方法はありますでしょうか?
>>497
IDirect3DDevice9の開放のタイミングがよくわかってません。
やはりCreateDeviceの引数にハンドルを渡したウィンドウが消
される前でないとまずいのでしょうか?
グローバルなスマートポインタで持っておいてWinMain終了後に
開放だと駄目なのかなと。
0499デフォルトの名無しさん
2006/10/19(木) 00:40:32ウィンドウ消されたあとでPresent()呼ぶと当然エラーで落ちる。
0500デフォルトの名無しさん
2006/10/19(木) 01:02:510501デフォルトの名無しさん
2006/10/19(木) 01:10:55いや悪くは無いんだが、パフォーマンスは落ちる。
らしい。
0502491
2006/10/19(木) 08:17:15逆に、同じくCommonフォルダ内のファイルの内容を変えず、
自作ファイル内で作成したデバイスのアドレスを渡すのでもいいのですが、DXUI以外で設定できないものなのでしょうか。
0503デフォルトの名無しさん
2006/10/19(木) 09:14:13シングルトンにすればいいんでないの?
0504デフォルトの名無しさん
2006/10/19(木) 15:32:53ビットマップがおかしいのかと思い、DirectXのサンプルにあるトラの画像を変えてみたのですが、ちゃんと画像が貼られていました。
なのでxファイルがおかしいのかな?、と思うのですがどうすればよいのかわかりません。
ちなみに、メタセコイア(フリーソフト、ver2.3)でやっています。
0505デフォルトの名無しさん
2006/10/19(木) 15:40:27DirectXのサンプルの自分のプログラムを見比べればいいだけ
0506デフォルトの名無しさん
2006/10/19(木) 17:46:49UVの設定はどうなっている?
0507デフォルトの名無しさん
2006/10/19(木) 18:29:48UVマッピングはしています。
私はビリヤードの球を作っていまして、材質設定のところでマッピング方式をUV方式にして、
図形作成のときの詳細設定でもUVマッピングとしています。
>>505
サンプルに直接xファイルを入れています。
>506
ビリヤードの球を作っていまして、材質設定のところでマッピング方式をUV方式にして、
図形作成のときの詳細設定でもUVマッピングとしています。
あと、xファイルで保存するときは座標軸をDirect3Dにして、
xファイルオプションは法線とUVマッピングにチェックを入れてます。
0508デフォルトの名無しさん
2006/10/19(木) 18:42:030509デフォルトの名無しさん
2006/10/19(木) 18:42:310510デフォルトの名無しさん
2006/10/19(木) 18:52:43Xファイルの中を覗いてみればいい
テクスチャやUVがどうなってるのか見てみるがよろし大根おろし
0511デフォルトの名無しさん
2006/10/19(木) 18:56:550512デフォルトの名無しさん
2006/10/19(木) 18:57:35まさかテレパシーを送ると自動で作ってくれると思っているのか?
0513デフォルトの名無しさん
2006/10/19(木) 19:15:04おいおい、ビリヤードの球にUV貼るなんて楽勝だろ(w
0514sage
2006/10/19(木) 22:45:23xファイルのUVの調整ができるソフトを探してみます。
0515デフォルトの名無しさん
2006/10/19(木) 22:49:310516デフォルトの名無しさん
2006/10/19(木) 23:01:000517デフォルトの名無しさん
2006/10/20(金) 01:19:19そんなに厳密なもん必要なの?
頭悪いんちゃう?w
0518デフォルトの名無しさん
2006/10/20(金) 02:01:19いや、しらんけど。
0519デフォルトの名無しさん
2006/10/21(土) 07:32:36「ブッ」って音が最初に入るんだが普通?
リソースからmmioとか使ってWAVEデータ読み込んでるんだが。
0520デフォルトの名無しさん
2006/10/21(土) 07:33:19バッファをクリアすればいい
よくある方法→無音再生
0521デフォルトの名無しさん
2006/10/21(土) 07:33:360522デフォルトの名無しさん
2006/10/21(土) 08:42:580523デフォルトの名無しさん
2006/10/21(土) 12:35:46トンクス
0524519
2006/10/21(土) 12:51:421. プライマリバッファを作る
2. セカンドバッファを作る
3. セカンドバッファにデータを書き込む
4. セカンドバッファをDuplicateSoundBufferでいくつかに複製
5. 複製したものを再生
ってやってるんだがどこで何のバッファを
クリアしてやればおk?
0525519
2006/10/22(日) 09:01:585秒ごとに「ブ」が来るわ。
これは>>521のせいってことでFA?
0526デフォルトの名無しさん
2006/10/22(日) 12:57:45ちょっとお芋が美味しかっただけなんだからね・・・
0527デフォルトの名無しさん
2006/10/22(日) 13:08:490528デフォルトの名無しさん
2006/10/22(日) 13:21:59データを疑わないのか?
0529デフォルトの名無しさん
2006/10/22(日) 13:41:07環境依存っぽかったので、サウンドカードが古いのが原因だと勝手に思ってたけどな
0530デフォルトの名無しさん
2006/10/22(日) 14:07:180531デフォルトの名無しさん
2006/10/22(日) 14:17:23まあ、まずは自分の今の環境で他のサンプルがどうなってるか?
を確認して、
それがなってなかったら、そのソースと動作を確認。
それもなるようなら環境依存ってことじゃね?
0532デフォルトの名無しさん
2006/10/22(日) 14:20:24それは本当に無音なのか?
0533デフォルトの名無しさん
2006/10/22(日) 14:26:10まあ、まずは>>531の確認が先。
0534デフォルトの名無しさん
2006/10/22(日) 16:25:27問題ないと思うんだが、ときどき最初のサウンドの再生開始時に鳴る。
再現性がなくて全く問題ないときもあるのでお手上げ状態だわ。
ハード依存ということで割り切っている。
0535デフォルトの名無しさん
2006/10/22(日) 16:56:41残っていてそれが再生されるということがある。
0536デフォルトの名無しさん
2006/10/22(日) 18:18:18最初の音でノイズが出ることがあるのは他のソフト(WIN含む)が使ったバッファが残ってるからだよ
0537519
2006/10/22(日) 18:35:22たくさんレスありがと!
>>528
WAVEデータはSoundEngineで作った無音データ。
リソースから読み込んでる。
バッファに書き込んでるデータを見てみると先頭が
"RIFF"ってなっとる。
これが原因?
>>530
プライマリ?セカンダリ?
>>531
DirectSoundのサンプルではノイズは出ないわ。
0538デフォルトの名無しさん
2006/10/22(日) 19:04:010539534
2006/10/22(日) 19:17:17>>536
あ、そういえばプライマリバッファのクリアはしていなかったです。
協調モード DSSCL_NORMAL なので SetFormat もしてなかったんですが・・・
(触らなくていいと思ってた。)
かまわずロックしてゼロクリアしてみました。おお、直ったような・・・?
再現性がないのでもう少し使ってみないと確実な結果はでませんが
改善されたような気がします! ご助言ありがとう!!
0540デフォルトの名無しさん
2006/10/22(日) 19:58:31フリーの人体モデルが結構みつかるのですが
DirectXではないのでしょうか?
OpenGLとdirectXの混合でコードを書くことはできますか?
0541デフォルトの名無しさん
2006/10/22(日) 20:17:10OpenGLって共用のモデルフォーマットなんて無かった気がするが・・・。
0542デフォルトの名無しさん
2006/10/22(日) 21:59:03http://ja.wikipedia.org/wiki/Poser
0543デフォルトの名無しさん
2006/10/22(日) 23:02:16Simsみたいなの、500ポリゴンのカクカク美少女が競演とかするのか
0544デフォルトの名無しさん
2006/10/23(月) 00:03:360545デフォルトの名無しさん
2006/10/23(月) 00:04:19> バッファに書き込んでるデータを見てみると先頭が
> "RIFF"ってなっとる。
メチャメチャそれが原因なんだが、気付いてもらえるだろうか・・・(;´д`)
0546デフォルトの名無しさん
2006/10/23(月) 00:06:31「OpenGLのモデル」っていうのは存在しないよ。
根本的なところを理解してないから勉強しなおし!
0547デフォルトの名無しさん
2006/10/23(月) 01:02:42そんなものもあったねえ
すげー久しぶりに思い出したよ
今でも生きてるだろうか
0548デフォルトの名無しさん
2006/10/23(月) 02:06:25見逃してたw
なんでヘッダ部分までバッファに読み込んでるんだw
>>544
COLLADA?とかいうXML形式のファイルフォーマットだっけ?
0549デフォルトの名無しさん
2006/10/23(月) 02:57:36ゲームなんかじゃ導入事例増えまくりですよ。
DirectXとの相性は全然よくないけどなー。
0550デフォルトの名無しさん
2006/10/23(月) 16:27:58あと、増えまくったという具体的な導入事例も。
XML関連はゲーム開発者(とくに日本の)からは敬遠されがちだし、
少なくとも俺の周りには注目してる人いないんだが・・・
0551デフォルトの名無しさん
2006/10/23(月) 16:35:440552デフォルトの名無しさん
2006/10/23(月) 17:09:243Dの話なんですが
ある点Aから2点BCを通る直線に垂線を下して
垂線と直線が交わる点を求めたいんですが
どうやればいいでしょうか?
0553デフォルトの名無しさん
2006/10/23(月) 17:17:37いくらなんでも最終フォーマットとしてはありえないんだし。
0554デフォルトの名無しさん
2006/10/23(月) 18:15:20X={A・BC}/|BY-AZ|
Y={A・BC}/|BZ-AY|
Z=|AX+BX|/{X・Y}
0555デフォルトの名無しさん
2006/10/23(月) 20:09:00ユーザーによる複数行の書き込み処理を実装したいです。
CEdit等のWindowsコンポーネント(っていうんですか?)を組み込む事は可能でしょうか?
なんとかして処理を軽減したいのですが、、、
環境を下記します。
2000 & XP
VS2003
DX9.0 2005 April
0556デフォルトの名無しさん
2006/10/23(月) 20:41:270557555
2006/10/23(月) 21:10:18失礼しました。
0558デフォルトの名無しさん
2006/10/23(月) 21:19:26これは全部ベクトルですか?
0559デフォルトの名無しさん
2006/10/23(月) 21:25:34全てベクトルだとすると、XベクトルにAとBCの内積をBY-AZのベクトルの大きさで割った数値を入れるのは変ですし
X,Y,Zがそれぞれの成分だとすると、成分同士の内積を求めることはできませんよね?
0560デフォルトの名無しさん
2006/10/23(月) 21:52:330561デフォルトの名無しさん
2006/10/23(月) 23:25:19現在ライティングを↑の式で求めているんですが、これに環境マップ色を加えたいんですが
一般的にはどうするのが普通なんでしょうか?
0562デフォルトの名無しさん
2006/10/23(月) 23:32:08環境マップで何を貼るかによって違ってこない?
ハイライトとかライト系だったらスペキュラの代わりだろうし
背景の映り込みだったら↑とは違ってくるし。
そもそも、色テクスチャは考慮されてるの?ディフューズと差し替え?
アンビエント色とライト色が入ってないのも気になってみたり・・・・・
0563デフォルトの名無しさん
2006/10/23(月) 23:43:07見やすくする為にいろいろ省いています。
実際のコードは以下の通り、D3Dのライティングモデルとほぼ同じです。
vColor.rgb= 0
vColor.rgb+= ( vMaterialDiffuse * light.vDiffuse * vDecal * sDiffuseFactor + vMaterialSpecular * light.vSpecular * sSpecularFactor) * sAttenFactor * sSpotFactor;
vColor.rgb+= light.vAmbient * vDecal;
これに環境色を掛けたり加えたりしたのですが、どれもいまいち不自然になってしまいます。
物理的に正しい観点からという方向も、そもそもこのライティングモデルは物理的根拠が無いですから
詰まってしまいます。
0564デフォルトの名無しさん
2006/10/23(月) 23:50:30物体の色には、物そのものの色に加え、物が反射して映り込む背景の色も含まれるはず
つまり、vMaterialDiffuse *= vEnvironment、vMaterialSpecular *= vEnvironmentとするのが
最もうまくいく?
0565デフォルトの名無しさん
2006/10/24(火) 00:02:50四角ポリゴンに法線をつけようと思ってるんです。
ちゃんと平面なときはいいんですが、
平面じゃない四角ポリゴン(実際はD3DPT_TRIANGLEFANで二つに割ってる)の場合がうまくいきません。
きっちり法線取りたい場合は四角ポリゴンを三角にバラすしかないですかね?
0566デフォルトの名無しさん
2006/10/24(火) 00:13:23四角形ポリゴンを三角形2つにばらすではなくて
三角形2つで四角形ポリゴンとみなすに、考え方を切り替えよう。
四角形ポリゴンは実際には作れないんだから、三角形2つの法線で近似するしかない。
0567デフォルトの名無しさん
2006/10/24(火) 00:52:21深く考えると、Diffuse色とかSpecular色って何のことを指してるの?って思う。
(反射色?拡散反射色?反射と拡散反射の計算って?光源色は白として計算?)
厳密には、反射するもの全てが所謂「環境マップ」そのものとも言える。
反射色/反射率/拡散反射色/拡散反射率/色テクスチャ/環境マップ/光源色・・・
自然界をそのまま計算するには要素が多すぎるよね。
で、簡単に考えるとしたら、環境マップは反射色の代わりに使ったらいいんじゃん?
0568デフォルトの名無しさん
2006/10/24(火) 01:14:16デフューズ色 * ( 1 - 鏡面反射強度 ) + 鏡面反射色 * 鏡面反射強度 + スペキュラ色
つまりこうですかね?
ちょっとこれで試してみます・・うまくいきそうな予感
0569デフォルトの名無しさん
2006/10/24(火) 01:40:23> デフューズ色 * ( 1 - 鏡面反射強度 )
これで色が暗くなるんだよね・・・
Diffuseが、(反射してしかも)拡散した結果の色ってのがクセ物。
誰か「一般的」な方法を教えてあげてください・・・
0570デフォルトの名無しさん
2006/10/24(火) 02:03:32>鏡面反射色 * 鏡面反射強度
この部分はライトには依存しないので、ライトが何個あろうが
1回加えられるのみにしなければならない。
とすると以下のような感じ?
+ デフューズ色0 * ( 1 - 鏡面反射強度 ) + スペキュラ色0
+ デフューズ色1 * ( 1 - 鏡面反射強度 ) + スペキュラ色1
+ デフューズ色2 * ( 1 - 鏡面反射強度 ) + スペキュラ色2
+ 鏡面反射色 * 鏡面反射強度
これに関する情報が手に入りにくいのは、実ははっきり決まってないからなのかなぁ
0571デフォルトの名無しさん
2006/10/24(火) 03:59:06そもそもモデルとして正確でもなんでもないんだから、結果オーライで好きに実装すればいいと思うよ
0572デフォルトの名無しさん
2006/10/25(水) 10:28:00http://monsho.hp.infoseek.co.jp/dx/dx76.html
ここのページを参考にVisual C++ 2005 Express EditionとDirectX SDK(October 2006)と
Platform SDK for Windows Server 2003 SP1をインストールして、インクルードファイル等の
設定をしました。このページのサンプルコードはビルド出来ました。
しかし、DirectXのサンプルがビルド出来ません。次のようなエラーが出てしまいます。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__DefWindowProcA@16 が関数 "long __stdcall MsgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?MsgProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__PostQuitMessage@4 が関数 "long __stdcall MsgProc(struct HWND__ *,unsigned int,unsigned int,long)" (?MsgProc@@YGJPAUHWND__@@IIJ@Z) で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__UnregisterClassA@8 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__DispatchMessageA@4 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__TranslateMessage@4 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__PeekMessageA@20 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__UpdateWindow@4 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__ShowWindow@8 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__CreateWindowExA@48 が関数 _WinMain@16 で参照されました。
Vertices.obj : error LNK2019: 未解決の外部シンボル __imp__RegisterClassExA@4 が関数 _WinMain@16 で参照されました。
プロジェクトのプロパティの追加の依存ファイルは
d3dxof.lib dxguid.lib d3dx9d.lib d3d9.lib winmm.lib
となっています。
どこが原因となっているのでしょうか?
0573デフォルトの名無しさん
2006/10/25(水) 11:24:34すみません。誰か教えてください。
上の画像のようにティーポットが変な風にかけたようになるのですが、これはいったい何がわるいのでしょうか?
よろしくおねがいします。
0574デフォルトの名無しさん
2006/10/25(水) 11:25:45ティーポットが崩れたようになっているのが問題としている部分です。
0575572
2006/10/25(水) 12:53:59プロジェクトのプロパティの追加の依存ファイルにuser32.libを加えたらうまく行きました。
0576デフォルトの名無しさん
2006/10/25(水) 14:09:224次元以下の行列計算をGPUにやらせたら高速になるのか
バスとの転送速度でかえって遅くなるのか
そのへん、どうなのでしょうか
0577デフォルトの名無しさん
2006/10/25(水) 15:18:230578あや
2006/10/25(水) 17:20:08よろしくおねがいします。
現在、オリジナルの3DCGビュワーを開発しようとおもっているのですが、
用途として、
オリジナルのフォーマットで既存の3Dソフトウェアから
書き出すことが可能で、たとえば、.objxみたいな拡張子で
書き出せ、そのファイルをビュワーで読み込み、
その形状をオブジェクト中心にぐるぐるまわしたいです。
また、カメラ画角の変更等に対応できれば、さらにうれしいのですが。
さらに、いうと、全画面ビューで、ある程度のパフォーマンス(スピード)も
ほしいです。
まず、お聞きしたいのが、一般的に上記のような(漠然としすぎてますが。)
ビュワー開発は敷居は高いのでしょうか?
すこし、他言語等で、プログラムをかじっている程度で、
テストプログラムとして作れるレベルのものなのか?
3D系のプログラムのイメージが、今まで経験値が
なかったので、どのような体系(手段等)があり、どのようなプロセスで
構築していき、つくっていくのか、見当違い(的外れ)な質問なのかも
しれませんが、諸先輩方にアドバイス頂きたいと
思っております。何卒、よろしくお願いいたします
0579デフォルトの名無しさん
2006/10/25(水) 17:33:50ぐるぐる回すのも難易度高くないと思います。
むしろオリジナルのフォーマットを策定してその入出力を書く方が大変?
あと、
> オリジナルのフォーマットで既存の3Dソフトウェアから書き出す
これをどう実現するつもりか不明なんですが、既存ソフトウェアの
プラグインを書くならそれが一番大変かも知れません。
最初は、とりあえずデータ形式や入出力は忘れて、
プログラムのソースコードに直接データを記述してしまい、
それを表示・ぐるぐるするのを目標にしてはどうでしょう。
適当な入門書を探すとサンプルに載ってそうな気もします。
0580デフォルトの名無しさん
2006/10/25(水) 17:47:28ご回答ありがとうございます。
>既存ソフトウェアの
>プラグインを書くならそれが一番大変かも知れません。
具体的に、何が大変なのでしょうか?
たとえば、3Dフォーマットには、obj、max、mb等
いろいろあるとおもいますが、それぞれ、それに対応した
ソフトウェアで読み込みができるとおもいますが、
なぜ、読み込みができるのでしょうか?何が、それぞれで
ちがうのでしょうか? 各ソフトウェアの設定や、埋め込む情報が
それぞれあるとはおもいますが、たとえば、純粋に形だけ読み込めれば
いいとおもっています。ただし、他のソフトウェアで読み込むことは
不可能にしたいです。(そのビュワーのみで開くことができる。)
たとえば、その適当な入門書で、オススメ等あれば
お教えいただけないでしょうか?
また、CG言語みたいなものがありますが、
ある程度ライブラリも豊富で、敷居は低いと聞いています。
評判はいかがなものでしょうか?
たびたびすいませんが、よろしくおねがいします。
0581デフォルトの名無しさん
2006/10/25(水) 19:41:27ちなみ表示させたいポリゴン数は、約10万ポリゴン近くあります。
これをリアルタイムに高速に動かすためには、どういった手段が
あるでしょうか?
0582デフォルトの名無しさん
2006/10/25(水) 19:58:54少なくとも俺のShader2.0カードでは
演算性能以前の問題で、試そうとすら思えないなぁ
0583デフォルトの名無しさん
2006/10/25(水) 21:02:54と思わないでもない。
情報が足りなさ過ぎるのも困り物だが。
0584デフォルトの名無しさん
2006/10/25(水) 22:19:46重複する型に、適合しないレイアウト情報があります (IDirect3D9) : (0x02000047)。
<プロジェクト名> error LNK2022: メタデータの操作に失敗しました(8013118D) :
重複する型に、適合しないレイアウト情報があります (IDirect3DDevice9) : (0x0200002c)。
このビルドエラーはどういう状態を表していて、何が原因なのでしょうか。
DirectX3D(2006/Aug)のサンプルのCommonフォルダ内のファイルを自分のプロジェクトに加えて一緒にビルドしただけです。
サンプルの内容は変えていませんし、自分のプロジェクト単体ではエラーは出ません。
また、元のプロジェクト(自分のプロジェクト単体)でCommonフォルダ内のファイルの関数は使っていません。
関数の重複はちゃんと表記されているのですが、上記のエラーは全く見当が付きません。
原因に心当たりがあると言う方がいらっしゃればアドバイスをいただけるとありがたいです。
ちなみにリビルドやデバッグフォルダを削除しても上記のエラーは改善されませんでした。
0585デフォルトの名無しさん
2006/10/25(水) 23:32:100586デフォルトの名無しさん
2006/10/26(木) 00:02:24それが分からない段階ではプログラムを組むのは難しいと思います。
あなたはどうすれば実現できると思いますか?
それを考えるのがプログラマーの仕事なんです。
例えば、冷蔵庫を作ろうと思っても何をして良いか分からないでしょう。
出来合いの部品を組み込むにしても、使い方を覚えなければなりません。
独自仕様にしようと思ったら、自分で部品を作らなければいけません。
まずはビュアーでオブジェクトを表示する所から初めてはどうでしょう?
これが出来なければ話になりません。
ライブラリ等は>>2にリンクがあります。
自分が出来る簡単な所から初めてはいかがでしょうか?
…というのが、プログラムを挫折した初心者の俺からの意見です…orz
0587584
2006/10/26(木) 01:02:02レスありがとうございます。
サンプルをそのまま持ってきたのを付け足しただけなので、リンクエラーしている場所が全く把握できないままでした。
片っ端から設定弄ってますとマネージ云々をいいえにしたら解消されました。
とりあえず現状で問題ないようですが、この設定の変更で今後問題が起きて悩みそう(´`)
0588デフォルトの名無しさん
2006/10/26(木) 07:18:53どうしてああなるんだ?
0589デフォルトの名無しさん
2006/10/26(木) 08:07:38Z比較を切るか。ティーポット浮かすか
0590デフォルトの名無しさん
2006/10/26(木) 12:08:120591デフォルトの名無しさん
2006/10/26(木) 13:00:22Zバッファの精度が悪いときにああなるね。
Zバッファが16bitなのか、カメラのNearとFarが凄く広い(間が開いてる)か。
たぶんカメラの方だと思う。Farを1000とか5000くらいにしてみたら?
0592デフォルトの名無しさん
2006/10/26(木) 13:21:42何かの。
>>573
バックバッファのフォーマットとか、Zのフォーマットとか晒してみたら?
とりあえず、X8R8G8B8 D24S8 にしてみ。
D3DFrm使ってるだろうから ModifyDeviceSettings 内で、
pDeviceSettings->AdapterFormat= D3DFMT_X8R8G8B8;
pDeviceSettings->pp.BackBufferFormat= D3DFMT_X8R8G8B8;
pDeviceSettings->pp.AutoDepthStencilFormat= D3DFMT_D24S8;
にするのだ。
0593573
2006/10/26(木) 15:28:23ご指摘のとおりZバッファの指定が16ビットでした。
D3DFMT_D24S8で無事表示ができました!
皆様ありがとうございました
0594デフォルトの名無しさん
2006/10/26(木) 15:52:38良く分からないので誰かお願いします
0595デフォルトの名無しさん
2006/10/26(木) 15:54:08ごめん
0596デフォルトの名無しさん
2006/10/26(木) 15:58:48http://www.microsoft.com/japan/windows/directx/
0597デフォルトの名無しさん
2006/10/26(木) 17:17:33最初は1つのファイルでプログラムを行っていました。
ある程度無事動くのを確認したので、
分割コンパイルをしようと思い、ファイルをわけました。
そこで、各ファイルで共通で使うクラスをグローバルで定義しようと
したところ、既に定義されている・・・というようなエラーが出たため、
staticを使い、エラーを回避しました。
その後、プログラムをコンパイルが無事通り、実行しようと思ったら、
実行した直後にメモリアクセス系のエラーが出てしまい、
うまく実行できなくなりました。
なにかしら上手い方法や、調べる方法がありましたら、教えてください。
DirectXとは話がずれているかもしれませんが、
板違いだったらすみません。
0598デフォルトの名無しさん
2006/10/26(木) 17:30:13インクルードガードでググれ
0600597
2006/10/26(木) 17:43:34インクルードガードという言葉を初めて知りました。
が、既に下記のようにやっています。
#pragma once
でやっていますが、これでは不十分でしょうか?
0601デフォルトの名無しさん
2006/10/26(木) 17:58:130602597
2006/10/26(木) 18:03:00ヘッダに実態はおいてないと思います。
ちなみに、下記の場合は実態にあたりますか?
Hoge_Class Hoge;
上記のようなことは行っております。
>>598
#pragma once を止めて、全部
#ifndefにしたら、staticをはずしてもコンパイルが通るように
なりました。
しかし、現在もメモリアクセス系のエラーが続きます・・・。
プログラムのミスの可能性も高いので、
引き続き自分のコーディングを疑ってみます。
0603デフォルトの名無しさん
2006/10/26(木) 18:14:19>Hoge_Class Hoge;
実体にあたるよ
ヘッダは宣言だけにしる
0604597
2006/10/26(木) 18:23:01実態の宣言をしており、申し訳ありません。
複数の .cpp ファイルから 共通の実態(クラス)にアクセスしたい
場合はどのように行うのか教えていただけませんでしょうか?
現在は下記のようにやろうとしています。
A.cpp #include A.h
B.cpp #include B.h
C.cpp #include C.h
A.h #include X.h
B.h #include X.h
C.h #include X.h
X.h static Hoge_Class Hoge
0605デフォルトの名無しさん
2006/10/26(木) 18:24:330606597
2006/10/26(木) 18:28:03下記のようにするということでしょうか?
A.cpp #include A.h Hoge.・・・;
B.cpp #include B.h Hoge.・・・;
C.cpp #include C.h Hoge.・・・;
A.h #include X.h
B.h #include X.h
C.h #include X.h
X.cpp #include X.h Hoge_Class Hoge;
X.h extern Hoge_Class Hoge;
0607597
2006/10/26(木) 18:35:27正常に動作したことを確認しました。
厚く御礼申し上げます。
スレ違いにもかかわらず、質問してしまい
申し訳ありませんでした。
また、回答していただいた諸兄には深く感謝いたします。
0608デフォルトの名無しさん
2006/10/27(金) 06:30:37vc使い方からの話じゃねえか
0609デフォルトの名無しさん
2006/10/27(金) 06:51:14【初心者歓迎】C/C++室 Ver.32【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1160893851/
★初心者にVisual C++を教えるスレ★ Part24
http://pc8.2ch.net/test/read.cgi/tech/1158296664/
0610デフォルトの名無しさん
2006/10/27(金) 22:37:27DirectX10でプログラム組んでいる人っています?
0611デフォルトの名無しさん
2006/10/27(金) 22:54:410612デフォルトの名無しさん
2006/10/28(土) 01:58:209→10も
8→9程度の変更でいけるんでそ?
0613デフォルトの名無しさん
2006/10/28(土) 02:41:05げふぉ8800ですら来月あたりに詳細発表で、値段は10万超えるとか言われてるし。
0614デフォルトの名無しさん
2006/10/28(土) 07:21:559の機能だって全部サポートしてるもんってはじめは無かったじゃん。
nVidiaのシェーダー2.0+なんてどこが「+」なんだよ「−」ちゃうんかとwってもんだったしw
0615デフォルトの名無しさん
2006/10/28(土) 07:24:35GeってGeometryのGeだろ?
>>613←お前だっせぇw
0616デフォルトの名無しさん
2006/10/28(土) 08:09:01………
0617デフォルトの名無しさん
2006/10/28(土) 08:31:20それでいちいち開発者がサポートする機能をチェックしないといけない、
っつー状況を改善するためのVISTAでありDX10であるわけじゃん。
DX9対応ビデオカードと違ってDX10からはフル対応していない限り、
「DX10対応」とうたってはいけないことになってるんだよ。
>>615
「げふぉ」にマジレスが入るとは夢にも思わなかった。
0618デフォルトの名無しさん
2006/10/28(土) 10:26:520619デフォルトの名無しさん
2006/10/28(土) 11:37:020620デフォルトの名無しさん
2006/10/28(土) 11:58:360621デフォルトの名無しさん
2006/10/28(土) 12:08:04やっぱやめた。
0622デフォルトの名無しさん
2006/10/29(日) 00:30:220623デフォルトの名無しさん
2006/10/29(日) 00:56:07まだ速度ごとのシェーダー用意するほうがましだ。
0624デフォルトの名無しさん
2006/10/29(日) 10:49:36速度ごとのシェーダーと、機能の有無のシェーダー両方作る羽目になるんだろ
0625デフォルトの名無しさん
2006/10/29(日) 13:53:39DX10は機能チェックをしなくていいってのもウリの1つなんだから。
0626デフォルトの名無しさん
2006/10/29(日) 14:10:180627デフォルトの名無しさん
2006/10/29(日) 16:24:35俺はステンシルのサポートの有無、
HDRやポストエフェクト用のレンダリングターゲットのサーフェイスフォーマット、
サーフェイス間転送用ののフォーマット変換のハードウェアサポート、
違方性フィルタリングの有無と精度。
あとはPS/VSのバージョンチェックとPureDeviceの有無かな。
0628デフォルトの名無しさん
2006/10/29(日) 16:49:11(マウス入力について質問があります)
DirectInputでマウスの移動量を取得できるプログラムはできるように
なりました。
しかし、以下の2点のようなことをしたいと思いましたが、
調べてもよくわかりませんでした。
1.スクリーン座標の中だけ、マウスカーソルを消したい
WinAPIのShowCursor()関数を使えばいいのでしょうか?
DirectInputでなにかしら有用な関数などあれば、
ご教授ください。
2.マウス座標をスクリーン座標で取得したい
WinAPIのGetCursorPos()関数を使えばいいのでしょうか?
DirectInputでなにかしら有用な関数があれば、
ご教授ください。
DirectX自体が初心者のため、WinAPIとの併用について問題がないか
不安になり、上記のような質問をしました。
もし、問題ないようであれば、以後の質問はWinAPIスレに行ってきます。
0629デフォルトの名無しさん
2006/10/29(日) 16:58:39ステンシルはZバッファがサポートされてればほぼまちがいなくサポートされてると思うよ。
0630628
2006/10/29(日) 19:00:26http://www2.ttcn.ne.jp/~tkky/Tips/Win32API/getcursorpos1.htm
上記を参考に行ったところ、
スクリーン座標とクライアント領域での
切り替えなどについて記述がありました。
結果的に座標取得は、DirectInputではなく、
WinAPIで行うようにしました。
(ボタンの押下については、DirectInputを使います)
お騒がせしました。
0631デフォルトの名無しさん
2006/10/29(日) 19:28:27よくわからないっす。
ライブラリがあれば、黙ってそれを使います。
以下の流れで考えてるんだけど、正しい?
<パッキング編>
1.ヘッダーを作成
2.ファイル結合
3.結合したファイルを保存
<パッキングファイル読み込み編>
0.ゲーム起動
1.パッキングをファイルをとりあえず、全部読み込む
2.分解して、それぞれこっそりと保存する
3.こっそり保存したファイルを適宜読み込んだり、開放したり。
4.ゲーム終了時に分解したファイルを全部消去する。
0632デフォルトの名無しさん
2006/10/29(日) 19:31:02読み込みでいちいちバラしてたら、
1GBとかの容量のゲームどうすんだよ。
ヘッダにデータがあるんだから1ファイル分切り出して
必要な分だけメモリ読み込みできるようにつくっておきんしゃい。
0633デフォルトの名無しさん
2006/10/29(日) 19:31:41ちなみに手っ取り早いのはzip使うこと。
0634631
2006/10/29(日) 19:37:56レスありが�d
>ヘッダにデータがあるんだから1ファイル分切り出して
>必要な分だけメモリ読み込みできるようにつくっておきんしゃい。
頭悪いので、自分なりにがんばって理解してみた。
以下の考え方で正しい?
<パッキングファイル読み込み編>
0.ゲーム起動
1.パッキングファイル(2ch.pak)の中にある、読み込みたいファイル(2ch.bmp)を
2ch.pakより分解して保存。
2.通常通りファイル(2ch.bmp)をメモリに読み込み、メモリに格納したら、保存していた
2ch.bmpを削除。
3.同様に適宜ファイルを読み込んだり、しなかったり。
4.ゲーム終了時にはファイルパッキングに関しては特になにもしない。
0636デフォルトの名無しさん
2006/10/29(日) 19:46:03メモリに読み込んだんだったらそのまま使えよ。
0637631
2006/10/29(日) 19:57:15頭悪いんで、簡便してつかぁさい。
例えば、Xファイルを読み込む場合
D3DXLoadMeshFromX( "ファイル名.x", D3DXMESH_SYSTEMMEM,
pDevice, NULL, &pD3DXMtrlBuffer, NULL,
&dwNumMaterials, &pMesh ) ) )
漏れの場合上記のように"ファイル名"を指定して行ってるんだよ。
もちろん"ファイル名"を 2ch.x ではなく 2ch.pak で
行えれば理想的なんだが・・・、
やり方なんぞあれば、教えてほしぃ。
下衆なやりかたとしては、
パッキングファイルを指定→分解→保存→読み込み→保存したファイルを削除
→通常通り使う
のようになってしまう。
>>636の言うように
パッキングファイルを指定→分解→読み込み→通常通り使う
ということができれば、理想的。
0638デフォルトの名無しさん
2006/10/29(日) 20:05:34頭が悪いとかそういうレベルじゃねぇ。
リファレンス読むくらいは出来るだろ。
D3DXLoadMeshFromXInMemory
0639631
2006/10/29(日) 20:07:43レスありが�d
>頭が悪いとかそういうレベルじゃねぇ。
>リファレンス読むくらいは出来るだろ。
OTL
D3DXLoadMeshFromXInMemory について今から全力で
調べまつ。
0640631
2006/10/29(日) 20:17:51×>>637 レスありが�d
○>>638 レスありが�d
>>639
D3DXLoadMeshFromXInMemory関数について調べ、
いけそうだと確信しますた。
ちょい、がっつりコーディングします。
0641デフォルトの名無しさん
2006/10/29(日) 20:43:56まとめるのは時間かかるかもしれんけど、取り出すだけならfseekすればいいじゃん。
たまに客からそういう要望があるけどライブラリなんて使うまでもない。
普通にバイナリファイル使って読むだけだ。パッキングとかよくわからんけど。
何がしたいの?
0642デフォルトの名無しさん
2006/10/29(日) 20:53:01DirectInputのマウスはあまり役に立たないよな。
相対値なんか拾っても使い道が無いし、何のためにあるんだろう。
0643631
2006/10/30(月) 00:00:06レスサンクス。
パッキングはなんとかいけそうでつ。
fseek関数なんていう便利な関数がそういえばあったっすね。
忘れてた・・・。
>何がしたいの?
ゲーム造りたいんだけど、ファイルをパッキングして
データ(bmpとか)を見られないようにしたいんです。
(もちろん、ちょっとプログラムかじっている人にはすぐばれるが・・・)
もう少しがんばってみます。
0644デフォルトの名無しさん
2006/10/30(月) 02:04:39バイナリデータは書き込むときにエンディアンとアライメントに注意しろよ。
0645デフォルトの名無しさん
2006/10/30(月) 02:37:56アドバイスがあるなら、もっと具体的に教えてやれよ。
CD-ROMとかならアライメントも気をつけようもんだけど
HDDだったらどうでもよくね?エンディアンもさ。
0646デフォルトの名無しさん
2006/10/30(月) 02:46:37書き込みを構造体でまるまる書き込んで、
読み込みを?バイトで処理してたらハマルんじゃね?w
0647デフォルトの名無しさん
2006/10/30(月) 03:04:32そんなアホなことは考えもつかなかった・・・_| ̄|○
あ、ひとつアライメント気をつける条件を思いついた。
パックするマシンと、データ使うマシンが違うとか・・・アリエネー(;´д`)
0648デフォルトの名無しさん
2006/10/30(月) 03:46:320649デフォルトの名無しさん
2006/10/30(月) 03:57:57ざっと見た感じ無さげ。
自前でINIファイル解析したらいいんじゃね?
0650デフォルトの名無しさん
2006/10/30(月) 09:22:450651デフォルトの名無しさん
2006/10/30(月) 09:57:13フリーのゲーム程度では使わないほうがいいんでね?
ただの設定とかコンフィグ程度なら構造体を適当に読み書きすればいいんだし。
0652デフォルトの名無しさん
2006/10/30(月) 21:19:300653デフォルトの名無しさん
2006/10/30(月) 22:53:060654652
2006/10/30(月) 23:23:17確かにXファイルの読み込みなどでカウントが増えているようです。
ということは0にするには全部正確に解放しないといけないということですよね。
これを強制的に0にする方法はないでしょうか。
DXのサンプル(Commonフォルダ内、DXUT.cpp/DXUTCleanup3DEnvironment関数)で
if( pd3dDevice )
if( pd3dDevice-Release() > 0 ){
//(エラー処理)
}
}
の記述がありまして、アプリケーションの終了毎に怒られます。
サンプルを変更させないようにしたいのですが、
DXUTSetDevice(NULL);でアドレスをNULLにしようとしても出来ません(関数の仕様でNULLだとエラー処理へ)。
一番は全て解放出来ればいいのですが・・。
0655デフォルトの名無しさん
2006/10/31(火) 00:17:390656デフォルトの名無しさん
2006/10/31(火) 00:18:28いや、そりゃ普通にある。
コンパイラオプションでもアライメント有と無と設定できるから
送り側と受け側(例えばバイナリファイルをはさんでの)が違うときも注意。
0657652
2006/10/31(火) 00:38:03戻り値が25672とかでて、全て解放するにもどこから手をつけたらいいか分からない件orz
解放できていないのは分かっているから一々エラー出さないようにしたいのですが・・・サンプルをコメントアウトするしかないのかな。
0658デフォルトの名無しさん
2006/10/31(火) 00:45:21なぜかPCによっては何もキーを入力していなくても左上キーが入っていることになってます。
原因としてありえそうなことって何ですか?
0659デフォルトの名無しさん
2006/10/31(火) 00:53:35解放できていない場所を究明するのが一番だろう。
まぁDXUTILなんて見たこともないから知らんけど・・・。
テクスチャ作れば+1、頂点バッファ作れば+1されていくのは分かってるよね?
>>658
PCのパッドはちゃんとCAPSでニュートラル位置と
稼動範囲を調べて自分で範囲を調整しましょう。
(0,0)が中心じゃないパッドなんでいくらでもあります。
Setなんちゃらで範囲を指定する方法は使えないものもあるので、
デフォルトの稼動範囲を調べて、自分で調整するのが吉。
0660デフォルトの名無しさん
2006/11/01(水) 00:19:33データの解放忘れでそんな数になる訳ないから、
どっかで毎フレーム参照カウンタ増やすような処理が入ってるんじゃないの?
GetDeviceとか使っててReleaseしてないとか。
0661デフォルトの名無しさん
2006/11/01(水) 01:21:10マザーボードがBX
smartjoypadなどのコンシューマコントローラー変換機を装着してコントローラーつけてない
本当に左上に入ってる(アナログだとありがち)
0662デフォルトの名無しさん
2006/11/01(水) 20:35:13当てにするなって書いてあるよ
0663デフォルトの名無しさん
2006/11/01(水) 23:26:35毎フレーム増えず、アプリケーションのさまざまな初期化部分で一気に増えていました。
>>662
ナンデストー(´・ω・`)
0664デフォルトの名無しさん
2006/11/01(水) 23:38:16ちなみに俺はアプリケーション終了時のRelease()がメモリリーク以外で0にならなかったコトはないが。
0665デフォルトの名無しさん
2006/11/02(木) 00:25:35画像とTexture1とTexture2を用意する。
Texture1とTexture2はテクスチャで、レンダリングターゲットとしても使用可能。
1.Texture1をクリア
2.画像をTexture1に描画
3.Texture2をクリア ←――┐
4.Texture1をTexture2に描画 |
5.Texture1をクリア |
6.Texture2をTexture1に描画 ―――┘
以下3〜6を繰り返す(レンダリングターゲットの変更は省略)
2で描画する画像に半透明の部分がなければどれだけ繰り返しても形は変わりませんが、
アルファ値が255未満の部分があるとそこがだんだん薄くなって、終いには消えてしまいます。
何も描画していない部分は透明のままで、半透明の部分でも何らかの描画がされていれば上記を繰り返しても消えないようにしたいのですが
SetRenderStateでどういう値を入れればいいのでしょうか。(もしくは不可能なのでしょうか)
0666デフォルトの名無しさん
2006/11/02(木) 01:37:47何も目的で繰り返し描画してる(だけ?)のか分からないけど、
アルファブレンディングを切ればいいんじゃないかと思う。
全画面をただコピーしてるだけなら、クリアする必要はないなーとも思う。
0667デフォルトの名無しさん
2006/11/02(木) 01:38:35○ 何の
0668デフォルトの名無しさん
2006/11/02(木) 17:41:16http://game10.2ch.net/test/read.cgi/gameama/1162148782/59
0669デフォルトの名無しさん
2006/11/02(木) 21:32:05ありがとうございます。私の期待してた結果を表示することが出来ました。
0670デフォルトの名無しさん
2006/11/02(木) 23:36:46ビルド→実行→デバッグ→ビルド→実行・・・というようなループで
プログラムやってるんですが、
FPSが最初の方は60前後だったんだけど、
今、2時間くらい経ったら46〜50前後になってしまったんだけど、
これって、OS(WinXP)の問題? それとも単純になにかしら
プログラムの組み方の問題?
0671670
2006/11/02(木) 23:38:38もう一回実行したらFPSが60前後で安定した・・・。
これってしょぼいグラボ使っていると、
FPSの挙動が安定しない罠ですか?
0672デフォルトの名無しさん
2006/11/03(金) 00:42:23ボトルネックがCPU側にあるのか、GPU側にあるのかで状況は変わる。
とりあえずどこでストールしてるか測定しれ。
だがフルスクリーンでやってんじゃないならそんなもんだ。
0673670
2006/11/03(金) 09:48:10レスありがとうっす。
デバッグモードでウィンドウで動かしてます。
そうか、FPSの挙動って安定しないのか・・・。
すげぇ焦ったよ。
0674デフォルトの名無しさん
2006/11/03(金) 10:05:47おい。
0676デフォルトの名無しさん
2006/11/03(金) 10:40:15「プログラミングの為の数学と算数」スレより
誘導されてきました。
マウス(2次元)座標をゲーム画面(3次元)の座標に
変換したいんだけれど、
やり方がわからないです。
[やりたいこと]
大航海時代Onlineのように、
「キャタクターの行先(目的地)」を「地面をマウスクリックする」ことにより
指定し、その後、キャラクターが動き出す。
ということをやりたいと考えています。
0677デフォルトの名無しさん
2006/11/03(金) 11:16:49ワールドビュープロジェクションの逆変換かまして地形との交点を求むる。
0678676
2006/11/03(金) 18:44:06レスありがとうございます。
677の発言内容を参考に、自分がやりたかったことが載っている
書籍を購入してきました。
これからプログラミングしてみます。
0679デフォルトの名無しさん
2006/11/04(土) 00:33:13頑張れよ。
0680676
2006/11/04(土) 22:19:07ガンガリます。
一応、後からこのスレを見た人のために書籍&情報を晒しておきます。
題名「3DRPGプログラミング」
著者「坂本千尋」
出版社「SoftBankPublishing」
値段「2200円」
参考頁「P112〜P116」
ソースコードのある場所
ttp://www.cmagazine.jp/books/3drpg/
自分のようなDQNが1人でも減るようにと祈りつつ・・・。
0681デフォルトの名無しさん
2006/11/04(土) 22:43:13著者で地雷とすぐにわかる俺w
0682680
2006/11/04(土) 23:38:36orz
ある意味地雷かもしれないと気付きはじめている俺がいるw
プログラムのソースコード見てるんだけど、
(自分の実力のなさは棚上げするけど)
コメントが鬼のように少ない。
でも、ないより全然ましなので
すげぇありがたい書籍ではあります。
0683680
2006/11/05(日) 00:54:24ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/directx9_c/directx/graphics/reference/d3dx/functions/mesh/d3dxintersect.asp
(URLはD3DXIntersect関数について)
地形(マップ)との交点を求める上で上記の関数を使おうと考えています。
しかし、地形はテクスチャマッピングで作成しており、第一引数の
LPD3DXBASEMESHに対して変数を代入することができません。
テクスチャマッピングで描画している地形をLPD3DXBASEMESHに
変換する方法などあれば教えていただきたいと考えています。
0684デフォルトの名無しさん
2006/11/05(日) 01:08:50D3DXLoadMeshFromXInMemory
これとか???
0685デフォルトの名無しさん
2006/11/05(日) 03:25:44最初は2Dで、テトリスとかブロック崩しにでもしたほうが良いんじゃない?
つか>677で回答あるのに何で地形との交差判定に
D3DXIntersectとか使うんだ?いらんだろ。
0686デフォルトの名無しさん
2006/11/05(日) 20:36:58じっくり入門書よんでDirectX初期化して画面にモデル表示してよろこんでればいいレベルだと思う。
つーか、常識的にいきなり作るなんてのがそもそも無理。
まずは、3Dの扱いに慣れろ。数学で遊べ。って感じか?
0687デフォルトの名無しさん
2006/11/05(日) 20:56:11初心者が3Dでゲームって考えるなら、まずは既存のライブラリを使ってみろ、
って俺は言っておく。
0688デフォルトの名無しさん
2006/11/06(月) 01:37:52挫折してる暇無いぞ。
0689デフォルトの名無しさん
2006/11/06(月) 03:00:19プログラミングなんて優劣の個人差がありすぎるから、苦労に見合った分だけ楽しくなかったりする事もしばしばだし。
スレを見ている限り、はっきり言って向いてないよ。
0690680
2006/11/06(月) 21:19:23まだ、完成できていません。
たくさんのレスありがとうございます。
みなさんの意見を聞いて身の程を知りました。
個人的には3DRGPのような大それたものを
造るつもる技術もつもりもありません・・・。
みなさんからの厳しいつっこみを受け、
もう少し地に足のついたプログラム&勉強をしたいと思います。
0691デフォルトの名無しさん
2006/11/06(月) 23:43:50ポインタすら理解せぬまま特攻して、どうにかなってゲーム作っている自分は常識はずれの存在なのだろうか?
0692デフォルトの名無しさん
2006/11/07(火) 01:47:33↑こういうことをいう奴に限って学習できた環境がいい罠。
今は資料は多いけど、教えてくれる奴が少ないからな。
掲示板でレスくれる奴もあきらかに昔よりすくない。
そうするとのびた的質問に解答をくれる奴が少なくて苦労すると思うぞ。
0693デフォルトの名無しさん
2006/11/07(火) 02:39:050694デフォルトの名無しさん
2006/11/07(火) 02:39:52別に常識はずれじゃないと思うが。
物事を順に考えられる思考力があれば言語の事前知識なんてなくても問題ない。
色んな言語強要されるPGなら普通。
VBしか分からんって新入でも、勘の良いやつはすぐにCぐらい使えるようになる。
0695デフォルトの名無しさん
2006/11/07(火) 03:15:39本当にとことん向かなかったりするしな。
別段論理的思考に問題なくって、文章書くのも上手なのに、プログラミングはとことん下手って人もいる。
不思議なもんだ。
0696デフォルトの名無しさん
2006/11/07(火) 23:06:40なんだか自信が持てた。ありがとう。
もちろんmallocなんて分かりません。
0697デフォルトの名無しさん
2006/11/08(水) 00:19:51たぶん釣り人なんだとは思うんだが、
Javaから入った人では有り得そうな話。
0698デフォルトの名無しさん
2006/11/08(水) 19:14:32質問なのですが、Xファイルが表示できるようになって
今度はアニメーションつきのXファイルを表示したいと思っています。
それで、3ds maxでXファイル作りたいんですが、キーフレームアニメーション
をつけても出力してしまうとアニメーションがつきません・・・
うまく出力の仕方が分かる方いましたら、よろしくお願いします。
0699デフォルトの名無しさん
2006/11/08(水) 22:12:520700デフォルトの名無しさん
2006/11/09(木) 00:19:41まあ、中身わかってればコピペでいいけど
Xファイルを再生するスレ
http://pc8.2ch.net/test/read.cgi/gamedev/1006624202/
0701デフォルトの名無しさん
2006/11/09(木) 01:48:28>>698 は 3ds max でアニメ付きXファイルの作り方を聞いてるみたい。
激しくスレ違いなんだが、3ds max をくれたら調べなくもない。
0702デフォルトの名無しさん
2006/11/09(木) 05:11:29流体力学研究所が変換作ってなかったっけ?
0703デフォルトの名無しさん
2006/11/09(木) 06:33:50お、おまえなぁ・・・
deleteはしてるのか?
0704デフォルトの名無しさん
2006/11/09(木) 23:48:390705デフォルトの名無しさん
2006/11/10(金) 05:54:57そーいやgMaxってグローバル変数名っぽいな
0706デフォルトの名無しさん
2006/11/10(金) 11:35:59レディ
0707デフォルトの名無しさん
2006/11/10(金) 19:28:39返事ありがとうございます
やっぱり難しいですよね、アニメーション
でも、やっぱりMAXで出力したファイルにアニメーションがつかないので
それ以前の問題です・・・
0708デフォルトの名無しさん
2006/11/10(金) 20:17:590709デフォルトの名無しさん
2006/11/11(土) 10:22:57とりあえず取説よめば。
0710デフォルトの名無しさん
2006/11/11(土) 10:29:38/ ´_ゝ`) ちょっと通りまつよ〜
| /
| /| |
// | |
U .U
0711デフォルトの名無しさん
2006/11/11(土) 22:28:130712デフォルトの名無しさん
2006/11/11(土) 22:29:160713デフォルトの名無しさん
2006/11/11(土) 23:10:240714デフォルトの名無しさん
2006/11/12(日) 00:48:54お前らみたいな屑でお荷物が沢山居るから業界が破綻しかねないんだよ
0715デフォルトの名無しさん
2006/11/13(月) 11:57:31どーしたらいいですか?
0716デフォルトの名無しさん
2006/11/13(月) 13:26:58どのポリに当たったのか返ってくるんでロックしてそのポリの座標拾えばいい
0717デフォルトの名無しさん
2006/11/13(月) 21:50:55キーコンフィグをしようと思ってモードレスダイアログを表示したところ
GetDeviceStateが失敗するようになった(DIERR_NOTACQUIRED)ので
メインウィンドウをアクティブにして見たら、GetDeviceStateが普通に動いてました
DirectInput8はプロセスのメインウィンドウがアクティブじゃないとダメなんでしょうか?
0718デフォルトの名無しさん
2006/11/13(月) 22:08:550719デフォルトの名無しさん
2006/11/13(月) 22:28:15NONEXCLUSIVEのFOREGROUNDでした
協調レベルと言われて、BACKGROUNDというものも有ったのを思い出して変えてみたら失敗しなくなりました
どうも視野狭窄してたようです
ありがとうございました
0720デフォルトの名無しさん
2006/11/14(火) 14:24:14DirectXのプログラミングを始めてみようと思うのですが、
調べてみたところC++、C#、Delphiこの三つの言語でDirectXの
プログラムができるみたいなんですけど、どの言語が一番良いのでしょうか?
この3つの言語でDirectXのプログラムを組む場合のデメリットとメリット
というのがあれば教えていただきたいです。
0721デフォルトの名無しさん
2006/11/14(火) 14:28:06詳しい回答は期待するな。
0722デフォルトの名無しさん
2006/11/14(火) 14:28:33C#: 環境がマンドクセ
Delphi: メーカーがマンドクセ
0723デフォルトの名無しさん
2006/11/14(火) 16:09:03MAXのXファイル関連のプラグインは4つほど知っているんだが、結局どれを使ったかすら書かないんだよな。
0724デフォルトの名無しさん
2006/11/14(火) 16:54:40Xporterです
0725デフォルトの名無しさん
2006/11/14(火) 17:07:38DirectX勉強したいって、言語も何も分からない状態だよね?
それじゃあ話にならんし、そもそもDirectX勉強してどうするの?
ゲーム?君には無理だからやめとけ。
0726デフォルトの名無しさん
2006/11/14(火) 17:14:26まず何をやったらいいか分からないのでアドバイス下さい
0727デフォルトの名無しさん
2006/11/14(火) 17:15:35C++の勉強をしてください
0728デフォルトの名無しさん
2006/11/14(火) 17:18:23作らなければいいと思います。
Cの知識しかなくてC++で作りたいなら、まずやるのはC++を勉強する事だろ。
それすらもしないお前には無理。
そもそもスレ違い。
0729デフォルトの名無しさん
2006/11/14(火) 17:24:36それから、ミカタイプ並のタイピングソフトはCだけで作れますか?
0730デフォルトの名無しさん
2006/11/14(火) 17:43:06ミカタイプがどんなのか知らんけど、Cの知識があるっていうんだから
作れるかどうかは当然分かるはずだろ。
0731デフォルトの名無しさん
2006/11/14(火) 17:50:40卒業課題でタイピングソフトを作る事にしたんですが、どうやらスレ違いですね
すみませんでした
0732デフォルトの名無しさん
2006/11/14(火) 17:53:090733デフォルトの名無しさん
2006/11/14(火) 18:26:29その学校何なんだ?
Cを一年半もやってタイピングソフト?
いったい何を学んだんだ…
0734デフォルトの名無しさん
2006/11/14(火) 18:38:54いや、課題は俺が勝手に決めただけです
オザワケンみたいなソフトを作りたいと思いまして
0735デフォルトの名無しさん
2006/11/14(火) 19:55:03まずはWin32APIに触れるところから。
0736デフォルトの名無しさん
2006/11/14(火) 21:12:06ゲームっぽいのが作りたいならスプライトから
勉強するといいぉ
0737デフォルトの名無しさん
2006/11/14(火) 22:34:27卒業までにタイピングゲーム作るのさえ無謀。
完成出来そうなものに課題変えたほうがいいよ。
煽りじゃなくてまじで。
0738デフォルトの名無しさん
2006/11/14(火) 23:50:22誰からも学ばず
1年たたずにテトリス作れた
本も読まずにやってた。
1行ずつ実行して試してた
配列とか後で知った
0739デフォルトの名無しさん
2006/11/15(水) 00:02:25分割コンパイルとか後で知った。
0740デフォルトの名無しさん
2006/11/15(水) 03:36:24全部ヘッダとか
0741デフォルトの名無しさん
2006/11/15(水) 06:30:34パッドタイプのコントローラをただ振動させたいのですが、強さを変えても反映されません。
void refreshFF(){
DICONSTANTFORCE cf;
cf.lMagnitude = 変更した値;
DIEFFECT eff;
ZeroMemory( &eff, sizeof(eff) );
eff.dwSize = sizeof(DIEFFECT);
eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS;
eff.cAxes = g_dwNumForceFeedbackAxis;
eff.rglDirection = rglDirection;
eff.lpEnvelope = 0;
eff.cbTypeSpecificParams = sizeof(DICONSTANTFORCE);
eff.lpvTypeSpecificParams = &cf;
eff.dwStartDelay = 0;
g_pEffect->SetParameters( &eff, DIEP_DIRECTION |
DIEP_TYPESPECIFICPARAMS |
DIEP_START );
}
としてプログラム中で変更させているのですが、初期値で振動するだけで反映されません。
ご存知の方教えていただけると助かります。
0742デフォルトの名無しさん
2006/11/15(水) 07:50:43FFBはコントローラによって挙動が違うよ
0743デフォルトの名無しさん
2006/11/15(水) 09:11:44おれもそんな組み方してた時代があったな・・・。
0744デフォルトの名無しさん
2006/11/15(水) 12:50:58素人が良くやる歯抜け状態に…U・V座標から直にスクリーンのX・Y座標に描画していたのだ
仕方ないので描画ドットを適当に大きくしたりして力技でしのいだ
後にX・Y座標からU・V座標を得るという逆の発想でやるという事を知り目から鱗だった
0745デフォルトの名無しさん
2006/11/15(水) 21:06:20外部のライブラリを利用してだが、
6年前に製作ゲームで
cpp : 4000行 / h : 3000行 2ファイルのみで構成されたコードがある。
今の俺には書けない。
0746デフォルトの名無しさん
2006/11/15(水) 21:43:58もちろん、コードは今見るとめちゃくちゃだしクラスも使ってなかった。
やっぱ皆も始めた頃はそんな感じ?
0747デフォルトの名無しさん
2006/11/15(水) 21:48:16惚れた
俺はCPPひとつに.hが数十とかだった。
クラスの実装も定義も別のファイルなんだけど、全部.hでw
0748デフォルトの名無しさん
2006/11/16(木) 00:32:38もちろん、746の云うとおりクラスなんぞ全くつかっていないし、
サウンドのストリーミング再生なんてこともしらなかったから、ファイルまるごとメモリに読み込ませてたなw
ソースは意外と今でも読めるが、重複している内容がかなり多い
0749デフォルトの名無しさん
2006/11/16(木) 00:45:18しかしhならパスさえ通しておけばいい。という理由でダミーのcppと無数のヘッダで開発。
0750デフォルトの名無しさん
2006/11/16(木) 00:54:18俺なんか最初に作ったプログラムは、40バイトくらいの機械語だぜ。
アセンブラなんかないからハンドアセンブル・・・知らんか若いやつには(´Д`lli)ゞ
0751デフォルトの名無しさん
2006/11/16(木) 00:55:28最近のマシンは高速だから、分割コンパイルなんかしなくてもいいんだな・・(;´д`)
0752デフォルトの名無しさん
2006/11/16(木) 01:32:180753デフォルトの名無しさん
2006/11/16(木) 08:06:40表示したモデルを動かせるようにもなりました。
…が、次はどこに向かうのがいいんでしょう
アニメ付きXファイル再生をしようかと思いましたが、なんのことやら全くで。
「何がわからないのかわからない」状態です。
それとも、画面上に地面を作って、その上に立たせるのが手頃でしょうか。
(地面のXファイルを作って、当たり判定を取る??)
0754デフォルトの名無しさん
2006/11/16(木) 08:39:38何のために Direct3D を学ぼうとしたのか? を考えてみるべし
0755デフォルトの名無しさん
2006/11/16(木) 18:41:29笑いをこらえながら仕事するのも限界に達したので書き込みました
I君にシステムエンジン作らせて大丈夫なんでしょうか
0756デフォルトの名無しさん
2006/11/16(木) 22:43:16スレ違いの日記を書き込むヤツが作るよりはマシだと思う。
0757デフォルトの名無しさん
2006/11/17(金) 02:28:48宜しければ一度で良いので拝見して頂きたいです
当企画の成立には貴方の力が必要です
次世代コミュニティ製作 C++,mod_perl,P2Pが使えるコーダ、グラフィッカ募集中
http://pc8.2ch.net/test/read.cgi/tech/1163349367/
0758デフォルトの名無しさん
2006/11/17(金) 04:04:10○宜しければ一度ご覧下さい。
相手に対して「拝見」はおかしいだろ、とマジレス
0759デフォルトの名無しさん
2006/11/17(金) 12:32:26プログラムの勉強ばっかりやってて
ゲームつくりの勉強(構想)を怠ってて
気がついたら何が作りたいのかわからなくなってた
0760デフォルトの名無しさん
2006/11/17(金) 13:09:33YOU!本職になっちまいなYO!
仕事だけは腐るほどあるから、悩んでる暇ないぞ!
0761デフォルトの名無しさん
2006/11/17(金) 16:23:59759じゃないけどゲームプログラマって結構働き口あるもの?
エロゲーでもなんでもいいのでゲーム関係やりたいんだけど、
採用されやすいところとかあるのかな。
メーカーとかよく知らないし、どうすりゃいいかさっぱり。
0762デフォルトの名無しさん
2006/11/17(金) 16:51:55やらないか?
0763デフォルトの名無しさん
2006/11/17(金) 17:20:530764デフォルトの名無しさん
2006/11/17(金) 20:31:250765デフォルトの名無しさん
2006/11/17(金) 20:48:070766759
2006/11/17(金) 22:22:41一応、本職です><。
趣味で個人作成したいけど
思いつかないんだ。
>>761
大手は、
とりあえず入れるところが多い。
試用して駄目だったら捨てる感じ
中小でも、人手が足りないところ多い。
>>764
実力があれば
金も将来性も
0767デフォルトの名無しさん
2006/11/17(金) 22:28:10あきれられたりもするが、それでもがんばりゃ何とか年一千万前後は行くし、
このご時世そう捨てた商売でもないよ。
将来性については聞くな!
0768デフォルトの名無しさん
2006/11/18(土) 13:12:53ゲームプログラマより将来が無いプログラマなんてたくさんあるぞ
0769デフォルトの名無しさん
2006/11/18(土) 21:13:580770デフォルトの名無しさん
2006/11/18(土) 22:39:34下を見てどうすんだ、下をw
何の慰めにもならないだろ
0771デフォルトの名無しさん
2006/11/19(日) 00:06:200772デフォルトの名無しさん
2006/11/19(日) 02:06:160773デフォルトの名無しさん
2006/11/19(日) 02:11:33国内的には飽和状態
所属してる会社によって見えてる将来が違うのかもね
ム板よりマ板のほうが技術ネタで盛り上がるのってどうなんだw
ゲームプログラマの人に聞きたい 20問目
http://pc8.2ch.net/test/read.cgi/prog/1162314152/
0774デフォルトの名無しさん
2006/11/19(日) 04:26:310775デフォルトの名無しさん
2006/11/19(日) 08:44:43最近はゲームのPGは就職するための最低レベルが上がってるせいで
どこも人手不足って話はよくきけけどねぇ。
デザイナはデッサンさえ出来れば2Dだろうが3Dだろうが割とすぐ習得できるけど、
PGは2Dと3Dで越えられない壁があるからなぁ。
0776デフォルトの名無しさん
2006/11/19(日) 10:58:530777デフォルトの名無しさん
2006/11/19(日) 11:15:020778デフォルトの名無しさん
2006/11/19(日) 11:23:20人の作ってくれたライブラリ使って座標弄るので精一杯な奴しかいないけどな。
極稀に死ぬ思いで習得する奴もいるけどやっぱりそれなりに苦労はするな。
仕事しながらってのは辛い。
大抵の奴はできないまま。
0779デフォルトの名無しさん
2006/11/19(日) 11:30:543D出来なくても他に得意な分野があれば問題なかったりするんだけどね。
まぁ3Dできないままな事に変わりはないが。
0780デフォルトの名無しさん
2006/11/19(日) 12:08:22どれくらいできれば就職できるんでしょうか?
抽象的過ぎる質問ですが
0781デフォルトの名無しさん
2006/11/19(日) 13:06:23最低ラインを聞いてるならC言語でテトリスでもつくってくりゃタイミング次第でどこでも入れるぜ。
実際、そういう場面ってあるしな。
逆にタイミング悪いと、どんなにできても駄目なときは駄目。
0782デフォルトの名無しさん
2006/11/19(日) 13:11:21そのとき抱えてる案件が携帯ゲームの開発だったりしたら
どっちがどの程度だろうとあんまり違いってないじゃん。
で、ノルマとして、3ヶ月で10個ぐらい作るって話になったら
単純にプログラマの数だけそろえたいじゃん。そんな感じ。
大作でも○○画面?個なんて話になると、もうベテランだろうとなんだろうと違いなんてないね。
0783デフォルトの名無しさん
2006/11/19(日) 15:00:35まじめにPGってんならうちの会社だと、
1.ツール作れる
そのまんまの意味
2.3Dできる
既存のライブラリ(例EL・DX・Lunaあたり)でいいから
それつかってゲーム作る(自分でDirectX叩いたほうが評価はいいけど)
3.ネットワークできる
Peer2PeerとかClient-Server型のいわゆるネトゲ的なヤツ
4.携帯電話のアプリ組める
そのままiAppli、Brewとか
どれか1つでも出来ればとってると思う。
肝心なのはちゃんと完成してるものである事かねぇ。
0784デフォルトの名無しさん
2006/11/19(日) 20:14:52既存のライブラリ(例EL・DX・Luna・BulletMLあたり)でいいから
それつかってゲーム作る(自分でDirectX叩いたほうが評価はいいけど)
は?
0785デフォルトの名無しさん
2006/11/19(日) 20:23:07STGって時点で起動すらしてない・・・ところもあるw
0786デフォルトの名無しさん
2006/11/19(日) 20:27:333D組んでもさ、3D特有の嫌らしさってでないしさ。
別にSTGとしてたのしいもん作ってもらってもいいけど
それはそれ、これはこれ、じゃん。
仕事で求められるのってちょっと違うし。
そうとういいもん作っても、見る奴が変な奴だと、
いきなり「こいつはSTGをちっともわかってない!」とか技術判定ほったらかしで怒りだして
気分悪くしてそのまま不採用にしちゃうSTGキチガイもいるからかなり危険。
なんかね。妙なスイッチ入るんだよw普段はおとなしいんだけど・・・
0787デフォルトの名無しさん
2006/11/19(日) 20:38:58不採用になったほうがまだマシだな。
0788デフォルトの名無しさん
2006/11/19(日) 21:02:43いや、ちょい昔の(PS世代の俺よりチョイ上ぐらい)PGのSTGのこだわり方って半端じゃないよ。
普段は話が通じる人でも、STGになると豹変するからやめた方がいい。
どうせSTG作っていきたいって奴だって変なこだわりがあるからSTGでもっていきたいんだろ?
無駄に敷居が高いから止めたほうが無難だぞ。
0789デフォルトの名無しさん
2006/11/19(日) 21:28:11プログラマ志望ということで一番上のプログラマがやってきた
「あれさぁ〜〜ェッタ、ボク的にェッタは受け付けなェッタいねぇ〜ェッタ、ェッタ、わかるよね?言ってる意味ェッタ」
なんだよその ェッタ って
即帰らせてもらった
0790デフォルトの名無しさん
2006/11/19(日) 21:31:27Gダラみたいにしたほうがはるかに評価が高い現実。
まぁゲーム自体は結局2DSTGだけど、ポリゴンを使えるってだけで評価あがるもんだよ。
STG自体が作るのが簡単なジャンルだし作ってる会社もほとんどないから
就職作品にするならかなり気合入ってないと厳しいかもね。
ただアホみたいに弾幕飛ばすだけのゲームなんて即効ALT+F4だな。
0791デフォルトの名無しさん
2006/11/19(日) 22:03:110792デフォルトの名無しさん
2006/11/19(日) 22:13:24ワロタ
0793デフォルトの名無しさん
2006/11/19(日) 22:31:46それはそれで評価される罠。
まぁそれでゲーム作るのはキツイかもしれんが・・・。
0794デフォルトの名無しさん
2006/11/19(日) 22:32:28スキニングができるかどうかが分かれ目か?
0795デフォルトの名無しさん
2006/11/19(日) 22:47:210796デフォルトの名無しさん
2006/11/19(日) 23:05:43俺が就職するときはもってったぞ。>スキンメッシュ
同時にバンプも掛けてた。
デモ作ってもってったら採用された。
ちなみにゲー専卒。
2年間の有り余る時間をすべてゲームの勉強に注いだ。
0797デフォルトの名無しさん
2006/11/20(月) 17:38:060798デフォルトの名無しさん
2006/11/20(月) 17:58:30最初から用意されてるなんとかHierarchyとか使わないで読み込むんじゃねーの?
全部自力で読み込んで、自力で描画。IKとかの話じゃないの…?
そうじゃなかったら、その会社普通に誰でも入れそうだな。
0799デフォルトの名無しさん
2006/11/20(月) 18:05:422年間の努力に敬意を表するっ!
0800デフォルトの名無しさん
2006/11/20(月) 18:20:120801デフォルトの名無しさん
2006/11/20(月) 18:54:36ゲームを終了させたら自動的にアンインストールが始まる作品があった。
そのアンインストールというのが無条件にフォルダ内を消しまくるやつだった。
(d:\test\01072にインストールしたのにtestごと消された。)
見事他の人の作品まで消してくれた。
不採用。
0802デフォルトの名無しさん
2006/11/20(月) 19:11:46いや、SDKのサンプルがちゃんと理解出来れば自前読み込み、自前描画くらい出来るっしょ。
ちなみに>>797は>>795宛てね。
0803デフォルトの名無しさん
2006/11/21(火) 00:07:56なんか、そういうエロゲあったな。
ProgramFilesの中身全部消された
0804デフォルトの名無しさん
2006/11/21(火) 00:28:450805デフォルトの名無しさん
2006/11/21(火) 00:46:480806デフォルトの名無しさん
2006/11/21(火) 02:09:00そういう手合いはMSDN読んだりとかしないのだろうか???
0807デフォルトの名無しさん
2006/11/21(火) 02:13:39きっと
0808デフォルトの名無しさん
2006/11/21(火) 02:48:06もう、インストーラって言う、レベルじゃねーぞ!!
,, ―- 、_
/ '' - ,,
/ '' - ,,
/ ヽ
i / /ヽ !
,i ./ / ''―、 !
i ,、 n て'' ノノ ヾ !
i ノノノ ノ ノ ''´ ! /
j ' ´ ノ ( ヽ |
>-,, / ,,=━━・!' ,ノ━== ! ノ
!・ ヽ | ’ニ( ●)iii、 :::::i( ●)ii=i )
\(てi iヽ ^' ~ -' /}
`i_ 、 \ i_ l_j
`┐ i /(,,, ,n 〉 /\\
 ̄ ̄へ ! ' T'' l | \
| ! i ン=ェェi) i ソ )
| i´\! ,, -ェ`、_ン ノノ 〈
| | \\,, `―''´// |
| つ !、_''''''''''''' / 7
インストーラッティ=イウレ=ベルジャネーゾ(革命家)
[1965~2006]
0809デフォルトの名無しさん
2006/11/21(火) 03:02:540810デフォルトの名無しさん
2006/11/21(火) 03:19:430811デフォルトの名無しさん
2006/11/21(火) 03:20:300812デフォルトの名無しさん
2006/11/21(火) 03:33:01:::::::::::::::::::::::::::::::::。::::::...... ... --─- :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::.. (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡:::: //[|| 」 ||] ::::::::::゜:::::::::: ...:: :::::
:::::::::::::::::: . . . ..: :::: / ヘ | | ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .::::::::: /ヽ ノ ヽ__/ ....... . .::::::::::::........ ..::::
:.... .... .. . く / 三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧ ∧∧ ∧∧ ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:( )ゝ ( )ゝ( )ゝ( )ゝ無茶しやがって… ..........
.... i⌒ / i⌒ / i⌒ / i⌒ / .. ..... ................... .. . ...
.. 三 | 三 | 三 | 三 | ... ............. ........... . .....
... ∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪ ............. ............. .. ........ ...
三三 三三 三三 三三
三三 三三 三三 三三
0813デフォルトの名無しさん
2006/11/21(火) 07:22:570814デフォルトの名無しさん
2006/11/22(水) 00:26:05ttp://www.nk.rim.or.jp/~m_iida/programming/directX/BCB_DX9.html
を見てbuilderとのリンク(?)までは上手くいったのですが、
その後、どうしてよいのかわかりません。
初期化やらなんやらが必要なことはわかったのですが、
初期化もどうやっていのかわからずという状態です。
決まった時間に決まった音声を鳴らせればそれでいいのですが、
そのために必要な情報が載っている詳しいサイトか本などを紹介していただけないでしょうか?
プログラム暦はC言語を数ヶ月と、Visual C++で作ったDirectXのサンプルプログラムをいじったことがある程度です。
今回はスクロールバー等を多用するのでC++builderとDirectSoundでプログラムを作りたいと思っています。
0815デフォルトの名無しさん
2006/11/22(水) 06:50:02二等兵よ、まず開発するDirectXのバージョンは何だ?目的地はDirectX8か?
二等兵よ、対応するSDKとヘルプは持っているか
行軍の必須装備だ なければ Microsoft DirectX 開発者ページにイって確保してこい
DirectSoundの仕様はDirectX8のヘルプに記載されている
ヘルプで仕様を一通り眺めたら、偵察機グーグルで飛べ
http://www.google.co.jp/
作戦コードは DirectSound だ。間違って エロ画像 と入力するんじゃないぞ
先達部隊のヴェテランどもが DirectSound との交戦記録を持っている
驚くことに講座まで開いているぞ
合流してチュートリアルで学べ、そして戦え、二等兵よ!
0816デフォルトの名無しさん
2006/11/22(水) 07:33:58彼は衛生兵です。
0817デフォルトの名無しさん
2006/11/22(水) 08:24:370818デフォルトの名無しさん
2006/11/22(水) 22:35:100819デフォルトの名無しさん
2006/11/23(木) 01:08:18全部自前で書きたくなるのが本物のプログラマ
0820デフォルトの名無しさん
2006/11/23(木) 01:10:330821デフォルトの名無しさん
2006/11/23(木) 01:10:53本物のプログラマだったらむしろできるだけ書くことをサボろうとする
0822デフォルトの名無しさん
2006/11/23(木) 01:17:370823デフォルトの名無しさん
2006/11/23(木) 01:50:130824デフォルトの名無しさん
2006/11/23(木) 07:29:40error C2039: 'CreateDevice' : 'IDirect3D9' のメンバではありません。
g:\program files\microsoft directx sdk (october 2006)\include\d3d9.h(254) : 'IDirect3D9' の宣言を確認してください。
オブジェクト宣言してアロー演算子使っているのですが、間違っていないと思うのですが、わかりません。
よろしくお願いします。
0825デフォルトの名無しさん
2006/11/23(木) 07:43:550827824
2006/11/23(木) 08:05:49コンパイラはVS2005proです
0828デフォルトの名無しさん
2006/11/23(木) 09:10:480829デフォルトの名無しさん
2006/11/23(木) 09:11:32Proなんて相当高いもん使うくらいなのにそんな質問が出てくるのか。
0830デフォルトの名無しさん
2006/11/23(木) 09:13:300831デフォルトの名無しさん
2006/11/23(木) 09:27:140832デフォルトの名無しさん
2006/11/23(木) 09:40:320833824
2006/11/23(木) 09:52:50パスは通っています
それから、割れではありません
0834デフォルトの名無しさん
2006/11/23(木) 10:01:58Pro なんていいもの使ってるなら、それくらいの脳は持ってくれ。
0835デフォルトの名無しさん
2006/11/23(木) 10:12:550836デフォルトの名無しさん
2006/11/23(木) 22:50:39scrnsave.lib を使ったイベントで作画を呼ぶタイプの解説は
たくさん見つかるのですが、自分でループを回すような構造
(DXUTのような構造) のスクリーンセーバーってどうやって
作ればよいか説明されているサイトってどこかにありませんか?
0837デフォルトの名無しさん
2006/11/23(木) 22:59:590838デフォルトの名無しさん
2006/11/23(木) 23:06:01「デモ」はと映像や音楽と組み合わせたプログラムの技巧がものをいうけど、
「スクリーンセーバー」はセンス悪くてごめんなさい放っておいてよって感じ。
0839デフォルトの名無しさん
2006/11/23(木) 23:22:39ScreenSaverProcでWM_TIMERやWM_USERなりを拾ってループを回せばよくない?
>838
チラ裏にでも書いてろ
0840デフォルトの名無しさん
2006/11/23(木) 23:50:31WM_TIMERで作ってみたんだけど動きがスムーズじゃないんだよね。
DXUTだとスムーズなのに。
0841デフォルトの名無しさん
2006/11/24(金) 00:03:37つ デュープリズムのスクリーンセーバー
0842デフォルトの名無しさん
2006/11/24(金) 11:39:54用途によってはアリ。
追加ボードで パワーマネージ非サポートの省電力の行ったり来たりを許さないのがある。
0843デフォルトの名無しさん
2006/11/26(日) 15:51:34描画時にスケール変換して描画しているメッシュとのレイ判定ってどのように行えば良いのでしょうか?
現在、D3DXIntersectを使用しています。
分かる方お願いします。
0844デフォルトの名無しさん
2006/11/26(日) 16:58:570845デフォルトの名無しさん
2006/11/27(月) 00:13:36つーかお前ずっと同じような質問してるだろ。
>>677に書いてあることは理解できたのか?
初心者でも三日もかければ理解出来る。理屈が分からずにD3DX使うより結局早道だぞ。
レイとポリゴンの交差判定なんてググればいっぱい出てくるんだし。
0846843
2006/11/28(火) 12:59:05返答ありがとうございます。
書き込み遅くなってすいません。
回転と平行移動は、レイ発射点の回転・平行移動により再現しています。
0847デフォルトの名無しさん
2006/11/29(水) 01:26:000848デフォルトの名無しさん
2006/11/29(水) 08:08:570849デフォルトの名無しさん
2006/11/29(水) 08:12:540850デフォルトの名無しさん
2006/11/29(水) 17:57:12SDKのバージョンどれまでだっけ?
0851デフォルトの名無しさん
2006/11/29(水) 18:07:510852デフォルトの名無しさん
2006/11/29(水) 18:09:37サンクス!
0853デフォルトの名無しさん
2006/11/29(水) 18:22:060854デフォルトの名無しさん
2006/11/29(水) 18:27:310855デフォルトの名無しさん
2006/11/29(水) 18:30:47スプライトの中心に2D絵を描画したいのですが
どうすればよいでしょうか?
よろしくお願いします。
0856デフォルトの名無しさん
2006/11/29(水) 18:35:05質問するときには何がわからないのか書かないと、まともな返事は期待できない。
0857デフォルトの名無しさん
2006/11/29(水) 18:52:44''';;';'';';''';;'';;;,.,
;;''';;';'';';';;;'';;'';;;
;;'';';';;'';;';'';';';;;'';;'';;;
vymyvwymyvymyvy、
ヽ(゚д゚)vヽ(゚д゚)yヽ(゚д゚)v(゚д゚)っ
⊂( ゚д゚ ) と( ゚д゚ ) 〃ミ ( ゚д゚ )っ ( ゚д゚ )つ
ゝηミ ( ゚д゚ )っ ミ) ⊂( ゚д゚ ) .(彡η r
しu(彡η r⊂( ゚д゚ ) .ゝ.η.ミ) i_ノ┘
. i_ノ┘ ヽ ηミ)しu
(⌒) .|
三`J
0858デフォルトの名無しさん
2006/11/29(水) 20:53:242. スプライトエディタを起動
3. 中心に何か絵を描く。
4. 出来上がり。
0859デフォルトの名無しさん
2006/11/29(水) 21:28:260860デフォルトの名無しさん
2006/11/29(水) 21:28:29そうですね、失礼しました
DirectXを使ってサイズが不定なテクスチャの中央を
描画可能領域の中央に合わせて表示したいのですが、どのようなコードを書けばいいのでしょうか?
現在はこうしていて、どうしてもテクスチャの左上が描画可能領域の中央に来てしまいズレてしまいます。
position.x=d3dpp.BackBufferWidth/2;
position.y=d3dpp.BackBufferHeight/2;
Sprite.Draw(Texture,NULL,NULL,&position,D3DCOLOR_ARGB(0,0,0,0));
よろしくお願いします。
0861デフォルトの名無しさん
2006/11/29(水) 21:31:49position.y=(d3dpp.BackBufferHeight - SpriteHeight)/2;
0862デフォルトの名無しさん
2006/11/29(水) 22:21:53プログラムじゃなくて算数からやり直した方がいいよ。
0863デフォルトの名無しさん
2006/11/29(水) 23:26:40テクスチャの幅=スプライトの幅ということですか?
あとSpriteWidthでは、変数名しかわからないのでもう少し情報をください。
よろしくお願いします。
0864デフォルトの名無しさん
2006/11/29(水) 23:31:38画用紙にクレヨンで四角を書け。それが描画可能領域だ。
その四角の真ん中に、少し小さめの四角を書け。それがスプライトのテクスチャだ。
スプライトの左上の点がどこになるか、絵を描いて考えろ。
0865デフォルトの名無しさん
2006/11/29(水) 23:48:530866デフォルトの名無しさん
2006/11/30(木) 00:10:150867デフォルトの名無しさん
2006/11/30(木) 00:15:12>その四角の真ん中に、少し小さめの四角を書け。
描画可能領域の真ん中に少し小さめの四角の左上が
0868デフォルトの名無しさん
2006/11/30(木) 12:11:01>>1
>>867
position.x=d3dpp.BackBufferWidth/2;
position.y=d3dpp.BackBufferHeight/2;
ならそうなるな、スプライトの幅も計算に入れろ
と思ったけど、スプライトの幅のサイズが先に分かってる場合の方法しか俺は知らない
サンプル見て回ったけど、どこも定数入れてるし、スプライトのサイズが分からない場合の方法はないんじゃないか?
俺DX暦3年だからまず間違いない
0869デフォルトの名無しさん
2006/11/30(木) 13:20:39スクリーンセーバーから回復すると、以降
IDirect3DDevice9::Presentが成功しません。解決方法を教えて下さい。
if(SUCCEEDED(m_pd3dDevice->BeginScene())){
//描画・・・
m_pd3dDevice->EndScene();
}
m_pd3dDevice->Present(NULL, NULL, NULL, NULL); ←これ
0870デフォルトの名無しさん
2006/11/30(木) 13:24:28デバイスロストしてんならリストアしる
0871デフォルトの名無しさん
2006/11/30(木) 13:40:27http://lacc.biz/cpp/cpp05.html
このソースを使ってコンパイルして実行すると一回目は正常?なんですけど
2回目実行するとハングアップしてしまいます。(電源を切るしかありません)
他にもDirectXを使ってるゲームを二回目起動すると同様の現象が起きます。
どなたか教えていただけませんでしょうか?
Windows XP です。
0872デフォルトの名無しさん
2006/11/30(木) 14:07:09まずプログラム側の問題(大多数の環境で再現するトラブル)と
環境側の問題(特定の環境で再現するトラブル)のどちらか確認せな
他のDirectXゲームでも同じ症状が起きるところを見ると環境側の問題っぽいが
環境側の問題ならビデオドライバをアップデートするとか
メーカーに問い合わせるとか、パーツやマシンを替えることになる
0874デフォルトの名無しさん
2006/11/30(木) 14:48:29ど こ の メ ー カ ー に 問 い 合 わ せ る つ も り な ん だ ?
0875871
2006/11/30(木) 14:50:060876デフォルトの名無しさん
2006/11/30(木) 14:52:250877デフォルトの名無しさん
2006/11/30(木) 21:49:56ドライバどうこう言われてもドライバの意味も分からないんじゃないか?
そもそもWindowsXPですとか言われても関係ないし。
せめてビデオカード何使ってるかくらいは明記してもらいたいものだが。
0878デフォルトの名無しさん
2006/11/30(木) 22:35:51それだけでも十分偉いよ
0879デフォルトの名無しさん
2006/12/01(金) 01:18:12そもそも可能でしょうか(´・ω・`)色々調べてみたけど万策尽きた
0880デフォルトの名無しさん
2006/12/01(金) 01:41:08にD3DX_DEFAULT_NONPOW2を指定すると読み込んだテクスチャが2の乗数にならんと風の噂で聞いたんだが
SDK9.0bでやっても効果なかった
ググってもほとんど引っ掛からなかったんだけど誰か詳しくわかる人ますか?
0881デフォルトの名無しさん
2006/12/01(金) 03:06:310882デフォルトの名無しさん
2006/12/01(金) 03:06:44TextureとSprite、Surfaceなどが出てきますが、これらの違いがよく理解できません。
これらの相違点について分かるサイトがあったら教えてください。
よろしくお願いします。
0883デフォルトの名無しさん
2006/12/01(金) 04:12:45lpD3DDevice->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_ARGB(128,128,0,0),1.0f,0);
とかしてみたのですが、全然透けてくれません。
lpD3DXSprite->Begin(D3DXSPRITE_ALPHABLEND);
で描いたtextureなんかは半透明になるのですが……。
もしかして背景は透けられないものなのでしょうか。
0885882
2006/12/01(金) 05:30:51スプライトが画像のみを扱い2Dである
テクスチャーは画像を3D(サーフェイス)の一部として扱う
その為テクスチャーを使っての2Dという方法で画像を表示する事もできる
textureを扱う為にsurfaceを用いなければならない
って感じかなぁ
まだ分からないけどDirectXを2Dのみで扱いたいならスプライトって事かな
0886デフォルトの名無しさん
2006/12/01(金) 06:52:53すまん確認してなかったorz
結局ハードの問題になるなら現実的なコードじゃないな…
0887デフォルトの名無しさん
2006/12/01(金) 07:51:30やっぱ癌だな。初心者が変な思い込みをして騒ぐ。
うざいことこの上ない。
0888デフォルトの名無しさん
2006/12/01(金) 07:59:36ウィンドウは透けない
0889デフォルトの名無しさん
2006/12/01(金) 08:03:04スプライトがウザいのか?
スプライトに関する質問者がウザいのか?
0890デフォルトの名無しさん
2006/12/01(金) 08:03:47Surface 画像データそのもの
Texture Surfaceに各種情報を持たせたもの つまりTextureの画像データの部分がSurface
Sprite Textureにスプライト操作に必要な情報を持たせたもの
0891デフォルトの名無しさん
2006/12/01(金) 08:17:05なるほどです…
Surface < Texture < Sprite といった感じですね
Easy Link Libraryを使っていた時にスプライト=画像みたいな解釈してたので凄いこんがらがりました
今凄いすっきりしました、ありがとうござざいます
0892デフォルトの名無しさん
2006/12/01(金) 11:04:04どこら辺のパラメータをいじってあげれば良いですか?
メッシュの縦横比を常にウィンドウが正方形の時の形に保ちたいんです。
0893871
2006/12/01(金) 11:19:28windows/system32/dxなんとか.exeを起動したら前回問題があったとかでて
いろいろテストとかしたら問題がおこらなくなりました。
ありがとうこざいました。
0894デフォルトの名無しさん
2006/12/01(金) 12:48:41たとえばD3DXMatrixPerspectiveFovLHとかのアスペクト比
0895デフォルトの名無しさん
2006/12/01(金) 13:19:28荒業でいいならDLLInjectionとかでDirectDraw乗っ取って
その上に描画とか。
0896デフォルトの名無しさん
2006/12/01(金) 15:52:10なるほど。
まだ何とも言えませんが、鋭意調べてみます!(`・ω・´)
あまりwindowsシステムに関わったぷ〜を組んだことが無いので〜
0897デフォルトの名無しさん
2006/12/01(金) 19:52:25>891での解釈も少し違うような気がするなぁ
((Surface) Texture)
画像を描画できる最小の単位
Spriteを使用すると描画の際に色んな効果を加えられる…のかな
駄目だな俺、Dx才能ねぇや
0898デフォルトの名無しさん
2006/12/01(金) 20:17:42俺の買った
DART社のサンプルで学ぶDirectX9プログラミングテクニックというのが分かりづらいのかもしれないです・・・
0899デフォルトの名無しさん
2006/12/01(金) 20:58:06DirectX SDK Document 日本語が上手くインストールできないもんだから
日本語ドキュメント諦めてたけど
インストールせずに解凍して読んでみたが、日本語ドキュメント無いと絶対DirectX使えるはずないな…
Managed 日本語の
・DirectX 9.0 for Managed Code の紹介
└・Direct3D グラフィックス
└・Direct3D の基礎知識
└・Direct3Dサーフェイス
└サーフェイス フォーマット
を今読んでるけど、分かりやすいわ…
スレ汚ししまくって失礼しました…
0900デフォルトの名無しさん
2006/12/01(金) 22:16:34DirectDrawでカラーキー抜きするようなやつを思い浮かべる人が多いのだろうけど、
DirectX8以降はスプライトなんてものは一切無くて、
ポリゴンにテクスチャを張りつけて描画しているだけの事。
0901デフォルトの名無しさん
2006/12/02(土) 02:20:44ウィンドウの背景絵のように貼り付けたりすることはできますか?
どういったキーワードでググればいいでしょうか・・・
0902デフォルトの名無しさん
2006/12/02(土) 02:43:470903デフォルトの名無しさん
2006/12/02(土) 03:05:19ソフトウエア的な運用上のパラダイムになってるからな、スプライトって。
年寄りがぎゃーすか騒ぎ出したら、口ん中にマウスカーソルかNintendoDSでも突っ込んで
黙らせてしまえ。
0904デフォルトの名無しさん
2006/12/02(土) 05:50:16wiiなら突っ込まれてもいい。
…ごめん、そんな大きいの、入らないよ。
0905デフォルトの名無しさん
2006/12/02(土) 14:30:120906デフォルトの名無しさん
2006/12/03(日) 03:50:50performance->PlaySegmentEx(segment,NULL,NULL,0,0,&state,NULL,NULL)で再生しているのですが、
必ずセグメントの初めから再生されてしまいます。
初期化辺りで既にミスっているのでしょうか。
SDKはAugust2006を使用しています。よろしくお願いします。
0907デフォルトの名無しさん
2006/12/03(日) 08:50:55すっかり覚えてないが DMUS_SEGF_VALID_START_*** が必要じゃなかったかな?
0908デフォルトの名無しさん
2006/12/03(日) 13:57:11レスありがとうございます。
DMUS_SEGF_ALIGN | DMUS_SEGF_VALID_START_* を指定してみましたが残念ながら結果は同じでした。
この際、それっぽいフラグは全部試してみたのですがどれもうまくいきませんでした。
書き忘れていましたが、WAVファイルをセグメントに読み込んでいます。
調べていると、MIDIなら成功するらしいのですがWAVだとダメだったという方が結構いるようで・・
頑張ってもう少し調べてみます。
0909デフォルトの名無しさん
2006/12/03(日) 16:43:19WAVEはSetLengthしないとダメでは?
0910デフォルトの名無しさん
2006/12/03(日) 17:55:59SetStartPointの前にという事ですよね。
MSDNの方に「セグメントの長さを現在のオフセットより少なくとも 1 チックだけ大きい値に設定する必要がある」
とあるのですが、オフセットというのはそのセグメントの演奏開始からの現在までの時間といった解釈でよろしいのでしょうか。
合っていると仮定して、オフセット+1の値を引数にSetLengthを呼び出してみたのですが、うまくいきませんでした。
引数を色々な値に変えて試してみましたがやはりダメでした。
SetLengthの引数が正しい値ではないという事でしょうか。
0911デフォルトの名無しさん
2006/12/03(日) 17:58:53DWORD tempo, // 1 分あたりの拍数
float wavLength) // 秒数
{
if (pSeg)
{
MUSIC_TIME mt;
mt = (wavLength * DMUS_PPQ * tempo) / 60;
return pSeg->SetLength(mt);
}
else return E_POINTER;
}
0912デフォルトの名無しさん
2006/12/03(日) 18:30:220913デフォルトの名無しさん
2006/12/03(日) 18:37:16D3DXMatrixShadow()
D3DXPlaneFromPointNormal()
のような関数を使えば影を付けられるという事が分かったのですが、
これらの関数が行っている計算式はかかれていませんでした。
計算式を教えて頂きたいのと、このような関数だけに限らず、
Microsoftが用意している関数が行っている計算などを知るには何を調べればいいのでしょうか?
0914デフォルトの名無しさん
2006/12/03(日) 19:42:120915デフォルトの名無しさん
2006/12/03(日) 20:09:07背景を塗ることは出来たのですが、テクスチャを表示することが出来ません。
ここからどのようにすればテクスチャを表示できるのでしょうか。
分割コンパイルをしている事もあり申し訳ありませんがソース&画像を固めてアップしました。
よろしくお願いします。
ttp://newsstation.info/up/img/ns15948.zip
0916デフォルトの名無しさん
2006/12/03(日) 20:38:570917デフォルトの名無しさん
2006/12/03(日) 21:01:17DXから親切なエラーメッセージが出てるんだからちゃんと読もうぜ。
0918デフォルトの名無しさん
2006/12/03(日) 22:22:52メッセージ読めばあらかた解決しちゃうんだよね。
かなり微妙な問題についても突っ込んでくれるし、MSDNに書いてない様なことにも
メッセージを出してくれる。
そんな仕様ならドキュメントしとけや!と切れそうになることもしばしばなくらい。
そんなわけでデバッグ版DLL使用に切り替えて、デバッグレベル上げれ。
設定はコンパネから。
これそろそろテンプレに入れてもよくなくね?
0919デフォルトの名無しさん
2006/12/03(日) 22:31:520920デフォルトの名無しさん
2006/12/04(月) 01:28:470921デフォルトの名無しさん
2006/12/04(月) 01:35:460922デフォルトの名無しさん
2006/12/04(月) 02:01:55どうでもいいがTinyって女じゃないか?
0923デフォルトの名無しさん
2006/12/04(月) 02:10:29Bmpを背景に3Dオブジェクトを重ねて表示するにはどうすればよいのでしょうか?
tex = Texture.FromBitmap(device, bmpimage, Usage.None, Pool.Managed);
でテクスチャに毎フレームごとテクスチャにビットマップ
を割り当ててスプライトで表示してみたのですがFromBitmapの処理が遅すぎて使い物になりません。
0924デフォルトの名無しさん
2006/12/04(月) 02:31:240925デフォルトの名無しさん
2006/12/04(月) 02:33:55つスレタイ
0926デフォルトの名無しさん
2006/12/04(月) 03:56:120927デフォルトの名無しさん
2006/12/04(月) 07:54:10まずはZ座標を一番奥にしたスクリーン座標のポリゴンにカメラからの映像を表示する
そのうえに普通にDirect3Dのモデルをレンダすればいいだけ
ビットマップする必要なんてない
つまり映像をテクスチャにすればいいだけな話
0928デフォルトの名無しさん
2006/12/04(月) 11:43:44ビットマップにする必要が無いというのは気づきませんでした。
どうも、ありがとうございます。
今カメラ画像はメモリ上にあるのですが、それをテクスチャに貼り付ける部分で
どうしてよいのか分からない状態です。
テクスチャへの割り当てはTextureLoader.FromFile();
か、texture.FromBitmap();がメインのようで他に見つかりませんでした。
それとも、他の方法としてカメラ画像を直接テクスチャに再生する方法があるのでしょうか?
調べたところMicrosoft.DirectX.AudioVideoPlayback の中のVideoクラスは
"動画ファイル"を直接テクスチャにレンダできるようです。
しかしリアルタイムのカメラ画像のテクスチャへの割り当ては解決できませんでした。
アドバイスいただけますでしょうか。
0929デフォルトの名無しさん
2006/12/04(月) 14:41:27GDIならSetLayeredWindowAttributesで半透明ウィンドウが作れる。
そこにDirect3Dの描画結果を自分で転送すればいける。
αも転送したかったら、自前で処理しないといかんが。
Vistaを睨んで全部Direct3Dでやりたい、って人はどうするんだろうな。
俺も知りたい。
0930デフォルトの名無しさん
2006/12/04(月) 15:02:15M/Bがショートして煙がモヤりして、PCが起動できなくなりました。
せっかく回答を頂いたのに申し訳有りません…
スレを読む分には問題ないので頂いたレスに対してカキコします。
ただアンカはつけられませんが。。。
デバッグで…と言う方法は凄いいいですね。
全然知らなかったので…無知は失敗の元ですね
その方法をきちんと広めれば"何を調べればいいのか対象がハッキリして"
質問の質がきっとあがる!!
と、初心者がいっとります>(゚ロ゚*
回答してくださった方、本当に申し訳ないであります。
0931デフォルトの名無しさん
2006/12/04(月) 15:25:48ちょうど似たようなものを作ったところ。D3DPRESENTFLAG_LOCKABLE_BACKBUFFER必要。
hwMain = CreateWindowEx(WS_EX_LAYERED, ...);
SetLayeredWindowAttributes(hwMain, RGB(0, 0, 0), 0, LWA_COLORKEY);
hdcMain = GetDC(hwMain);
lpD3DDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &lpD3DSurface)
これで背景通過のウィンドウを作り、
lpD3DDevice->EndScene();
したら Present の替わりに、
lpD3DSurface->GetDC(&hdcD3D);
BitBlt(hdcMain, 0, 0, cx, cy, hdcD3D, 0, 0, SRCCOPY);
lpD3DSurface->ReleaseDC(hdcD3D);
で転送。
背景を半透明にしたければ、さらにCreateWindowExで別の半透明ウィンドウを作って下敷きにする。
正しいかどうかは分からないけど、動いてる。
0932デフォルトの名無しさん
2006/12/05(火) 01:06:370933デフォルトの名無しさん
2006/12/05(火) 13:05:520934デフォルトの名無しさん
2006/12/05(火) 14:21:48誰もそんなこと聞いてねぇよw
SDKの話をしてんだが?
0935デフォルトの名無しさん
2006/12/05(火) 17:11:25知ってるが
お前の態度が
気に入らない
0936デフォルトの名無しさん
2006/12/05(火) 21:53:52膜があるかどうか、というのも不確実だしなぁ。
とりあえず自己申告を信じろ。
0937デフォルトの名無しさん
2006/12/05(火) 23:06:530938デフォルトの名無しさん
2006/12/05(火) 23:17:310939デフォルトの名無しさん
2006/12/06(水) 00:23:19これ作ってた会社が倒産したんだっけ
0940デフォルトの名無しさん
2006/12/06(水) 01:13:590941デフォルトの名無しさん
2006/12/06(水) 15:51:54IMEで日本語入力させたいときはどうしたらいい?
変換候補とか入力中文字がちらついて見えない。
0942デフォルトの名無しさん
2006/12/06(水) 16:55:29>アプリケーションが4つの128x128のテクスチャを使うなら,
>同じパレットにして1つの256x256のテクスチャの中に入るとよいでしょう。
1つのテクスチャに4つのテクスチャをまとめて
テクスチャマッピングの際に線形補間フィルタリングをかけると
ポリゴンのエッジ部分に他のテクスチャのテクセルが干渉してしまいます。
2005年のエントリークラスのVGAを使用することを想定した場合に、
どのような解決策を使用したほうが良いでしょうか。どうか教えてください。
自分で解決方法を調べてみた結果としては、2つの方法が思いつきました。
(1)1つのテクスチャにまとめない(Tipsを無視する)
(2)サンプリングされる4点が目当てのテクスチャの範囲に収まるように
テクスチャ座標(u,v)を調整する
自分としては、(2)は広範なVGAで確実に調整できるか疑問が残りますし、
Tipsに縛られずに(1)で良いのかなと考えています。
0943デフォルトの名無しさん
2006/12/06(水) 17:04:43(1)
0945デフォルトの名無しさん
2006/12/06(水) 18:33:46手首切断して出血多量で死ねよ
>>941
IME用のWM_を使う
ネット上にソース転がってる
0946デフォルトの名無しさん
2006/12/06(水) 18:44:35サンクス
0947デフォルトの名無しさん
2006/12/06(水) 21:44:31おれは(2)にしてる。
とくに2Dで大量に描画するような時は(1)の方法だと死ねる。
だが(2)はUVをズラサナキャならない分CPUに負荷がかかるので
どっちもどっちで状況に応じて帰るのが最強だと思うんだな。
(2)でたしかにVGAによっては若干ごみが出ることはある。
だがそんなものは画像を作る時に端1ドットは使わないようにすればいいだけだったりもする。
でも面倒なときはやっぱり(1)使ったりもする。
>>941
描画も自分で管理したいならIme*系の関数で全部できる。
0948デフォルトの名無しさん
2006/12/06(水) 21:45:29Ime*なんてねぇや、Imm*か
0949デフォルトの名無しさん
2006/12/07(木) 04:49:38DirectXSDKの中にずばりのサンプルがある。探しなさい。
ただ、基本は「IMEの機能で描画はさせず、入力コンテキストの描画は自己責任で行う」、これに尽きる。
つまりフォント周り一式とかをちゃんと面倒見る体勢まで整えてからじゃないと、
いわゆる製品品質のアプリとかは作れない。
つってもそんなに大したことじゃない。
先にも書いたとおり、DirectXSDKの中にずばりのサンプルがある。
UI関連のコードで、サンプルブラウザからすぐ見つけられる。
そう悪くないサンプルなので、しばらくコードと戯れてみるのがいいと思うよ。
頑張れ。
0950942
2006/12/07(木) 07:04:46ご回答ありがとうございます m(__)m
大変勉強になります。申し訳ありませんが、質問を重ねてもよろしいでしょうか。
(1)の問題点を挙げるとすると、どのようなものでしょうか。
a. テクスチャが多くなることで作成や管理の手間が増大する
b. SetTexture, テクスチャ切り替えのオーバヘッドが増大する
c. 最大テクスチャ数など何らかの制限がある
d. その他
製作にあたり注意点として留めておきたいと思いますので
ご教示よろしくお願いします。
>だがそんなものは画像を作る時に端1ドットは使わないようにすればいいだけだったりもする。
その通りだと思います。
しかしながら…、画像を作るときに注意を払う必要がでてきますし
フィルタリングやVGAによっては1ドットで済むのかどうか疑問であります…。
コーディングや注意の手間を考えると(1)の方法をとるのとどちらが良いのか
悩ましいところです。状況に応じて考えないといけないのですね。
ご指摘いただいて勉強になりました。ありがとうございます。 m(__)m
0951デフォルトの名無しさん
2006/12/07(木) 09:56:47どうサンプリングしても上下左右1ドットまでしか参照されないよ。
それ以上参照される場合はそもそも座標やUVの指定がおかしい。
(0,0)-(100,100)に描画する時に頂点座標を(0,0)-(100,100)って
指定したらいけないのはわかるっしょ。
0952デフォルトの名無しさん
2006/12/07(木) 10:53:09>どうサンプリングしても上下左右1ドットまでしか参照されないよ。
ミップマップテクスチャの存在を忘れてはいけないだろ
0953942
2006/12/07(木) 12:38:06ご指摘ありがとうございます。 m(__)m
なるほど1ドット空けておけば大丈夫なんですね。
調べてみたところ(2)の方法は、転送元を0.5テクセル内側に
するらしいですが…画像がぼけたりしないのでしょうか。
>>952
ミップマップというと距離によってテクスチャを縮小する技法ですよね。
よく分からないので…理解できるように勉強してみます。
ありがとうございます。
0954デフォルトの名無しさん
2006/12/07(木) 21:56:33あれ?2D描画の話じゃなかったの?
2Dならミップマップなんて使わないから別にイーヤ的な感じだった。
3Dでも最近はミップマップ使うよりミップマップは1,2レベル程度しか使わずに
異方性フィルタ使うほうが格段にきれいになるからそっち使ってるなぁ。
>>953
そりゃぼやけるさ。
だがバイリニアフィルタ使ってる時点でぼやけるの確定なんだから同じコト。
まぁバイリニアでも正しい位置に正しいUVを指定すればぼやけずにきちんと表示されるがね。
0955デフォルトの名無しさん
2006/12/08(金) 01:35:02初期時の解像度って何を参照して決めるのが一般的なんでしょうか?
0956デフォルトの名無しさん
2006/12/08(金) 01:41:320957デフォルトの名無しさん
2006/12/08(金) 02:44:47Win32APIのMonitorFromWindow()で、ウインドウハンドルから
現在ウインドウが描画されてるモニタのハンドルが手に入る。
これを同じくWin32APIのGetMonitorInfo()に食わせると、
マルチディスプレイ含めた全体画面上のモニタの位置およびサイズが手に入る。
解像度が欲しいだけなら、ここから拾える。
で、IDirect3D9のGetAdapterCount()で得られるアダプタの数だけ
GetAdapterMonitor()を回してやれば、アダプタ番号も手に入る。
D3DDeviceは、アダプタ番号指定してリセットかけてやらないと
マルチディスプレイ環境等では極端に動作速度が落ちる場合があるので、
この指定は必須(無くても動くには動くが、滅茶苦茶遅くなるかもしれない)。
ウインドウ移動のイベントなんかの中でも、本当はアダプタ番号を逐次検索するべき。
面倒くさければマルチ対応しませんって言い切って、放置すんのも手だけど。
こんなんでいいか?
0958デフォルトの名無しさん
2006/12/08(金) 23:59:03これ使って描画すると描画したもんのまわりにαがかかるんだけど
なんか回避方法知ってる人いない?
普通の画像でもそれなりにわかるんだけど、
一番わかりやすいのが幅、高さともに1ドットぐらいのビットマップを読み込んで
拡大描画すると滲む。何故か右下から広がるようにαが入ってる。
0959デフォルトの名無しさん
2006/12/09(土) 01:36:18すまんが有効な情報の持ち合わせはないぞ。
0960デフォルトの名無しさん
2006/12/10(日) 01:12:43EnumDevicesは通っています。
必要なのか分かりませんがSetPropertyでオートセンサーの無効にするのは失敗しました。
これをコメントアウトしてそのまま処理を進めると、CreateEffectの部分で失敗してしまいます。
PS2のコントローラのバイブレーション機能を使えるかどうか、
使える場合何か特殊な設定が必要なのかレスを頂けると有難いです。
SDK:2006Aug
0961デフォルトの名無しさん
2006/12/10(日) 01:32:17既にわかっていることかもしれんが、
「PS2のコントローラをUSB接続するデバイス」およびそのドライバに
標準の規格なんて一切無い。
普通のフォースフィードバック扱いで動かなければ、最悪デバイス及びドライバ側の
問題の可能性は大いにある。
むしろ2〜3個買ってきて検証してみてくれ。
0962960
2006/12/10(日) 01:46:13手元にFF(この略し方でいいのかな)対応のコントローラがないので、先にプログラムが正常かどうか試して見ます。
ちなみにFF対応のプログラムは「DirectX実践プログラミング」の項にあるものを打ち込んでいます。
0963960
2006/12/10(日) 20:03:38オートセンサーの無効は正常に通りましたが、やはりCreateEffectで失敗してしまいます。
LPDIRECTINPUTEFFECT g_pDIEffect = NULL;
〜エフェクトの設定など〜
hr = g_pDIDevice->CreateEffect( GUID_ConstantForce, &eff, &g_pDIEffect, NULL);
問題がなければg_pDIEffectに何らかのアドレスが入るはずなのですがNULLのまま。
effの値は以下の通りです。
http://a-draw.com/uploader/src/up8240.txt
何か間違っているのでしょうか。
0964デフォルトの名無しさん
2006/12/10(日) 20:47:560965デフォルトの名無しさん
2006/12/10(日) 22:25:100966デフォルトの名無しさん
2006/12/10(日) 22:56:41チャンネルが違ったりすることはあるかもしれんが。
0967960
2006/12/10(日) 23:00:020968デフォルトの名無しさん
2006/12/11(月) 02:31:12960が使っているのはこれかな?
確かにエフェクトの生成(CreateEffect)で失敗しますね。
途中でインストール済みのデバイス、フォースフィードバック対応と認識されていますのでコントローラ自体は問題なさそうです。
0969デフォルトの名無しさん
2006/12/11(月) 18:50:540970960
2006/12/11(月) 21:35:26すみません、その方のサイト?やDL出来る場所はどこにあるのでしょうか。
調べても出てきませんでしたので教えていただけるとありがたいですorz
0971デフォルトの名無しさん
2006/12/11(月) 22:09:02http://www.twin-tail.jp/contents/el/index.htm
0972デフォルトの名無しさん
2006/12/11(月) 22:56:03作者も放棄したモノを使い続ける
0973960
2006/12/11(月) 23:14:02ありがとうございます。
ただ見た限りではジョイスティック(ゲームコントローラ)の設定のみでFF関連のプログラムが見当たりません。
CreateEffectで失敗するということはなんらかのドライバが必要?
ドライバ無しでも対応のゲームでは動くので必須ではなさそうですよね。
もしかしてPS2のコントローラのバイブレーション機能を使うには別の手段があるのでしょうか。
DX8の時代のものですし、DX9では9で新しいものがあってもおかしくはないのですが。
0974デフォルトの名無しさん
2006/12/11(月) 23:53:08エラーみろ
エラーの見方がわからないならそう言え
>もしかしてPS2のコントローラのバイブレーション機能を使うには別の手段があるのでしょうか。
他のFF対応機器と同じと考えてよい
ただし、変換アダプタがフォースフィードバックに対応していること
当然ながらPS2のコントローラーも振動に対応していることを確認しろ
>DX8の時代のものですし、DX9では9で新しいものがあっても
DirectInputは変更なし
対応しているかどうかを心配しているのなら、まずはじめにやって欲しいのは
なんらかの方法で実際に揺らしてみることだ
どんな変換アダプタを使っているのか知らないが
テストモードで揺らすことが出来るものもある
どんな変換アダプタを使っているのか?
SDKのバージョンは?
再現する最低限のコード
せめてこれぐらい書いてくれ
0975960
2006/12/12(火) 00:18:10上にも書いていますがSDKは2006Aug、ソースは968さんが書いてくださっているURL先にあるのと同じです。
変換コネクタはLOAS JOX-U301、コントローラはソニーのデュアルショック2。
USBからの電力供給でバイブレーション機能は問題なく働いています(振動対応ゲームにて確認)。
EnumDevicesのDIEDFL_FORCEFEEDBACKフラグを通っているのでFF対応と認識されているのでしょうが、
CreateEffectで失敗(E_INVALIDARG)するためこのプログラムで振動させるまでには至っておりません。
0976デフォルトの名無しさん
2006/12/12(火) 01:28:18DXのサンプルは動くかな?
そのプログラムは同じところで動かなかったけどDXのサンプルだと動いたよ。
0977デフォルトの名無しさん
2006/12/12(火) 05:28:49まあ頑張れ。
0978デフォルトの名無しさん
2006/12/12(火) 15:04:45前処理必要だったっけ?
0979960
2006/12/13(水) 01:39:21DirectXのFFサンプルが動きましたのでそちらのプログラムをベースにしてみました。
原因を調べようとソースを比べましたが978さんの内容の部分で引っかかります。
別に設定する必要性もないのでDirectXのサンプルのコードを使って回避しています。
0980デフォルトの名無しさん
2006/12/17(日) 20:07:12LunaというDirectXライブラリを使用してゲームを制作しているのですが
テクスチャを読み込んだスプライトを拡大しまくると変になります。
パソコンAでは
ある一定のサイズに達するとスプライトが消える
パソコンBでは
ある一定のサイズに達するとスプライトが右下に動く(座標に変化は無い)
パソコンCでは
永久に拡大可能。問題無し
という状況です。
原因がまったくわからず、どうすればいいのかもわからないので
質問させていただきました。
DirectXをよく知っている方で、この現象を理解できる方がいれば
ぜひ助言の方お願いします。
0981デフォルトの名無しさん
2006/12/17(日) 21:34:530982デフォルトの名無しさん
2006/12/17(日) 22:24:13LunaのサイトにいくにしてもそのPCのグラボがどんな性能かわからんと話にならんな。
0983デフォルトの名無しさん
2006/12/17(日) 23:35:01>>982
ありがとうございました。
Luna製作者に聞いてみますね。
とりあえず聞く前にDirectXの不具合ではなかったようなので
よかったです。
ありがとうございましたー。
0984デフォルトの名無しさん
2006/12/18(月) 21:30:09ひな型のサンプルプログラムはどういうのにしましたか?
LUNAとか内部の処理が分からないのは除外します。
0985デフォルトの名無しさん
2006/12/18(月) 21:33:110986デフォルトの名無しさん
2006/12/18(月) 21:36:490987デフォルトの名無しさん
2006/12/19(火) 02:52:33ゼロから書いても、結局ああなる。
デバイスの復元処理とか。
0988デフォルトの名無しさん
2006/12/19(火) 02:57:350989デフォルトの名無しさん
2006/12/19(火) 04:46:24工学社の本とかのサンプルだと、載ってる情報量もイマイチだし。
0990デフォルトの名無しさん
2006/12/19(火) 09:26:100991デフォルトの名無しさん
2006/12/19(火) 21:55:130992デフォルトの名無しさん
2006/12/21(木) 04:29:04マウスのレイとの接触判定はできているのですが、サンプルのEffectEditのようにやろうとすると
X軸とY軸方向には動かせるものの、カメラを回転させるとマウスの移動方向とメッシュの移動方向が
あわなくなるようでどうにも。
2Dと同じような感覚で3DにおいてD&Dを行うにはどのようにすればよいのでしょうか?
0993デフォルトの名無しさん
2006/12/21(木) 19:43:340994992
2006/12/22(金) 04:12:27ありがとうございます。
お陰様でZ軸方向にも移動するようになりましたが、カメラの向きによっては明後日の方向に移動したり、
距離の変化によってマウスに追従してるとは言い難い移動量だったりでまだまだ練る余地がありそうです。
メタセコイアでの移動の具合がそのものズバリだったのでこれを参考に模索していきたいところです。
0995デフォルトの名無しさん
2006/12/22(金) 23:07:18質問なのですがDirectX9実践プログラミングと言う本の
DirectX Graphicsのサンプルを実行すると
何故かウィンドウがすぐに消えてしまい何も出来ません。
どこを直すとちゃんとファイルが読み込めるのでしょうか。
0996デフォルトの名無しさん
2006/12/23(土) 03:04:59DirectX9実践プログラミング サポート情報 最終更新2003年6月11日
問い合わせ [email protected]
0998デフォルトの名無しさん
2006/12/23(土) 18:46:400999デフォルトの名無しさん
2006/12/23(土) 19:16:381000デフォルトの名無しさん
2006/12/23(土) 19:32:1210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。