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


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

鬱だ氏のう DirectX (Part 7)
501 名前:名前は開発中のものです。 :03/02/05 00:52 ID:N+d6L0pq
ちょい聞きたいんだけど、いわゆるインデクスリスト、DrawIndexedPrimitiveで
表示すんのとトライアングルストライプをDrawPrimitive で表示すんのはどっちが
ええのん?

D3DXMeshに振り回されるのも飽きてきたのでどちらかに絞りたいのだけど。

502 名前:名前は開発中のものです。 :03/02/05 01:06 ID:6CAPKd5a
>>501
頂点キャッシュ意識しつつDrawIndexedPrimitive

503 名前:名前は開発中のものです。 :03/02/05 02:42 ID:OmM2oqc6
「Xファイルからメッシュに読み込む」
の日本語の意味が分からないのですが、Xファイルとメッシュって
別物だったんですか?Xファイルってメッシュとどう違うのですか?

なんか言葉の問題ですが、分かったような分からないような
気持ち悪い感じなのでだれか教えてください。

504 名前:名前は開発中のものです。 :03/02/05 02:57 ID:UI6dIE/V
Xファイルは、ファイル
メッシュは、ポリゴンを格納する箱のこと。





505 名前:名前は開発中のものです。 :03/02/05 03:23 ID:t7RKM9gf
               o.
               /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
              /   このスレは無事に .  /
              /  終了いたしました    /
             / ありがとうございました  /
             /                /
            /   ペイピッポォより     /
            / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           /
         . /
   __(^^) ../
  /__ \/
  | |   |  |
  (_) (__)

506 名前:名前は開発中のものです。 :03/02/05 03:25 ID:45qMK1H4
>>501
トライアングルストライプって何?
縞模様のテクスチャを貼った三角形?

507 名前:名前は開発中のものです。 :03/02/05 06:47 ID:+GmCcNpR
三角形ストリップ(D3DPT_TRIANGLESTRIP)のことじゃねーの?

508 名前:497 :03/02/05 08:07 ID:asHOMshy
>>500
アドバイスありがとうございました。解決しました。

質問ばかりで申し訳ありません。
Xファイルから読み込んだメッシュから頂点座標を1ポリゴン(3点)ずつ取得したいのですが、上手くいきません。
自分ではこれで合っているような気がするのですが・・・

models[mdl].pMesh -> LockVertexBuffer (D3DLOCK_READONLY,&pVertices);
models[mdl].pMesh -> LockIndexBuffer (D3DLOCK_READONLY,&pIndices);

for( i=0 ; i<models[mdl].dwNumFaces ; i++ )
{
pVertices += ( models[mdl].dwVertexSize * (*(pIndices))) ;
v1 = *(D3DXVECTOR3*)pVertices;
pVertices -= ( models[mdl].dwVertexSize * (*(pIndices))) ;
pIndices ++;

pVertices += ( models[mdl].dwVertexSize * (*(pIndices))) ;
v2 = *(D3DXVECTOR3*)pVertices;
pVertices -= ( models[mdl].dwVertexSize * (*(pIndices))) ;
pIndices ++;

pVertices += ( models[mdl].dwVertexSize * (*(pIndices))) ;
v2 = *(D3DXVECTOR3*)pVertices;
pVertices -= ( models[mdl].dwVertexSize * (*(pIndices))) ;
pIndices ++;
  処理
}
アンロック
※dwNumFaces 面数 , dwVertexSize 頂点サイズ

509 名前:名前は開発中のものです。 :03/02/05 09:14 ID:C8LBuEyA
>>508
v2へのベクトルの代入が2回あるよ
最後はv3の間違いでは

510 名前:名前は開発中のものです。 :03/02/05 11:26 ID:WNKlFOrl
>>508
pVerticesの型は問題無い?
それと余計なお世話かもしれないが、いちいちpVerticesの値を書き換える
のはどうかと思うが。

511 名前:名前は開発中のものです。 :03/02/05 11:43 ID:Rpyfjb59
VC++6.0、DX8.1SDK使って開発してるんですが
VCの機能で、構造体がstだとするとst.と打つと変数がズラっと出てくるのですが
DXの場合でてきません(;´Д`)
たとえばこんば場合
lpD3DDEV-> この場合だとメンバがズラっと出てきてもおかしくないはずでは…?

512 名前:名前は開発中のものです。 :03/02/05 12:18 ID:79QNGJq6
>>503
ニュアンスとしては「テキストファイルから文字配列に読み込む」と似たようなもんだ。

>>511
DirectXに限らずいつの間にか出なくなってるのはよくあることさ。
VC終了させてncbファイルを削除してリビルドすると直ることがある。

513 名前:名前は開発中のものです。 :03/02/05 14:33 ID:pCUaxWgd
            o.
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無様に .  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /    モララーより     /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)


514 名前:名前は開発中のものです。 :03/02/05 14:45 ID:VhnI0t6f
>>512
DirectX関係のヘッダファイルを
メニューの「プロジェクトに追加」から追加すれば すべて表示される様になるよ。

515 名前:名前は開発中のものです。 :03/02/05 14:48 ID:VhnI0t6f
上は>>511へね。

516 名前:497 :03/02/05 15:56 ID:Px3YyVPb
>>509
すみません、コピぺミスでした。
プログラムの方は3になっています。

>>510
pVerticesはBYTE*型で宣言しています。

517 名前:名前は開発中のものです。 :03/02/05 20:05 ID:33SsFAZ7
VisualBasic環境でDirectXを解説しているホームページがあったら
教えて下さい。
ほとんど、C/C++環境しか載ってませんでした。

518 名前:名前は開発中のものです。 :03/02/05 20:16 ID:79QNGJq6
>>517
http://www.google.com/search?lr=lang_ja&q=VB+DirectX+DirectGraphics
http://www.google.com/search?lr=lang_ja&q=VB+DirectX+DirectInput
http://www.google.com/search?lr=lang_ja&q=VB+DirectX+DirectAudio
http://www.google.com/search?lr=lang_ja&q=VB+DirectX+DirectPlay

519 名前:名前は開発中のものです。 :03/02/05 20:17 ID:79QNGJq6
あ、DirectXってキーワードは要らないか……

520 名前:あぼーん :あぼーん
あぼーん

521 名前:名前は開発中のものです。 :03/02/05 22:45 ID:gmQcAvyI
>>508
pIndicesってBYTE*?
インデックスってunsigned short(2バイト)だよね。
>pVertices += ( models[mdl].dwVertexSize * (*(pIndices))) ;
これだとDWORDにcharを掛けることになるんじゃない?


522 名前:名前は開発中のものです。 :03/02/05 23:03 ID:j4N+VLbo
インデックスは16bitの場合と32bitの場合があるよ。

523 名前:名前は開発中のものです。 :03/02/05 23:18 ID:gmQcAvyI
>>521
>models[mdl].pMesh -> LockIndexBuffer (D3DLOCK_READONLY,&pIndices);
でもここでエラーが出るよ。これってエラー回避できたっけ?


524 名前:497 508 :03/02/06 00:06 ID:OnKQhdzM
アドバイスありがとうございます。
参考に、いろいろと調べながら改良したところ上手くいったのですが。
pVerticesは自前の頂点フォーマットなので、Xファイルの頂点フォーマットが変わったら対処出来なくなりますよね・・・

models[ObjInfo[obj_num].mdl_num].lpVertexBuffer -> Lock(0,0,(BYTE**)&pVertices,D3DLOCK_READONLY);
models[ObjInfo[obj_num].mdl_num].lpIndexBuffer -> Lock(0,0,(BYTE**)&pIndices,D3DLOCK_READONLY);

for(i=0;i<models[ObjInfo[obj_num].mdl_num].dwNumFaces;i++)
{
indx0 = *pIndices++;
indx1 = *pIndices++;
indx2 = *pIndices++;

v1.x = (pVertices+indx0)->x;
v1.y = (pVertices+indx0)->y;
v1.z = (pVertices+indx0)->z;

※以下v2,v3はindx0をindx1とindx2にする。

525 名前:名前は開発中のものです。 :03/02/06 00:14 ID:PXQKBNV4
>>524
CloneMeshFVF()


526 名前:名前は開発中のものです。 :03/02/06 00:18 ID:h7fxXUIR
DirectXで文字列を描画するのにCreateFontを使っているのですが
文字の出来栄え(?)がよく見えません…。
もっと自然に見せるのはどうしたらいいですか?

527 名前:名前は開発中のものです。 :03/02/06 00:48 ID:XOPRT3wt
暇なお方!このサイトをガンガン荒らしてください!
変態がイパーイいるサイトでつ!ヨロシク!!

http://homepage2.nifty.com/tikan/

528 名前:名前は開発中のものです。 :03/02/06 02:03 ID:uf/6vI/u
最近、エイジオブミソロジーをやったのですが
あのゲームの海岸の処理が綺麗でちょっと興味が…。
あれって具体的にどうやってるんでしょうかね?
海岸線を記憶しておいて、半透明テクスチャを多重に重ねてるだけ?

529 名前:あぼーん :あぼーん
あぼーん

530 名前:497 508 :03/02/06 10:37 ID:GRrNUBHf
何とか解決しました、ありがとうございました。

そう言えば、色々な所でD3DRS_LIGHTINGは重いので自前で計算するというのを見かけるのですが。
どれくらい違ってくるのでしょうか。
また、自前で計算するとすれば頂点から光源までのベクトルと、法線ベクトルとの角度が
大きくなるにつれ、頂点色を黒に近づければ良いのでしょうか?

531 名前:あぼーん :あぼーん
あぼーん

532 名前:あぼーん :あぼーん
あぼーん

533 名前:あぼーん :あぼーん
あぼーん

534 名前:あぼーん :あぼーん
あぼーん

535 名前:あぼーん :あぼーん
あぼーん

536 名前:名前は開発中のものです。 :03/02/06 20:32 ID:pjoIkZid
>>528
あー、AoMの表現は繊細やねー。
2Dエンジンの頃の「味」を3Dエンジンで再現してやろう
みたいな開発者の姿勢に惚れたよ。
 
海岸線の技法はごく普通の頂点α&テクスチャUVのアニメーションの
マルチパスレンダリングかと思われ。

537 名前:名前は開発中のものです。 :03/02/06 23:47 ID:uf/6vI/u
>>536
なるほど。テクスチャアニメーションですか。
海岸線を割り出すのが面倒そうですが、
理論的にはできそうですね。ちょっと試してみますw

538 名前:名前は開発中のものです。 :03/02/07 00:42 ID:WYEzYilN
>>530
>そう言えば、色々な所でD3DRS_LIGHTINGは重いので自前で計算するというのを見かけるのですが。
点光源や複数光源は確かに重いですね
光源計算を自前ってシェーダーでってことでしょう
でもVertexShaderをソフトウェア処理すればもちろん重いです
まぁ点光源を使わず平行光源1〜2個程度なら重くはないと思いますが…

539 名前:名前は開発中のものです。 :03/02/07 02:13 ID:cVuOSA76
重いか?
てか、そいつらちゃんとライトのクリッピングしてるのかな?
単純に考えて描画されない範囲はライトの計算はない。
さらにその中でライトの影響があるものに絞れるわけだから結構糞みたいなもんだと思うのだが。
そうでもない?

540 名前:あぼーん :あぼーん
あぼーん

541 名前:名前は開発中のものです。 :03/02/07 02:54 ID:vOLsbN51
シェーダってなんですか?
自前で作るシェーダってどういうことですか?

542 名前:名前は開発中のものです。 :03/02/07 03:47 ID:d8M6ISnC
>>541
http://www.google.com/search?q=%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%80

543 名前:名前は開発中のものです。 :03/02/07 05:01 ID:q+CKg/Cp
DirectX8.1 SDKを使ってゲーム開発を行っているのですが、
フルスクリーンにした際にメニューバーが見えてしまうのでメニューバーを隠したい
のですが、メニューバーを隠すにはどうしたらいいですか?

544 名前:名前は開発中のものです。 :03/02/07 05:55 ID:XjdSy754
>>543
SDKのサンプルを見ろ。HMENUで検索すればすぐ見つかるよ。

545 名前:あぼーん :あぼーん
あぼーん

546 名前:あぼーん :あぼーん
あぼーん

547 名前:名前は開発中のものです。 :03/02/07 13:52 ID:q7wZvQmW
>>530 >>538-539
そこそこ新しいグラボだったらそんなに重くない気がする
>>530の言ってるのがどんな方法かわからんのだが
>>538の言ってる方法は古いグラボと新しいグラボの差を広げるので
使いにくいのではないかなぁ。
光源固定の場合にはマップなど動かないオブジェクトのライティングも固定なので
最初に一回だけ計算しておいてライティング済頂点として描画、
という方法なら、状況によってはそこそこ速くなるんでない?

548 名前:530 :03/02/08 00:16 ID:r5v2mdj8
アドバイスありがとうございます。
今使っているのは、平行光源とAMBIENT(全体の明度?)なので大丈夫そうですね。

549 名前:あぼーん :あぼーん
あぼーん

550 名前:530 :03/02/08 05:53 ID:tP3Uar1n
現在製作中(とは言ってもいろいろと実験しながらですが・・・)のゲームは、
フルスクリーン動作を前提に作っているのですが。
マウスカーソルを画面上の方に持っていくとタイトルバーに常駐するアプリが、
表示はされていないのですが反応してしまいます。

市販のゲームではこう言う現象は起きないのですが、どうやって回避すれば良いのでしょうか?
詳しい方ご教授お願いします。

551 名前:530 550 :03/02/08 06:07 ID:tP3Uar1n
連続書き込みすみません。
ちなみに、問題のアプリはコレです。

http://www.vector.co.jp/vpack/browse/pickup/pw4/pw004591.html

552 名前:名前は開発中のものです。 :03/02/08 07:55 ID:wHa+Kz3S
タイトルバー無くせば?

553 名前:名前は開発中のものです。 :03/02/08 08:29 ID:vaToSwV1
一旦終了させれば?

554 名前:名前は開発中のものです。 :03/02/08 08:30 ID:kW0mtyec

ウィンドウスタイル = WS_POPUP

分からないところが出る度にこうやって聞きにくるつもりかな?
自分で調べる力がないとゲームを作る上で大きな障害になるぞ。

555 名前:Newbie :03/02/08 10:54 ID:tP3Uar1n
ありがとうございました。解決しました。
WS_POPUPでは無理だったので、ウィンドウを生成する直前で

long nStyle = GetWindowLong ( hWnd, GWL_STYLE );
nStyle &= ~WS_BORDER;
SetWindowLong ( hWnd, GWL_STYLE, nStyle );
SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);

としたところ、上手くいきました。

>>554
googleでいろいろ検索しているのですが、情報があまりにも少なかったり
いろいろな方法があったりと、ここで聞くと最良の方法がわかりそうで
ついつい質問してしまいます。
頑張って質問は3日に一回くらいにします。

と言うかコテハンにします(・∀・ )

556 名前:名前は開発中のものです。 :03/02/08 14:25 ID:kW0mtyec
>>555
ウィンドウ位置 = CW_USEDEFAULT

これまで書かなきゃいかんかったのかな。
あと行数多い上にWS_BORDERは必要ないぞ。
前の質問も見てみたけど、ポインタの意味も理解できてないようだから
ttp://www.kumei.ne.jp/c_lang/
ここを紹介しておく。よ〜く理解を深めてからDirectXを始めるといい。

557 名前:Newbie :03/02/08 18:29 ID:Lgzi6Y2E
いろいろ試したところ、
SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
だけでいけるようです。

WS_POPUP等は真っ先に試したのですがだめでした。
どうやら、Direct3Dデバイスを初期化した後にクライアント領域を上書きする
必要があるようです。


558 名前:名前は開発中のものです。 :03/02/08 19:03 ID:RpJY5FZv
WS_EX_TOPMOSTとかSetCapture関数とかは?


559 名前:名前は開発中のものです。 :03/02/08 19:35 ID:kW0mtyec
>>557
??? ちょっとソース見せてみ。

560 名前:Newbie :03/02/09 02:21 ID:h8vA8e3L
>>559
こんな感じです。一応ウィンドウモードに切り替えることも考慮してます。

RECT rect;
SetRect(&rect, 0, 0, WIDTH, HEIGHT);
DWORD style = (FULLSCREEN) ? WS_POPUP :(WS_CAPTION|WS_SYSMENU|WS_BORDER|WS_MINIMIZEBOX);
AdjustWindowRect(&rect, style, FALSE);
int width = rect.right - rect.left;
int height = rect.bottom - rect.top;

WNDCLASS wc;
ZeroMemory(&wc, sizeof(WNDCLASS));
wc.hbrBackground= (HBRUSH)GetStockObject(BLACK_BRUSH);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hInstance = hInst;
wc.lpfnWndProc= MsgProc;
wc.lpszClassName= CAPTION;
if(RegisterClass(&wc) == 0) return 0;

HWND hWnd = CreateWindow(CAPTION,CAPTION,style,CW_USEDEFAULT,CW_USEDEFAULT,width,height,NULL,NULL,hInst,NULL);
if(hWnd == NULL) return 0;

if(FAILED(InitD3D(hWnd))){return 0;}

if(FULLSCREEN)
{
SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
}
ImmAssociateContext(hWnd,0);
ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);

561 名前:名前は開発中のものです。 :03/02/09 07:50 ID:JOf4tO9W
>>560
環境は?DXバージョン、OSとグラフィックカード、メモリ容量も書いて。

562 名前:名前は開発中のものです。 :03/02/09 09:18 ID:fW4IKGf/
DX9だと、どんなウィンドウの設定にしてもキレイにフルスクリーンになるみたいよ。
あとはアホな組み方してもCPU使用率が100%にならないんだけど」ウチだけ?
デフォルトでPresentにSleepが入るようになったんかな。
自前で制御してるからいらんのだが、無効にするやり方がわからん・・・
まぁ特に害は無いから良いんだけど。

563 名前:名前は開発中のものです。 :03/02/09 10:05 ID:EhDX4MWW
>>562
それだけで9に移行したくなった、へたれグラマがここに…

564 名前:名前は開発中のものです。 :03/02/09 16:56 ID:3OGaUPxJ
GFTi4200 + Athlon2200+XPでも遅いな。遅すぎる。もっと早くなれ。

565 名前:名前は開発中のものです。 :03/02/09 17:05 ID:uxVt/yIf
アルゴリズムが悪いとかじゃなくて?

566 名前:名前は開発中のものです。 :03/02/09 17:12 ID:3OGaUPxJ
そうかな。
アニメーションする700ポリぐらいのXファイルを10個ばかり連続して描いたら遅くなるんだが。

567 名前:名前は開発中のものです。 :03/02/09 19:51 ID:QY+T3Yh8
アルゴリズム(=お前の書いたソース)が悪いな、それは。

568 名前:名前は開発中のものです。 :03/02/09 20:10 ID:nYwSnCHE
俺もそう断言しとく。

569 名前:Newbie :03/02/09 20:28 ID:l8jF+XK3
>>561
環境は、
DirectX8, OS Win2000pro , CPU P4 1.6Ghz, RAM ddr512MB, VideoCard Radeon9000pro, VRAM 128MB です。

>>562
9に移行したくなりますた。
でも、とりあえず8で基本押さえて一本完成させてからにします。

検索しても見つからなかったので、ここで質問させて下さい。
現在建物との当たり判定は、自キャラから一定距離以内のモデルの全面検索(一応いろいろ絞り込んでますが)
で取っているのですが。
フレーム毎に頂点バッファをロックして頂点座標を取得するのと、
マップを作るときに予め頂点座標のみ取得しておき、それを使うのではどちらが良いのでしょうか。
ロックアンロックは重いというのをちらほら見かけたし、予め格納するなら結構無駄にメモリを食いそうで悩んでます。

570 名前:名前は開発中のものです。 :03/02/09 20:30 ID:yUWb7xod
何も考えずにそうやったらそれくらいで頭打ちになるよ。
テクスチャ等の切り替え回数を減らすとか工夫しないと。

571 名前:名前は開発中のものです。 :03/02/09 21:08 ID:JOf4tO9W
>>569
Windows98SE AthlonXP1500+DDR512MB+GFMX400(VRAM64MB) DirectX8.1では
正常に表示されるんだがな。win2000では無理って事か。ふむふむ・・・。

>フレーム毎に頂点バッファをロックして頂点座標を取得するのと、
>マップを作るときに予め頂点座標のみ取得しておき、
>それを使うのではどちらが良いのでしょうか。

どちらがいいでしょうか、ってそりゃソフトの使い道や環境によって自分で決めれば
いいことだろう。必ずこっち、という解答があるわけではない。
>>569の環境だとグラフィックカードがよさげなのでバッファロックも特に問題なさそう
だが、速度重視ならソフトでバッファを持てばいい。建物(直方体)ならそれほどメモリ
を食わないので普通ゲームを作る場合はこちらの方法で速度を上げる。
あと分かってないみたいだが当たり判定というのはあらかじめバウンでィングボックス(もしくは球)
を作ってそれを使い衝突判定をする。いちいち全部の頂点・面を判定に使用するのは
地形接触判定以外ではやらない。オブジェクトごとにそんな事をしていたらロック無しでも
アホみたいに遅くなる。バウンディングボックスという言葉は分かるよな?


572 名前:名前は開発中のものです。 :03/02/09 21:08 ID:0kXKwYwr
>>569
よほど複雑だったり数が多くなければ、後者ならそんなにメモリ食わないと思うけど。
計算してみた?

573 名前:Newbie :03/02/09 22:08 ID:l8jF+XK3
アドバイスありがとうございます。
>>570
計算してみます・・・

>>571
バウンディングボックスは最初考えていたのですが、家の中に入ったり家の中の
階段を上ったりするので。家の中をどうするかを考える時点で挫折しますた・・・
全面検索だと、この辺は簡単にいけるのですが。

>>572
建物はかなりローポリで作ってテクスチャでごまかしてます。
今のところ小さい家で、頂点数118(GetNumVerticesで取った値)
2階建ての家で390くらいなので、恐らくこれから追加するモデルも500は越えないと思います。

人やモンスター等、複雑な形状になる物体には周りにエフェクト貼り付け用の透明な六角柱を用意して
それと当たり判定を取る予定です。

574 名前:名前は開発中のものです。 :03/02/09 22:34 ID:JOf4tO9W
>>573
>バウンディングボックスは最初考えていたのですが、家の中に入ったり家の中の
>階段を上ったりするので。家の中をどうするかを考える時点で挫折しますた・・・
>全面検索だと、この辺は簡単にいけるのですが。

クリッピングもできないみたいだな・・・。ポインタもよく分からないのだから
この辺が限界か。ま、頑張れ。


575 名前:Newbie :03/02/09 23:10 ID:l8jF+XK3
>>574
クリッピングはバウンディングボックス使ってスクリーン座標から8頂点全部
はみ出したら描画しないようにしているのですが、ダメなのでしょうか・・・

576 名前:名前は開発中のものです。 :03/02/09 23:25 ID:JOf4tO9W
>>575
笑 家のモデルはたしか頂点数118の単一モデルだったよな?
家の中もそのモデル内に作ってあるとすればお前の仕様だと家に入ると家の内部を
いちいち全て描画することになる。
家の外装と内装(部屋、廊下、ドア、階段、壁)をそれぞれ
家のオブジェクト内に存在する子オブジェクトとして持てば描画範囲からあたり判定、
個別の仕様変更にも耐える設計となる。無論自作エディタも必要になってくるがな。
まぁ、ちいちゃい箱庭作って遊んでる程度なら気にしなくてもいいよw。

577 名前:名前は開発中のものです。 :03/02/09 23:35 ID:fW4IKGf/
>>Newbie
こんなことを言ってしまうと元も子もないが、はっきり言ってどうでもいい。
メモリを鬼のように食おうが泣けるほど重かろうが、とにかくまず動くものを。
今のおまいの話は完成後(ここ肝心)に速度その他に疑問をもったら聞きに来ればいい。
迷わず進めでFA。

578 名前:Newbie :03/02/09 23:37 ID:d++7OTj6
>>576
なるほど、かなり参考になります。
そうなった場合、いかにバウンディングボックスを作るかが問題になりますね。
まだLightWaveではき出したXファイルをメッシュ単位で描画している程度なので、
そのレベルまでの道のりは遠そうです・・・

連続投稿規制はじめて食らいますた・(ノД`)・゜

579 名前:Newbie :03/02/09 23:39 ID:d++7OTj6
>>577
はい、とりあえずいろいろ割り切って進めてみます。


580 名前:名前は開発中のものです。 :03/02/10 00:15 ID:iTDKJLi8
>>573
>>バウンディングボックスは最初考えていたのですが、家の中に入ったり家の
>>中の階段を上ったりするので
普通は別にコリジョン用のモデルを準備しとく
家ならさらにローポリで単純な形のモデル
表示しないのでテクスチャ、マテリアル、頂点カラーも不要
メモリも表示用モデルに比べれば小さくてすむし

581 名前:名前は開発中のものです。 :03/02/10 00:20 ID:Pol7gVJ3
>>577
いいこというねぇ。
とりあえず動くものができてからだよね。

582 名前:DirectPlay :03/02/10 02:44 ID:Oiatng7o
DirectPlayで、ロビーサーバーを使用しない接続で、
「セッションの場所」という、接続を検出する先のホストを入力するためのダイアログボックスが、
自動的に起動してしまうのですが、これは、ロビーに対応しないでは抑制するのは不可能なのでしょうか?

また、擬似的でもなんでもいいので、見えなくする、とか、なんでも方法を知っている方がいらっしゃいましたらご教授くださいまし。。


583 名前:名前は開発中のものです。 :03/02/10 02:54 ID:h4+lH33U
点の可視判定をどう実装しようか迷ってます。
カメラ座標系の行列mCamera,透視座標系の行列mPersを
DirectXにある演算でD3DXMATRIXとして作って
点の座標をD3DVECTOR3型のpointで宣言して

pointDst=point*mCamera*mPers;
としたときに、その点がx[-1,1] y[-1,1] z[0,1]の
中に入っていなかったらその点は見えないと言えるのでしょうか?

実際には、8X8の64ボックスのエリアからなる街を効率よく
レンダリングするために、4分木にして可視判定を行っていこうと
おもっています。上記のことで正しいならば、実行半径と軸にして
それを行おうと思っているのですがどうなんでしょうか?


584 名前:あぼーん :あぼーん
あぼーん

585 名前:名前は開発中のものです。 :03/02/10 18:45 ID:hZsKS2a4
>>582
オレがいじってたのはDirectX5のトキなのだが、
そんときはダイアログ無しでアプリ側から「TCP/IPでホストになる」とか
「123.45.56.78に接続」とかできたよ。当然今のバージョンでもできるはず。
でもやりかたほとんど覚えてない。
ダイアログから得られる情報を使って次の接続処理をしていると思うのだが、
その情報を自前で生成して接続する...ってカンジだったよーな...
スマソ。いろいろ調べてみてくれ

586 名前:名前は開発中のものです。 :03/02/10 20:30 ID:nRuciNwT
NT系で動いたDirectPlayのソースが9x系で動かないです。

クラサバからピアのセッションを張るときに
コールバック内からいろんな処理やったのがまずかったのかも

クラサバとピアのセッションって同時に張れますよね?

もう一度ちゃんとしたコードで書き直そうと思っているんですが
原因も知りたいので、知ってる人いたら教えて欲しいです。

リファレンスにある
「DirectPlay では、Windows 2000 上で動作するときに I/O 完了ポートを使用する。」
↑これよくわかんないんですが関係ありますか?


587 名前:名前は開発中のものです。 :03/02/10 22:00 ID:umxyvTXI
>>586
どこでエラー起こってるか書いてみ

588 名前:586 :03/02/10 22:36 ID:nRuciNwT
エラーというより反応がないんです。

9xのコールバックがマルチスレッドじゃないとしたら
そんな動きかな?って感じでした。


589 名前:名前は開発中のものです。 :03/02/10 23:24 ID:hzpYDER/
DirectPlayよくしらんが、コールバックではフラグを立てるとか
Eventをシグナルするとかメッセージを投げるとかそれくらいに
しといたほうがいい気がする。

590 名前:名前は開発中のものです。 :03/02/11 01:27 ID:u2o+UQ0a
質問です。
DirectPlay8の PeerToPeerで
接続している プレイヤーすべてのDPNIDは取得できるのですが
起動させている自分自身のDPNIDはどうやって特定するのでしょうか?



591 名前:あぼーん :あぼーん
あぼーん

592 名前:名前は開発中のものです。 :03/02/11 06:28 ID:KQOMDYQi
>>569
その環境でその負荷は、ありえないよ。
コリジョンつっても、数が全然少ない。
(とりあえず、CPU使用率確認すべし。表示とアニメだけなら、
CPU使用率5%以下の筈。全部HWなら)

多分、小さい頂点バッファを沢山描画してると思うんだが?
ストールしまくるよ。


593 名前:Newbie :03/02/11 13:29 ID:ANuI3/is
>>580
アドバイスありがとうございます。
なるほど。参考になりますた。

>>583
D3DXVec3Projectという便利なモノがあります。
範囲はD3DVIEWPORT8で宣言した値で決まります。

>>592
566さんへのレスでしょうか?
俺の方は今のところ可視範囲を家で埋め尽くしても全然軽いです。
この先アニメーション付きの人物とか追加していくと不安ですが・・・

594 名前:あぼーん :あぼーん
あぼーん

595 名前:1/2 :03/02/11 18:44 ID:iYhjkWBr
Win2000SP3 DirectX8.1 GeForce2MX VC++6.0SP5

640*480の画面いっぱいに同サイズのbmpファイルを表示させようとしてるんですが、
ぼやけてしまうのはなぜでしょうか?(表示はできてるんですが)


#define FVF_CUSTOM (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)
struct CUSTOMVERTEX
{
    FLOAT x, y, z, rhw;
    DWORD color;
    FLOAT tu, tv;
};

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

596 名前:名前は開発中のものです。 :03/02/11 18:44 ID:iYhjkWBr

m_vtx[0].x = -0.5f;m_vtx[0].y = -0.5f;m_vtx[0].z = 0.0f;
m_vtx[1].x = 639.5f;m_vtx[1].y = -0.5f;m_vtx[1].z = 0.0f;
m_vtx[2].x = 639.5f;m_vtx[2].y = 479.5f;m_vtx[2].z = 0.0f;
m_vtx[3].x = -0.5f;m_vtx[3].y = 479.5f;m_vtx[3].z = 0.0f;
m_vtx[0].rhw = 0.5f;m_vtx[0].color = 0xffffffff;
m_vtx[1].rhw = 0.5f;m_vtx[1].color = 0xffffffff;
m_vtx[2].rhw = 0.5f;m_vtx[2].color = 0xffffffff;
m_vtx[3].rhw = 0.5f;m_vtx[3].color = 0xffffffff;
m_vtx[0].tu = 0.0f;m_vtx[0].tv = 0.0f;
m_vtx[1].tu = 1.0f;m_vtx[1].tv = 0.0f;
m_vtx[2].tu = 1.0f;m_vtx[2].tv = 1.0f;
m_vtx[3].tu = 0.0f;m_vtx[3].tv = 1.0f;

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

m_pd3dDevice->SetVertexShader(FVF_CUSTOM);
m_pd3dDevice->SetTexture(0, m_pTexture);
m_pd3dDevice->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, m_vtx, sizeof(CUSTOMVERTEX));

597 名前:3/2 :03/02/11 18:46 ID:iYhjkWBr
他の環境ないので試せませんが、ビデオカードの仕様だったら泣いてさしあげます

598 名前:名前は開発中のものです。 :03/02/11 19:03 ID:oc2BIV/D
640x480のテクスチャって作れたっけ?
1024x512のが拡大縮小されてる余寒。

599 名前:名前は開発中のものです。 :03/02/11 19:19 ID:iYhjkWBr
>>598
内部的には1024*512作ってるので、どうしてもぼやけてしまうんでしょうか?

600 名前:名前は開発中のものです。 :03/02/11 19:37 ID:oc2BIV/D
うは、そりゃボケるべ。
1024x512の、640x480の部分(たとえば左上)にBMPを転送して、
テクスチャの頂点位置を調節しろ。

601 名前:_ :03/02/11 19:40 ID:jSG2fsEs
>>596

for(i=0;i<4;i++)
{
m_vtx[i].x-=0.5f;
m_vtx[i].y-=0.5f;
}

たぶん、描画前これを入れるとうまく行くと思う。


602 名前:_ :03/02/11 19:42 ID:jSG2fsEs
すまん。すでに、0.5f引いてたのね…

603 名前:595 :03/02/11 19:57 ID:WEOw/ne+
>>600
だよね、640*480なんてありえないよね。
D3DXCreateTextureFromFileでおかしな大きさのテクスチャでも作れてたから、
それをそのまんま使ってた。
512*512で試したらボケもなく表示されました。
お騒がせしました。

ああ、ボケてるのは画像じゃなくて自分の頭だ……
メシ食って歯磨いてオナニして風呂入って寝よう。

604 名前:あぼーん :あぼーん
あぼーん

605 名前:名前は開発中のものです。 :03/02/11 21:53 ID:XJp4wK9H
>>595
D3DXのテクスチャ作成サポート関数で画像をロードすると、
デフォルトではサイズを2の階乗に合わせてフィルタリングを行います。
読み込みの際にフィルタリング設定でD3DX_FILTER_NONEを設定して、
頂点のuvに(imgが640*480 テクスチャが1024*512として)
u = 0.625; v = 0.9375;
と入れれば正常に描画できると思いますよ。

>メシ食って歯磨いてオナニして風呂入って寝よう。
メシ食ったら風呂場で歯磨いてオナニすればよかろう…
って人生も最適化始めたら人間おしまいよね(笑)

606 名前:名前は開発中のものです。 :03/02/12 03:03 ID:1pSK5fDw
DirectInput8を使用しているのですが、ジョイスティックを接続して、
ジョイスティックからの入力を受け取ろうとプログラムを実行すると、
ある特定のキーが押しっぱなしになった状態で起動しまうと何件か
報告されました。

自分の環境ではないので(自分の環境では大丈夫でした)、デバッグを
することが難しいのですが、どのへんがあやしそうかを教えてください。
ちなみに、起動時に何もキーなどは押していないそうです。

607 名前:あぼーん :あぼーん
あぼーん

608 名前:名前は開発中のものです。 :03/02/12 03:34 ID:0lnWkCvL
>>606
「ある特定のキー」ってのが十字キーなら、少し遊びを持たせてみるとか。

609 名前:名前は開発中のものです。 :03/02/12 03:38 ID:eRbhd0f3
>>606
> どのへんがあやしそうかを教えてください。

方向キー押しっぱなしなら一回以上キャリブレーションを行う。
homeキーに割り当てる、という手もある。で、怪しいと思ったときにユーザが押す。
いや、これはどの解説書にも書いてあることだから
98%すでにキャリブレーションを行っていると思いますが…。

あとはユーザの環境に問題があるケース。
ジョイスティック関連は自分の環境をアプリケーションのせいにする輩が
非常に多いことで有名なので…。
「パッド付属のユーティリティで正しく設定しろ」以上の対処法は無い。

610 名前:名前は開発中のものです。 :03/02/12 04:30 ID:ghj8DsVG
コントロールパネルで パッドの設定が正しくできてないぐらいしか
おもいつかん


611 名前:DirectX 9.1 to be introduced at GDC 2003 :03/02/12 07:32 ID:WFauWlhs
http://www.theinquirer.net/?article=7721


612 名前:DirectX9.1!! :03/02/12 11:28 ID:Mvenkz0O
DirectX9.1!!

613 名前:名前は開発中のものです。 :03/02/12 11:38 ID:aUdjBjb9
コンパネで調整してもニュートラル位置が安定しないパッドはあったよ。
十字キーを押した状態を1.0の強さとすれば、押してなくとも 0.3くらい偏ってるような糞パッド。
入力の遊びを大きくとるしかない。


614 名前:名前は開発中のものです。 :03/02/12 14:43 ID:zfh0sZJ7
糞というか、サウンドカードのゲームポートを使用するコントローラの
場合は細かく位置を特定することが不可能なんでしょうがないかと。
(サイドワインダーのようなデジタル接続の物は別)

615 名前:あぼーん :あぼーん
あぼーん

616 名前:名前は開発中のものです。 :03/02/12 16:10 ID:HUarmbXk
>>613
いくつかプレステのパッドをつなぐコンバータを持ってるが、
海外の輸入物はほんとに駄目なものが多いよ。
ニュートラルでも動く動く。即効ゴミ行きさ。

少々高くても日本でパッケージされている程のものはまず大丈夫の模様。

617 名前:616 :03/02/12 16:11 ID:HUarmbXk
俺のはUSB接続の物の話ね

618 名前:名前は開発中のものです。 :03/02/12 17:32 ID:Auvbtkqn
スマートジョイパッドがダメダメなのを確認しますた(他の安物も同じだった)
ひょっとして変換機じゃなくてPSコントローラのほうがダメなんじゃないかと

619 名前:名前は開発中のものです。 :03/02/12 17:46 ID:wldWHlKz
>>618
どうだろうね。
PSのコントローラー自体が判定シビアなんじゃない?
デュアルショックで試したけど、思いっきり倒して元に戻すと±0.1位残ることもある。
(もちろんうまくやれば0になる。)
だから俺は>>613のように遊びを作って調整してる。

620 名前:あぼーん :あぼーん
あぼーん

621 名前:616 :03/02/13 00:07 ID:o+He/HHX
うちにスマートジョイパッド3が二つばかりあるけど、
十字キーはデフォルトで特に問題なし。
アナログは確かに少しずれてる。ブルブルするってことはさすがにない。
キャリブレートすると十字キーの方に影響出るから結局やってないや。
いやまあアナログは使わないから別にいいけど。

622 名前:名前は開発中のものです。 :03/02/13 01:56 ID:vSad8oY+
スマートジョイパッド3+DUALSHOCK2(PS2のコントローラー)使ってますが、十字キー
大丈夫です。スティックはずれてますが、デッドゾーン指定すれば問題ないみたいです。

クラスを3段階に定義しており、
#include"cb.h"
class CA{
CB cb;
};

#include "cc.h"
class CB{
CC cc;
};

class CC{
};

とインクルードファイルを3つに分けているのですが、ビルドすると
error C2011 class型の再定義と出てしまうのですが、これは何なのでしょうか?

623 名前:名前は開発中のものです。 :03/02/13 04:29 ID:blhLE+oa
>>622
なんだかよくわかんない。
どこかでinclude間違ってんじゃない?

624 名前:名前は開発中のものです。 :03/02/13 06:58 ID:YY2ER2Mm
>>622
漏れ全く同じ使い方してる。プリプロセッサに再定義させない指定してるけど。
cc.hなら例えば

#ifndef __CC_H__
#define __CC_H__
〜ヘッダの内容〜
#endif

多分これで回避できると思う。


625 名前:名前は開発中のものです。 :03/02/13 18:55 ID:c9ym2P+W
アドバイスどうもです。解決しました。
クラスCBのメソッドを収容してあるファイル
cb.cpp
の最初に
#include"cc.h"
と書いてしまったため、まさしく再定義されたようでした。

626 名前:名前は開発中のものです。 :03/02/13 21:57 ID:T2BpaXoT
DirectX 8と9、両方のDirectPlayに携わった方、よろしければ質問お願いします。

DirectPlay8から9にかけて、たとえばDirect3DからDirectGraphicsに
移行したときの様な、大幅な変更はありましたでしょうか。
また、少々無理してでも9の方を学ぶべき、理由などございますでしょうか。

障害として、9のsdkを入れると、動かなくなるアプリがある事情がありまして…。
初歩的な質問で恐縮ですが、よろしくお願いします。

627 名前:あぼーん :あぼーん
あぼーん

628 名前:名前は開発中のものです。 :03/02/14 00:25 ID:xilLUCvM
DirectInput8でキャリブレーションをする関数を教えてください。
キャリブレーションで調べても全然見つからない…
他のキーワードかなんかあるんですか?

629 名前:名前は開発中のものです。 :03/02/14 00:29 ID:T9kWfjsm
VC++ & DirectInput8を使っていて、
パッドの数を取得して、
0〜複数を自動で認識したいんですが、
流れとしてはどうやるんでしょうか?

とりあえず、パッド一個を動かす事はできています。



VB+DirectX7の時は
Set EnumDevice = DInput.GetDIEnumDevices(DIDEVTYPE_JOYSTICK, DIEDFL_ALLDEVICES)
で、EnumDev.GetCountに何個パッドがあるか出てきて、

Set PadDeviceInfo(i) = EnumDev.GetItem(i + 1)
Set PadDevice(i) = DInput.CreateDevice(PadDeviceInfo(i).GetGuidInstance)
で、一個ずつ割り当てていったんですが・・・

630 名前:あぼーん :あぼーん
あぼーん

631 名前:名前は開発中のものです。 :03/02/14 01:37 ID:s/e0+1Mp
>>628
そんな関数無かったと思うけど…
ジョイスティックのセンタ合わせなどはその製品のドライバ、ツールがやるべきことで
アプリケーションの仕事ではないでしょう。

それとも絶対座標軸で正確な中心を取る方法とかいう話ですか?
どうしてもというなら相対座標で受け取れば、なんとかなる場合もあるんじゃないでしょうか?

>>629
……一つ作成できてるなら、それと同じ方法を繰り返すだけでよくないですか?
列挙した時にGUIDが入った構造体が与えられるので、それに使って作成していけばよいはずです。

マニュアルのようにインターフェイスをグローバルで与えたくなければ、
列挙する時にLPVOID型の転送用の引数がありますので、
そこにインターフェイスを与えればよいと思いますよ。

632 名前:629 :03/02/14 01:59 ID:T9kWfjsm
>>631
回答\(・∀・)/ アリガトン

使用するコールバック関数がイマイチ分かってませんでした。
取得に成功したら、DIENUM_STOPを返してて、次に行かないようになってました。
忠告されるまでLPVOID型の引数を無視してました。(笑)
これを使ってもう少しいいように作ってみます。

ためになりました。

633 名前:626 :03/02/14 02:04 ID:e3XCNwxz
くぅ、小粋なPlayBoyはいらっしゃらないのか(´Д⊂
もう一度上げさせてください

634 名前:名前は開発中のものです。 :03/02/14 02:39 ID:63yL1klM
>>633
わずかな機能追加とバグフィクスが変更の中心です。
大きな変更はありません。

635 名前:あぼーん :あぼーん
あぼーん

636 名前:名前は開発中のものです。 :03/02/14 03:02 ID:e3XCNwxz
>>634
ありがとうございます!おかげで心おきなく8Playの猛勉強開始できます。
これで安心して眠れます…本当に感謝です。

今日はきっとあなたの日ですよ(*´Д`)ノ◆パッ

637 名前:名前は開発中のものです。 :03/02/14 08:02 ID:+4PY8YS3
>>628
>>631の言うとおり、アプリ側でやることじゃないと思う。
もしやるなら、うんこハード、ドライバ用に十字キーの閾値の設定くらいかな。

638 名前:名前は開発中のものです。 :03/02/14 19:24 ID:tJTzQwc9
変換行列で、頂点座標を変換するにはどうやって計算しますか?
要するに、変換後の頂点座標が取得したいのですけど・・

639 名前:名前は開発中のものです。 :03/02/14 20:36 ID:DzHm3TpR
>>638
pD3DDevice->SetTransform(D3DTS_WORLDMATRIX(0),&Matrix);
のMatrixを保存しておいて、変換後の座標が必要なときに
座標に掛けてあげればOK。


640 名前:名前は開発中のものです。 :03/02/14 22:27 ID:FTji8okw
DirectX7で、描画先ウィンドウを変えたいんだけど
8以降にある Presentに渡すウィンドウハンドル見たいに
途中で転送先ウィンドウを変えたいんだけど・・・
7では無理ですか?

641 名前:638 :03/02/14 22:33 ID:fnvvsKQl
>>639
レスどうも。

頂点座標にマトリクスの各配列を
どういう形で掛ければ良いのですか?
検索でも出てこないもので・・

642 名前:名前は開発中のものです。 :03/02/14 23:01 ID:DzHm3TpR
>>641
D3DXVec3TransformCoord関数で一発
あんまり難しく考えないようにね

643 名前:638 :03/02/14 23:50 ID:NpYIeDIA
>>642
そいった物が・・
さっそく使ってみます〜 どうも〜

644 名前:あぼーん :あぼーん
あぼーん

645 名前:名前は開発中のものです。 :03/02/15 02:42 ID:iI0jLvcO
Direct3D8を使ってるんですけど、
現在フレーム毎に、全部描き直してますが、
DirectDrawで別のSurfaceに書き残すみたいに、
描画した情報をどこか他のものに残す事はできないでしょうか?
IDirect3DDevice8::CreateImageSurface()なるものはあるようなのですが、
これも作っただけで、どう使えばいいか分かりません・・・

646 名前:名前は開発中のものです。 :03/02/15 03:14 ID:ruB4cEsX
ジョイスティックの遊びを設定できるようにしたいのですが、
あの遊びの値というのは、一般的に使われている式があるのですか?

なんか漏れが見たゲームの設定だと、1〜1000で設定できるように
なってたんだけど、これが一般的なのですが?

647 名前:名前は開発中のものです。 :03/02/15 03:25 ID:6ruvhBdO
>>645
8はよく知らないんだけどスワップチェインをFLIPじゃなくCOPYで
作成すればバックバッファには常にフロントと同じ内容が残るのでは?
要はWindowモード時と同じ処理。
D3DSWAPEFFECT_FLIP,D3DSWAPEFFECT_COPY<このへんがキーワードかな。

648 名前:あぼーん :あぼーん
あぼーん

649 名前:名前は開発中のものです。 :03/02/15 03:52 ID:7eiV5nPW
>>645
IDirect3DDevice8::SetRenderTarget はどうかな?
ちょっとズレてるかもしれんけど。

650 名前:名前は開発中のものです。 :03/02/15 04:20 ID:B2h4zgOk
━━━━━( ・∀・)=終)´Д`(了=(・∀・ )━━━━━

651 名前:名前は開発中のものです。 :03/02/15 04:29 ID:6ruvhBdO
>>646
1〜1000ってのはユーザーに判り易く変換してるだけだと思う。

652 名前:名前は開発中のものです。 :03/02/15 07:01 ID:ruB4cEsX
軸の傾きって、一番ひどいパッドでどれくらいずれてますか?

653 名前:名前は開発中のものです。 :03/02/15 07:03 ID:IQxlefuQ
>>645
それはスナップショット的な物が欲しいということ?
それだったらGetBackBuffer()でサーフェイスを取得しておいて、
レンダリングが終了してたときにCopyRectsで用意しておいたサーフェイスに
転送すれば、描画されたイメージを取得できるよ。


>>646
それはアプリケーションが決めればいい事ですよ。好きにやったらいい。
遊びって大体10%〜30%くらいじゃないのかな?

654 名前:名前は開発中のものです。 :03/02/15 09:35 ID:2CJAwmu6
>>643
おいおい、数学的処理や意味を知らずに使うのはマズイだろ。
簡単に
struct VECTOR
{
float x, y, z;//同時座標じゃなくても出来る
};

struct MATRIX
{
float _11, _12, _13, _14;
float _21, _22, _23, _24;
float _31, _32, _33, _32;
float _41, _42, _43, _44;
};

で、ベクトルと行列の掛け算はで得られる結果X1, Y1, Z1は
X1 = x*_11 + y*_21 + z*_31 + _41;
Y1 = x*_12 + y*_22 + z*_32 + _42;
Z1 = x*_13 + y*_23 + z*_33 + _43;
//左手系、ベクトル×行列の順で、同時座標でいうwは常に1を補うとする。

簡単だろ、各回転行列やなんかは分るだろ?
で、_41, _42, _43が平行移動成分ってのも。

655 名前:654 :03/02/15 09:40 ID:2CJAwmu6
タイプミス
>同時座標
同次座標

656 名前:638 :03/02/15 11:12 ID:7dXkqCa/
>>654
どうも、為になります。

確かに意味も分からずに作って行くと、
後で行き詰まるのは、目に見えてますが・・
どうしても、試したかった事がありまして。
D3DXなんかが有るので、3Dの知識が貧しくてもどうにかなっていたものでして。
一段落したら、3Dの勉強をじっくりしたいですねぇ。

657 名前:名前は開発中のものです。 :03/02/15 13:50 ID:a0UzeSQB
               ∧ ∧
              ( ̄ー ̄)
              (つ  つ
               ( ヽノ
               し(_)

         Now Thread Stoping. ...
         大変見苦しいスレでありました.
           スレストするまでお待ちください。。。ニヤリッ

658 名前:名前は開発中のものです。 :03/02/15 22:35 ID:v4BGs1G4
単純にD3DXVECTOR4で宣言した変数と
行列を
vec4=vec4*matrix;
って感じで頭の3つを取り出せば座標が出ますよね。


659 名前:名前は開発中のものです。 :03/02/16 01:52 ID:3xyVlE7Z
ウィンドウ内でゲームが動いている時、セーブとかオプションを変更する為に
右クリックしてポップアップメニューを出したいのですが、どのようにして出せばいいですか?
環境はVisualC++6.0、DirectXSDK8.1です。

660 名前:名前は開発中のものです。 :03/02/16 02:01 ID:82lNxtkf
 _、,_
(  _!_  )

661 名前:名前は開発中のものです。 :03/02/16 02:48 ID:uicgqHLM
なあ?
バンプマップはわかるんだが、ディスプレースメントマップってなんのためにあるの?
モデリングでつくっときゃいいじゃん

662 名前:名前は開発中のものです。 :03/02/16 03:14 ID:By3z7WHs
ttp://masafumi-t.cool.ne.jp/directx9/ready/ready02.htm

[スマートポインタ]
は、自動開放をしてくれるとの事で、早速使ってみたいのですが、
こちらのサイトからの情報だけではいまいち理解できまへんでした。

どこかにシンプルで簡単なサンプルコードはありませんか?
とりあえずIDirect3D9をスマーティ〜に作ってみたいのですが。
4〜5行で済むことなら直接書いていただくのもアリかな:-)






663 名前:名前は開発中のものです。 :03/02/16 03:33 ID:qivgoxYo
>>662
そこだけじゃなくて他のサイトも見て理解してください。

664 名前:名前は開発中のものです。 :03/02/16 03:34 ID:I55/V1zD
>>659
「猫でもわかるプログラミング」ってサイトにいろいろ詳しく
掲載されてるっぽ。検索してみれ。

665 名前:名前は開発中のものです。 :03/02/16 04:00 ID:ZVOz3UrZ
DirectXは、バージョンをあげても動くというのが建前ですよね。

しかし、実際には動かないゲームやアプリがあります。
うちのWinFastという古いアプリもそうですし、FFもそんな噂を聞きます。

これの原因は何なのでしょうか?
単にコードの冒頭でバージョンを定義してないせいとか…、
いやそんな単純じゃないですよねぇ…。よろしければご教授を。

666 名前:名前は開発中のものです。 :03/02/16 04:07 ID:I55/V1zD
ドライバやOSも関係してくるから一概に言えない

667 名前:名前は開発中のものです。 :03/02/16 04:08 ID:ZVOz3UrZ
>>666
ありがとうございます。ではコーディングする側としては
どうしようも無いんですね。ある意味ほっとしました。

668 名前:あぼーん :あぼーん
あぼーん

669 名前:名前は開発中のものです。 :03/02/16 05:24 ID:qivgoxYo
他にもOSの種類を9x系に限定したりとかが原因で動かなかったり。

670 名前:名前は開発中のものです。 :03/02/16 09:05 ID:8zpaisS3
>>661
例えば、バンプマップで表現した面を、ライティングで壁に影として映し出そうとした場合。
バンプだと描画のみなのでポリゴンの形の影になるが、
ディスプレースメントならポリゴンも変形してるので、その描画されている形の影が落ちる。

そんな感じか。

671 名前:名前は開発中のものです。 :03/02/16 10:06 ID:LdkrBz+N
DirectSound は同時に演奏できる数に制限はないんですよね。
WDMドライバの場合の WaveOut も同時演奏数に制限はないから、
結局 同時演奏数に制限が加わるのは vxdドライバで WaveOut を使ったときだけなんですね。


672 名前:名前は開発中のものです。 :03/02/16 11:19 ID:PYI2iM28
>>661
よくわからんけど、LODが実装しやすいんじゃなかろーか。

673 名前:名前は開発中のものです。 :03/02/16 11:29 ID:8GBF26gb
>>671
制限はある。CAPSをチェックしろ。

674 名前:名前は開発中のものです。 :03/02/16 11:52 ID:kG6Gu6Lz
>>661
何のために使うか分からなければ使わないでいいと思うよ。
使う時が来たら使えばいい。
だいたいDX9が一般に広がるのっていつの頃だよ……。来年?

675 名前:名前は開発中のものです。 :03/02/16 12:39 ID:U1Dr21mj
DirectX9が広まる心配などする必要ない。
問題は、DirectX9対応(というか使いたい機能を持った)ハードウェアがいつ広まるかだ。
前者はこちら側の対処でどうにでもなる。
後者は難しい。

676 名前:名前は開発中のものです。 :03/02/16 13:52 ID:kG6Gu6Lz
>>675
いや、そういう意味で言ったんだけどね。
だって俺もまだDX8世代のカードで我慢してるし。ゲームやる友達のパソコンも
酷い奴はまだDX7世代だもん。

1,2年前のメーカー品使ってる連中が買い替え始める時期がいつか……。

変な話、シェーダー3.0に完全対応したカードが出てくれないと
俺はビデオボード変えないかも(笑)

677 名前:名前は開発中のものです。 :03/02/16 14:45 ID:8GBF26gb
ん?ゲームする人の論理?

678 名前:あぼーん :あぼーん
あぼーん

679 名前:名前は開発中のものです。 :03/02/16 15:10 ID:lNvw3jDD
670-677レスありがとうございます。
なんか微妙な用途ですね。
地面につかうとでっぱったポリゴンがキャラにめり込むし。
うーん、誰か効果的な使い方を発見してくれるのをまつことにします。

680 名前:名前は開発中のものです。 :03/02/16 15:38 ID:kG6Gu6Lz
>>677
いや、DX9で定義された仕様を全部サポートしてくれた製品じゃないと嫌だなぁって話。

>>679
ディスプレースメントマップをハードでサポートなんて最高じゃんか。
使いまくれ!
ほら、6面体で焼けて膨らむ餅が表現できるぞ(笑)

それより俺はボリュームを何とかして欲しいなぁ……

681 名前:名前は開発中のものです。 :03/02/16 16:54 ID:tDr+jqjf
プログラム内でスクリーンショット機能を付けたいのですが、
どういう手順でやればいいですか?
環境はVB6.0+DIRECTXでお願いします。

682 名前:名前は開発中のものです。 :03/02/16 17:22 ID:3FlUVw2p
VBは知らないのでC++の例。ウィンドウ枠が可変でプライマリバッファからコピーの場合
  LPDIRECT3DSURFACE8 tmp;
  D3DLOCKED_RECT lock;
  d3ddevice->CreateImageSurface(::GetSystemMetrics(SM_CXSCREEN), ::GetSystemMetrics(SM_CYSCREEN), D3DFMT_A8R8G8B8, &tmp);
  d3ddevice->GetFrontBuffer(tmp);
  tmp->LockRect(&lock, NULL, 0);
  RECT rc;
  GetClientRect(hwnd, &rc);
  int w = rc.right - rc.left;
  int h = rc.bottom - rc.top;
  ClientToScreen(hwnd, (POINT*)&rc);
  BYTE *buf = new BYTE[sizeof(DWORD) * w * h];
  for (int i = 0; i < h; i++){
    CopyMemory( buf + sizeof(DWORD) * w * i,
      (BYTE*)lock.pBits + lock.Pitch * (rc.top + i) + rc.left * sizeof(DWORD),
       sizeof(DWORD) * w);
  }
  delete[] buf;
  tmp->UnlockRect();


683 名前:名前は開発中のものです。 :03/02/16 18:34 ID:A+y5e3fj
>>681
>>645から読み直せ

684 名前:あぼーん :あぼーん
あぼーん

685 名前:名前は開発中のものです。 :03/02/17 00:13 ID:9vsIryvv
>>673
DirectSoundではサウンドの同時処理は処理速度が許すかぎりいくらでもできる。
CAPSはハードウェアで処理できる限界であってソフトウェアの限界ではない。

686 名前:名前は開発中のものです。 :03/02/17 04:19 ID:WS9BVvAx
3Dを背景とした2Dゲームって、二つの頂点の定義を作っておいて、
毎フレームごとに切り替えるんですか?

つまり、1フレームごとに、座標変換ありの頂点と座標変換なしの頂点を
交互に描画するんですか?

687 名前:名前は開発中のものです。 :03/02/17 04:43 ID:mWd91DKT
>>686
うん

688 名前:名前は開発中のものです。 :03/02/17 05:09 ID:hdzUUYWw
>>686,687
なんだそりゃ?

689 名前:名前は開発中のものです。 :03/02/17 05:25 ID:aOw8ezq9
少々わかりにくいが間違いはなさそうだが

690 名前:名前は開発中のものです。 :03/02/17 07:19 ID:hdzUUYWw
ああ、背景は座標変換あり、2Dオブジェクト郡は座標変換ありってだけのことか。
だがな、用語が変だぞ。

691 名前:名前は開発中のものです。 :03/02/17 07:55 ID:vF3bZenv
あり?

692 名前:名前は開発中のものです。 :03/02/17 08:04 ID:hdzUUYWw
2Dは「なし」だな。すまん。もうこない

693 名前:名前は開発中のものです。 :03/02/17 08:23 ID:jFMHe3lL
逃げちゃ駄目だ!

694 名前:名前は開発中のものです。 :03/02/17 08:58 ID:dBcKYU7J
http://www.agemasukudasai.com/bloom/

695 名前:名前は開発中のものです。 :03/02/17 09:34 ID:tG/PvClA
普通、同じフレーム内に座標変換あり、なし両方書き込むぞ。
なんだ、交互にって?テレビのインターレースかいな。

で、その頂点座標変換あり、なし混在の場合、
頂点変換なし(2D)描画が常に画面の手前になってしまう。

背景(3D)のobjectと何かしら処理が絡むなら(objectをくぐるとか)
自キャラ(2D)もビルボード使って
板ポリで、頂点変換ありでやった方が良いんでない?

696 名前:名前は開発中のものです。 :03/02/17 10:48 ID:E/qUSJ/7
座標変換無しでもポリゴンは描画できるよ。

697 名前:あぼーん :あぼーん
あぼーん

698 名前:名前は開発中のものです。 :03/02/17 16:57 ID:k1lu5QbB
なんか半年ぶりくらいにこの板キタ。

3Dを背景とした2Dゲーって言われてもピンと来ないのよね…
地形が3Dで2Dのビルボードを使ったゲームなのか、
背景は3Dだが見た目は完全に2Dなのか。
前者ならビルボードだけど後者だとスプライト。

699 名前:名前は開発中のものです。 :03/02/17 17:43 ID:mWd91DKT
ややこしくするなよ。ビルボードならこんな質問するわけないだろ。

700 名前:名前は開発中のものです。 :03/02/17 18:07 ID:lk5pRAb1
3D背景の2Dゲーなら、ゲーセンにカプコンの格ゲーがいくらでもあるじゃん。

701 名前:名前は開発中のものです。 :03/02/17 18:26 ID:KxwQBCAS
>3Dを背景とした2Dゲー
>>700のほかにも、
サターンの初期にクロックワークナイトってゲームがあったけど、
あれが確かそういうタイプのゲームだったような。

702 名前:名前は開発中のものです。 :03/02/17 20:26 ID:k7503aDO
横やりで申し訳ないですが、パワーゲージとか
残り時間の表示とかは座標変換無しでそのままやりますよね。

まあ、Zバッファ切ってから最後に描画するんでしょうけど。

703 名前:名前は開発中のものです。 :03/02/17 22:59 ID:68dkEVgw
Zバッファ斬る?
なんで?いいじゃん描いちゃえよ。

704 名前:名前は開発中のものです。 :03/02/17 23:04 ID:HE1lwuh3
>>703
Zバッファ切らないで描画したら上書きされないの?
>>702
座標変換なしで描画したら解像度変わった場合大きさが変わらない?

705 名前:名前は開発中のものです。 :03/02/17 23:21 ID:hdzUUYWw
このスレの人間が高解像度対応なんて
ちょっとでも気の利いたことするわけないじゃん。

640x480x16bpp 60fps固定 FSAAなし
以外選べないゲーム作ってる奴らだからな。


706 名前:名前は開発中のものです。 :03/02/18 00:17 ID:9ivC/Ath
>>704
解像度変わったらそれに合わせた座標にすりゃいいじゃん。
っていうか、ほとんどのゲームで2Dアートワークってサイズ固定で、
高解像度にすると小さくならない?

707 名前:名前は開発中のものです。 :03/02/18 00:20 ID:2XDOY6wz
てか、何いってるのかわからないけど。
解像度は3:4をまもっとけば後からでも変更はいくらでも効くでしょ。
Zバッファはそもそも座標変換ありのものもなしのものも違いないでしょ。
ちなみに2D座標の場合のZの値は1.0が最前面だった気がする。
まあ、前面に描くものはα物だらけだと思うが。

708 名前:704 :03/02/18 00:22 ID:qi2fP5U0
>>706
>ほとんどのゲームで2Dアートワークってサイズ固定で、
>高解像度にすると小さくならない?
それはカコワルイと思うけどなぁ

709 名前:名前は開発中のものです。 :03/02/18 00:24 ID:G8QFcNbI
3Dアニメーションのモーションつくるのどうしてる?

710 名前:名前は開発中のものです。 :03/02/18 00:58 ID:7nhEB5ou
>>707
その違いが無い、座標変換ありと無しの
無しの方Zの値をどうやって決める?

ワールド上を自由に動くオブジェクトやカメラの場合、ワールド変換、カメラ変換、ビュー変換
して座標変換ありの頂点は、Z値を持つ訳だ。

そのZバッファに、変換無しの頂点のZ値を、どう対応させる?
まさか、前面描画なんて言うなよ。

それと、α物とZバッファの関係が分ってないようだね。
もしα物が画面奥にあって、その周りを何か物体が回っているなんて場合
君のやり方じゃ、実装不可能だろ。

711 名前:名前は開発中のものです。 :03/02/18 00:59 ID:r2vh2WJc
trueSpaceの60000円ぐらいするやつ。

712 名前:あぼーん :あぼーん
あぼーん

713 名前:名前は開発中のものです。 :03/02/18 01:10 ID:HS6mmhB0
>>709
LightWave使っとります。

714 名前:名前は開発中のものです。 :03/02/18 01:14 ID:KGJUoVgY
>>713
そういうのって10マンぐらいするよね。
やっぱ買うわけ?

715 名前:名前は開発中のものです。 :03/02/18 01:19 ID:SbwOx8MJ
ポケットを叩くとビスケットは2つの原理です。

716 名前:名前は開発中のものです。 :03/02/18 01:19 ID:HS6mmhB0
>>714
当たり前でしょ。あと値段、30万近くするって。

717 名前:名前は開発中のものです。 :03/02/18 01:30 ID:KGJUoVgY
高杉・・・。
>>715
タイホー。

718 名前:名前は開発中のものです。 :03/02/18 02:36 ID:Ahzziud7
ドングルもなんとかできるもんなの?

719 名前:あぼーん :あぼーん
あぼーん

720 名前:名前は開発中のものです。 :03/02/18 02:45 ID:THIYqgow
モーションをしっかり勉強したいんだけど
それを専門に扱った本がみつからないんですよね。
何かありますか?

721 名前:名前は開発中のものです。 :03/02/18 02:57 ID:HS6mmhB0
>>720
http://pc.2ch.net/cg/
こっちで聞いたほうがいいと思うが。

722 名前:名前は開発中のものです。 :03/02/18 04:28 ID:THIYqgow
アドバイスありがとうございます。
ところでみなさん、浮動小数点の絶対値を求めるときどんな関数を使ってますか?
fabsだとdouble型対象となってるので他に何かいいのあったら使いたいのですが。

723 名前:名前は開発中のものです。 :03/02/18 04:56 ID:HS6mmhB0
>>722
0より小さければ−1をかける、でいいのでは


724 名前:名前は開発中のものです。 :03/02/18 08:02 ID:QS9PEt6s
>>722
fabsf・・・結局はdoubleだけどさ・・・。

725 名前:名前は開発中のものです。 :03/02/18 09:19 ID:5aGkziqd
VC++6.0でスクリプトエンジンもどきを作成しているのですが
strcmpで"}"を文字列比較をする時に、lpStringに"てすと"等の違う文字列が
入っていても1(true)が帰ってきてしまいます。

例:
int tmp;
tmp=strcmp(lpString,"}");

しかし、上記で1がtrueと言っていますがMSDNを見ると0が帰ってくるとtrueらしいのです(;´Д`)
0なんて帰ってきた事なんてありませんし…。
どなたかアドバイスお願いします

726 名前:名前は開発中のものです。 :03/02/18 09:39 ID:QS9PEt6s
r=strcmp(a,b);

 ↓

if (a<b) r=負の数;
if (a==b) r=0;
if (a>b) r=正の数;

727 名前:名前は開発中のものです。 :03/02/18 09:53 ID:7nhEB5ou
>>725
なんだかな。ココはDirectXスレな訳で。
Cの構文なら、プログラム板にでも…。

アスキーコード知ってるかい。
文字は全て、数字が対応してるのよ。
strcmpは内部で減算してるだけ。
つまり同じ文字列なら、減算の結果が0で、戻り値が0な訳だ。
だから、戻り値が0なら同時な文字列であろうって感じなだけで
それがtrueな分け無い。

728 名前:名前は開発中のものです。 :03/02/18 10:32 ID:5aGkziqd
アドバイスありがとうございました。
ということは、これでいいわけですね(・∀・)

if(lpString[0]=='>'){
}


729 名前:名前は開発中のものです。 :03/02/18 10:33 ID:9TfHrH9k
数行のプログラムで実験すらできないのか?

730 名前:名前は開発中のものです。 :03/02/18 12:21 ID:3N95F/Cv
次は'\'と比較して全角二バイト目とぶつかる罠、だな
つかDirectXと全然関係ないやん

731 名前:名前は開発中のものです。 :03/02/18 13:58 ID:VIlmLJi8
>>707
>解像度は3:4をまもっとけば
3:4以外にも対応するべし。1280*1024は5:4なんだなこれが。
2D表示部分はタスクバーのように画面の端にくっつくようにプログラムを組むべし。

>>708
今までサイズ固定じゃないゲームを見たこと無いんだが。
まあquake2を高解像度でプレイしたときの文字の小ささはアレだと思ったが。

732 名前:名前は開発中のものです。 :03/02/18 14:11 ID:HePtHIHl
>>解像度は3:4をまもっとけば
>3:4以外にも対応するべし。1280*1024は5:4なんだなこれが。

ついでに最近のメーカー製PCはワイド画面が増殖中ッスよ。
こんな感じで↓
http://pcweb.mycom.co.jp/pcbuyers/review/2002/combine/
いちおう考慮しておいたほうがよいやも。

733 名前:名前は開発中のものです。 :03/02/18 14:25 ID:BxcSfeKF
テクスチャ画像のサイズってどうしてますか?
私が以前 DirectDraw でプログラムしていた時は
640x480(画面サイズ)の画像にチップを詰めてたのですが
Direct3D の場合は普通はどういう感じなんでしょうか。

同じように比較的大き目の画像にチップを詰めるのか、
各チップ(パターン)毎に1ファイルずつとか。
サイズはよく256x256というのを聞きますが
となるとやはりパターン毎に(最大256x256の)ファイルにするんでしょうか。
普通はこのぐらいのサイズまでなら大丈夫なんじゃない? という基準とか
あったら教えてください。


734 名前:名前は開発中のものです。 :03/02/18 14:38 ID:TzLAjW+F
2^nのサイズが良いと言われますね。
256 x 256 (2^8 x 2^8) 推奨というのはそのへんから来ているのではないかと。

735 名前:あぼーん :あぼーん
あぼーん

736 名前:名前は開発中のものです。 :03/02/18 15:18 ID:heSsomrk
普通にテクスチャデータを作ろうとすると、
DirectXの場合は1X1までミップマップをつくってくれちゃうんでしたよね。

737 名前:名前は開発中のものです。 :03/02/18 15:53 ID:3N95F/Cv
>>733
最大256x256が無難といえば無難。
あと、ファイルをそのままテクスチャにしなければならない、
という決まりはないと思う。

>>736
ミップマップを作成しないこともできるけど?

738 名前:名前は開発中のものです。 :03/02/18 16:48 ID:f7hIAHrT
>>733
自分は、テクスチャーを作る時に
ハードウェアの制限調べて(最大サイズとか、2の累乗のみとか、正方形のみとか)、
それにしたがって、内部で分割したり、正方形に修正したりしてるよ。
今のカードだと、制限もだいぶ無くなってきたけど、
Voodooとかだと、最大256*256 & 正方形のみ & 2の累乗のみ
とかの制限に全部引っかかったりするので。

739 名前:733 :03/02/18 18:29 ID:BxcSfeKF
>>734
そうですね。
4:3に慣れてしまったので違和感がありますが、、

>>737
256x256だと Voodoo も含めOKと。

>>738
それって難しくないですか?
絵を貼り付けた板を移動するときとか
今は一枚なのか二枚なのか意識しなくちゃならないし
自分がヘタレなだけかもしれませんけど。

最近の市販ゲームだと Voodoo には対応してません
と明記してあるやつが多いですけどそういうやつは
どのぐらいのサイズで作ってるのかなと。
と思ったら >>4 のサイトで調べられますね、、、
Rage Mobilityやi810ですら 1024x1024 いけるんですね。
不勉強でスミマセンでした。

740 名前:738 :03/02/18 18:58 ID:PMYVEmVG
>>739
難しくないよ。
スプライトクラスとかを作っておいて、
そのスプライトクラスのメソッド
例えば、CSprite::Load()とかで、テクスチャーを作成する時
ハードの制限等を調べて、分割なり、修正なりすればよい。
描画する時は、描画メソッド
例えば、CSprite::Draw()とかで、テクスチャーの修正情報に従って、修正描画すればよい。
1回スプライトクラスを作っとけば、使う時は何も考えずに使えるよ。
自分は大体こんな感じでやってるけど、みんなは違うのかな?

741 名前:名前は開発中のものです。 :03/02/18 19:19 ID:BxcSfeKF
>>740
なるほど。
Spriteクラスは1枚以上の板から成っている、と。

私がこの間3D始めてやっとこさ作ったSpriteクラス(Billbordクラス?)は
1インスタンス = 1枚という感じだったので、、
勉強になります。


742 名前:あぼーん :あぼーん
あぼーん

743 名前:名前は開発中のものです。 :03/02/18 20:29 ID:OmAR/C8b
>>740
俺もラッパークラス作って使いまわしてるよ。

744 名前:名前は開発中のものです。 :03/02/18 21:17 ID:VM4ycalO
DirectAudio(DirectX8)って、どうやって始めればいいんですか?
ヘルプを見て、いきなり
>1. COM の初期化
>DirectMusic オブジェクトを作成するためのヘルパー関数はないので、
>CoInitializeEx を呼び出して COM を初期化する必要がある。

この関数(CoInitializeEx())の使い方、意味、次への繋げ方がもう分からんのですが。
      [定義されてない識別子です。]
ヘルプ通り、objbase.h ってのIncludeしたのに!!!ヽ(`Д´)ノ

745 名前:名前は開発中のものです。 :03/02/18 21:34 ID:3N95F/Cv
なぜサンプルから当たらない?

746 名前:名前は開発中のものです。 :03/02/18 21:36 ID:oY4uuy6q
>>744
COMのこと知らないみたいだからCOMの勉強すれば。
あとはサンプルやウィザードが吐くコードを見るとか。

747 名前:名前は開発中のものです。 :03/02/18 23:57 ID:SbwOx8MJ
Voodooはドライバ更新ないんじゃないの?
そもそもDirectX8で動くんか?


748 名前:名前は開発中のものです。 :03/02/19 04:01 ID:3HHIicMN
http://www.microsoft.com/japan/msdn/directx/techart/directx9devfaq.asp

749 名前:名前は開発中のものです。 :03/02/19 04:34 ID:K2W4Cmx9
ケースバイケースだとは思うのですが、皆さんはモーションデータを
どのクラスに保持させていますでしょうか?

とりあえずDirectX8のサンプルにあるフレームやメッシュと同じ感覚で、
モーションデータをパーツ毎に持たせてみました。
しかし、これでは動作がボトムアップといいますか…一元的に管理できない感じで…。

かといって、モーションクラスを作り、トップダウンに個々の
パーツを管理するのも、主体が2重になりそうで…。

言ってることが曖昧ですいません。要するにモーションデータの管理について
悩んでいまして…なにか示唆をいただければ幸いです。

750 名前:あぼーん :あぼーん
あぼーん


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