• ベストアンサー

メッシュの描画位置の平行移動

C++、DirectX9でゲームを作っている者です。 等間隔に2列並べたメッシュを真正面から見るようにカメラの設定をして表示した際、ウィンドウの中心からずれた位置が対称軸となるように描画位置を変更したいと思い、調べましたがどうすればよいのかわかりません。 説明が下手なのでわかりにくいかも知れませんが、わかる方がいれば回答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

やっと理解しました。 そして残念ながら無理です。 |←この線はメッシュの中心線です。   | ■|■ ■|■ ■|■   |   ↑ カメラ このメッシュが左右対称に表示されるために、 カメラのX軸の位置はこの線上になければならず、 カメラの角度はこの線に対して平行でなければなりません。 (間違ってるかも知れません) 画面上のレンダリング位置を変えるなど、 2D 的な処理が必要だと思われます。

mmi_n63
質問者

お礼

ありがとうございました。 IDirect3DDevice9::SetViewportにて解決いたしました。

mmi_n63
質問者

補足

カメラの移動だけでは無理ですか… わかりました、ではやはりタイトル通り、メッシュの描画位置を平行移動できるような方法を調べてみます。 長々とお付き合い頂きありがとうございました。 お礼はまた後ほど。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.3

Z軸を動かす際に、同時に注視点も動かしていますでしょうか? カメラの位置のX軸に 1 を足したら、 注視点の位置のX軸も 1 を足してみてください。 (このとき注視点も動かさないと、元の位置を見続けようとするため、  結果としてカメラはY軸で回転したように表示されます) ■←はメッシュ ・←は注視点 ■ ■ ■ ■ ■ ■   ・  ↑ カメラ ■ ■ ■ ■ ■ ■     ・    ↑   カメラ

mmi_n63
質問者

補足

アドバイスありがとうございます。 ■ ■ ■ ■ ■ ■     ・    ↑   カメラ 確かに、このようにカメラと注視点を動かすことで、視界を横に移動させることはできるのですが、この場合ですと並んだメッシュを右から斜めに見ることになるので、2列のメッシュが対称に並んで見えないのです。 実装目標との比較のための画像をあげておきます。 こちらです。 http://mmi.sosite.jp/blog/u-files/1226678830.png なんとも我が侭な質問ですいません。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

自分を中心にメッシュが回るイメージでしょうか? ・カメラをY軸で回転する ・カメラを中心にメッシュが回転する の2通りが考えられます。 動かしたいのはどちらでしょうか? たとえばメッシュが地面などのオブジェクトならば、 動くのはカメラです。 (大地を動かすのはおかしいです)

mmi_n63
質問者

補足

動かしたいのは、メッシュを地面と考えて、カメラのほうです。 ただ、回転ではなくて、例えばカメラをZ軸方向に移動させた際、下の画像の2つ目のような形を保ったまま、見かけ上こちらに近づいてほしいのです。 イメージとしては、2列のメッシュの間の道を前に歩いてゆくような感じのものです。 度々の説明不足ですみませんが、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

カメラの位置を変更すればできる気がします。 もしくはメッシュをずらしてはどうでしょう? どうしたいのかが読み取れません。

mmi_n63
質問者

補足

やはりわかりにくかったですか…すいません。 言葉ではこれ以上説明できそうにない為、説明のための画像を作ってみました。こちらです。 http://mmi.sosite.jp/blog/u-files/1226567454.png カメラの位置やメッシュの位置の変更で実装できるならそれが一番良いのですが… よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 描画について

    今DirectXでゲームを作ろうとしてるものですが、描画しようと思い打ったのですが位置が思い通りにならない(描画が範囲を下回っている)描画されなくて困っています。ソースはこれです。 HRESULT Render(void) { g_pD3DDevice->Clear(0, NULL,NULL, D3DCOLOR_XRGB(0, 255, 255), 1.0f, 0); // シーンの描画開始 if (SUCCEEDED(g_pD3DDevice->BeginScene())) { // スプライトの描画開始(アルファ・ブレンディング有効&デバイス状態を保存も復元もしない) pSprite->Begin(D3DXSPRITE_ALPHABLEND | D3DXSPRITE_DONOTSAVESTATE); // シーンの描画(2D画像の描画) RECT SrcRect = { 0,0,640,480 }; // テクスチャ内でスプライトに使う範囲(0,0)-(512,64) D3DXVECTOR3 Center(320,240,0); // スプライト内の中心の位置(256,32,0) D3DXVECTOR3 Position(320,240,0); // スプライトを表示する位置(0,0,0)+(320,240,0) static int alpha=0; pSprite->Draw(pTexture.m_texture, // スプライトに使うテクスチャ &SrcRect, // 描画範囲 &Center, // スプライト内の中心の位置 &Position, // スプライトを表示する位置 D3DCOLOR_ARGB(alpha>255?511-alpha:alpha,255,255,255)); //alpha++; alpha &= 0x1FF; //pTexture.m_colorKey); // スプライトの描画終了 pSprite->End(); // シーンの描画終了 g_pD3DDevice->EndScene(); } // シーンの表示 return g_pD3DDevice->Present(NULL, NULL, NULL, NULL); }どうしたらきちんとした位置に描画できるのでしょうか。

  • エクセル マクロ 線対称・点対称の位置に色づけする

    いつもお世話になっております。 エクセルのマクロを使って(あるいは数式でもいいのですが・・・)やりたいことが2つあります。 (1)指定したセルを「対称の中心」として,アクティブセルと点対称の位置にあるセルに色付けができないかと思っています。 (2)指定した列を「対称の軸」として,アクティブセルと線対称の位置にあるセルに色付けできないかと思っています。 もし可能であるようなら,どなたかマクロを教えていただけませんか? いつも他力本願で申し訳ないのですが,教育に役立てたいと思っています。どうかご教授ください。

  • DirectXによるアニメーション描画について

    DirectX9を用いて3Dのゲームを制作しています。 アニメーションをつけようと思っていて、一つ疑問が出てきたのですが、 たとえばタイヤ、プロペラ、スクリューといったものは、本体とは別のメッシュを用意して、然るべき位置に移動して回転させるというのが一般的な方法なのでしょうか。 ボーンを入れてモーションをつける、というのはあまり使われない方法なのでしょうか。 回答よろしくお願いします。

  • DirectXでXファイルの描画をするとテクスチャがチラつく

    今現在、DirectX9とVC2005のC++を使用してソフトを製作しています。 D3DXCreateTextureFromFileにてXファイルを読み込み、描画をしているのですが なぜか、テクスチャが貼られたメッシュに黒い筋が入り激しくチラつきます。 ただ、これも常にというワケではなく、カメラが動いた時にチラつきます。 また、例えばカメラ移動中にチラついた状態でカメラが止まっても、 メッシュに黒い筋が入ったままだったりということもあります。 状態としては以下の様な感じです。 blog81.fc2.com/e/evom/file/caps.jpg 色々と調べてみて、フィルターを設定したりしてみたのですが状況は改善されず、 何が原因なのかもちょっと検討が付かないです・・・。 どなたか原因がお分かりになる方、ご教授の程よろしくお願い致します。

  • directxのspriteの描画について

    VisualStudioによりc++とdirectxを使って3Dオブジェクト(xファイルなど)とspriteによるテクスチャの描画をしたいのです。3Dの格闘ゲームのようにカメラが動いているのに、ライフバーが固定されているようなものを作りたいのです。 3Dオブジェクトはプロジェクション変換とビューポート変換をして描画し、spriteのテクスチャは画面の左上を座標(0,0)として描画したいのですが、どのように実装すればいいのでしょうか? 現時点ではspriteを描画する前にプロジェクション変換とビューポート変換のときに使うポインタを初期化してパイプラインに送ればいいと考えやったのですが、3Dオブジェクトは描画されているのですがspriteはうまくいきませんでした。

  • NC旋盤の視点方向を変更出来る描画ソフト探してい…

    NC旋盤の視点方向を変更出来る描画ソフト探しています 少し前に縦型旋盤の描画ソフトありませんか?と質問した者ですが 回答が得られないので再度内容を変えて質問させて頂きます PC上で動作可能の縦型NC旋盤描画ソフトを探してるの変わりありませんが 視点を変更出来る描画ソフトであれば大丈夫な気がしまして・・・ たぶんなじみが無いと思いますので 簡単に縦型旋盤を説明いたしますと 基本は一般の旋盤とまったく同じなのですが 最大の違いといいますか、唯一の違いは視点です 一般のNC旋盤はZ軸とX軸を+方向から見てるとしたら 縦型旋盤は Z軸とX軸を90度傾けて-から見ています あと縦型はワークが大きいのが特徴でして 最低でも3000ミリまで設定出来たら嬉しいです (G02やG41が逆の動きになります) 説明が下手ですいません 探してる物は PCで動く 視点が変更出来て、ワークをかなりの大きさまで設定出来るものです 御存知のかたよろしくお願いいたします

  • 数学III 楕円の共通部分の面積について

    お世話になります。 考え方を教えて頂けると助かります。 「2つの楕円x^2+(y^2)/3=1,(x^2)/3+y^2=1で囲まれる共通部分の面積を求めよ」 この問題では対称性を利用して、計算の省略を行っております(x軸対称、y軸対称、直線y=xに関する対称)。 確かにグラフを描くと、囲まれた領域が3つの対称性を満たしているようなのですが、・・・ ■この領域について、式でそれらの対称性を示すことは可能なのでしょうか。 ■それぞれ楕円がx軸対称、y軸対称なので、その囲まれた領域もx軸対称、y軸対称になるのでしょうか。 ■2つの楕円は原点を中心とした90°回転の位置関係にあるので、直線y=xに関する対称性が言えるのでしょうか。 この対称性の利用は、どうも苦手です。 宜しくお願い致します。

  • Kinectを用いて人の空間での位置測定

    Kinectを用いて人の空間での位置測定を考えています。 Kinectを地面に向けて天井から吊るし、部屋の中の人の位置をx軸とy軸で測定できれば比較的容易にできるのではないかと考えています。しかし天井から吊るすのができない状況が考えられ、仮に出来たとしても設置が容易ではなく、しかも30メートルにもなる長いUSBケーブルが必要になってきます。 地面に置いて真っ正面から撮った場合、左右の位置(y軸)の値は比較的正確に得られるとしても深度(z軸)がどこまで正確に測れるかが問題となってきます。そこでKinectを2台用いて、1個を真っ正面から(例えば南から部屋の中心に向かって)、もう一つを横から(部屋の隅の西から中心に向かって)撮ることを考えています。それぞれのKinectはそれぞれのコンピューターに繋げられ、それぞれ(例えばスケルトン)の状態でx軸とy軸だけを測定します。2つのコンピューター同士繋ぎ合わせ、物理的部屋の中の頭の位置のx、y、zの正確な値を出すことができるのではないかと考えています。これはまだアイデアの段階なので、Kinectを用いて人の空間での位置測定に関する何なる経験、情報を教えていただければ幸いです。 質問を要約すると、 1. 特に大きな空間、10メートル位の距離の深度(z軸)を1台だけのKinectでどこまで正確に測れるか? 2. 1で深度が正確に得られない場合、上記のように2つのKinectを用いる方法で正確に測ることが可能か、またはこの解決策で良い結果を得られるかどうか? 3. 特に上の方法に限らず、Kinectで(スケルトンでの人体の各部分ではなく)人の空間での位置測定をする他のいい方法はあるかどうか? など、教えてください。よろしくお願いします。

  • 車検での光軸位置

    先日車検での光軸合わせでの数値の意味を教えていただいた者です。 イロイロ調べて勉強しています。 光軸の上下合せ方は以下で良いのでしょうか? 詳しい方お願いします。 自車のハイビーム中心高さ 60cmです。 10m先の壁(垂直)にハイビームを当てて、光の最も強いところ(中心軸)の位置が、  地面から60cmの位置を中心に、上側10cm、下側12cm(光高さの20%以内)以内にあればOK

  • アンカーボルト位置が違ってても大丈夫ですか?

    現在、着工がはじまりべた基礎が終了したところです。 軸組み木造2階建てです。 本日、基礎を確認したところアンカーボルトの位置が 基礎伏図にある位置と違う箇所がいくつかありました。 図面にあるところになかったり、図面にないところに あったり・・・。 これは問題ないのでしょうか? アンカーボルトは2.7m間隔以内にあればいいのでしょうか? それ以外に柱の下にはきてはいけない、継手の下には あるべき、筋かいの柱の両側にあるべきなど チェックするべきことはありますか?

このQ&Aのポイント
  • アポロ計画について疑問を持った人がいます。アメリカは本当に月に行ったのか?それを断言する回答者たちはどのようにして行ったことを確信しているのでしょうか。
  • 一部の人は、アメリカの情報操作により、アポロ計画や他の出来事が完全な嘘であると信じています。情報の信頼性について疑問を抱くこともあります。
  • しかし、証拠がないために、アメリカが月に行ったのか行っていないのか真相は分かりません。アポロ計画に関する真実を見極めることは難しいですが、議論が続いています。
回答を見る