• ベストアンサー

ゲーム製作で質問です;;

DirectX9.0bのバージョンでゲームを作っています。 3Dの主観視点ゲームにしたいと思っているのですが、 例えばポーズ画面や、メニュー画面、またHPの表示等で、プレイヤーがどこを向いていてもスクリーン座標で見て、一定の場所に2D・3Dのオブジェクトを描画する場合にはどんな実現方法があるか教えてください^^; L・Rボタンで前面に出ている2Dオブジェクトを切り替えたりできたらなぁ・・・と思っています FVFで座標変換済み頂点は、行列が掛けられないので移動等には向かなさそうですが・・・

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

  • ベストアンサー
  • bulgaris
  • ベストアンサー率50% (8/16)
回答No.1

OpenGLならばビューポートを再設定して任意のオブジェクトを描画する手法が考えられます。 手順としては 1: ビューポートの設定(0,0)から(スクリーンの横, スクリーンの縦)までの矩形領域 2: 主観視点によるシーンの描画 3: ビューポートの設定(10,10)から(20,20)までの矩形領域 4: 任意のオブジェクトの描画 の流れになります。 DirectXは知らないので、参考までに (^^

deadcell
質問者

お礼

誠にすみません・・・ 引越しやらパスワードとアカウント書いた紙をなくしたやら色々ありまして返事がもの凄く遅れてしまいました(-_-; 今日サクっとDirectX環境を整えたので、試してみようと思います。 ありがとうございました!

関連するQ&A

  • directxのspriteの描画について

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

  • DirectXで曲面の描画

    DirectX9で曲面の描画を考えています。 x=0.0~10.0、y=0.0~10.0、z=exp(-x^2-y^2)といった座標を与えて、 波を打つような曲面を作成したいのですが (QNo.2528542のような滑らかな曲面でなくてもよいです) 自分でメッシュを作成することで実現可能なのでしょうか? メッシュを作成するには頂点(バッファ)を指定するの思うのですが、 その頂点は射影行列を施した後の(x座標、y座標、Z値)になり、 上のような3次元空間上の座標から直接メッシュが作り出せないものかと考えています。 ティーポットのようなメッシュをXファイルを使わずに作り出すにはどうしたらよろしいでしょうか? (↑曲面の描画 イコール メッシュの作成と考えての質問です、そもそもこの思考が間違っていますか?) だらだらと書き綴りましたがよろしくお願いします。

  • スクリーン座標からワールド座標への座標変換について

    こんにちは。 現在自作で3Dゲームを制作しています。 ワールド座標からスクリーン座標への変換に成功したので 今度は逆にスクリーン座標からワールド座標への変換に挑戦していたのですが どうにもうまくいかずに詰まってしまい、質問にきました。 ワールド→スクリーン変換にて得たスクリーン座標(sx, sy, sz)を使用して スクリーン→ワールド変換を行うと成功するのですが 直接スクリーン→ワールド変換を行おうとすると失敗します。 というのも、直接スクリーン→ワールド変換時には sz にあたる値を どうしたらいいものか・・・となってしまったからです。 今回、手計算(ヘルプ関数は使わず)で行っているのですが、計算していることは ビューポート行列、プロジェクション行列、ビュー行列の逆行列を使用し スクリーン座標(とりあえずszを0にして対応)に対して座標変換をおこなっています。 何か計算が足りていないのか、はたまた勘違いをしているのか・・・ 詳しいご教授お願いいたします。 ワールド行列:単位行列 ビュー行列:視点と視線は動的に変動、上向き(0,1,0) プロジェクション行列:視野角45度、アスペクト比 800/600 画面サイズ:800×600 テストに使用しているスクリーン座標:(200,300)

  • Directxで一度に描画する方法

    DirectXで複数枚のポリゴンを描画しているのですが、それぞれ頂点変換行列やテクスチャが違うのでDrawPrimitiveをポリゴン毎に呼び出さなければいけなくなっています。 上記のような状態で一度に描画する方法はありますでしょうか?

  • VBを使って行列による3Dの図形やグラフを描画するのですが・・

    本をよんでいるのですが自分の創造した図形の3D座標を2Dの座標に変換する仕方やその点の座標をどのように行列に当てはめるのかがわかりません。行列での回転・縮小拡大の仕方などが・・。 3Dの描画や行列に詳しい方教えてほしいです。 もし詳しくなくても関係のあるVBサイトがあれば教えてほしいです。 お願いします。

  • 陰影結果を頂点カラーとして焼き付けたい

    3DCG系ソフト初心者です。 3Dオブジェクトのリングがあるのですが、照明効果でついた陰影を頂点カラーとして焼き付けたいです。 現状使用しているソフトはBlenderですが3dsmaxも体験版ならインストールしています。 焼き付けを行ったらMetasequoiaでテクスチャを使わず陰影結果ごと読み込ませたいです。 用途は.mqoファイル形式をOpenGLで描画できる情報に変換し、OpenGLで描画することです。 当然1シーンのライティング結果を焼き付けてしまうので回転などさせれば不自然なものにはなりますが、描画負荷の軽減のための措置です。 テクスチャベイクのやり方もまだままなりませんが、今回はテクスチャではなく頂点カラーとして焼き付けたいです(3Dオブジェクトはかなり細かい座標で作成されているため)。 BlenderやMetasequoiaだと本当は良いのですが、他のソフトでもお勧めのやり方がありましたらお教え下さい。 よろしくお願いいたします。

  • PCゲームでしばらくすると画面がカクカクしてしまいます。

    PCゲーム(2D、3Dともに)で遊んでいる時に最初はスムーズに動いているのですが しばらくプレイしていると時々画面処理がカクカクとコマ落ちしているような動きをし出すのです。 原因を見つけて改善したいと考えています。 ちなみにPCスペックは今わかるものだけですが、 OS: Win98SE CPU: P3 933Mhz メモリ: 256M ビデオボード: G450ミレニアム DirectX: 8.1 です。 ビデオボードとDirectXとマザーボード、このあたりとゲームの描画処理との関係性が いまいちわからないのでこのPC環境で「ここがまずい」というところがありましたら ご指摘お願いしますm(_ _)m

  • DirectXを使用するゲームを起動すると固まります

    タイトルにあるようにDirectXを使用するゲームを起動するとPCが固まってしまい、電源ボタンの長押しによる強制終了しか出来なくなります。 描画方法を変更できるゲームで、描画方法をGDIに変更すると正常に起動するので原因はDirectXにあると思われます。多くのゲームでDirectXが使用されているので困っています。 また、DirectX診断ツールのディスプレイタブでは「問題は見つかりませんでした」と表示されますが、Direct3Dのテストを行なうと止まります。DirectDrawのテストでは止まりません。 ハードウェアアクセラレータでは「DirectDraw および Direct3D すべてのアクセラレータを無効にします」まで下げると起動するようになります。ただ、アクセラレータを無効にしているので主に3Dのゲームは表示はされませんが・・・。 DirectXのバージョンは9.0cで再インストール(ファイルの更新?)も行いました。グラフィックドライバの再インストールも行いました。バージョンは最新のものを使用しています。 今まで問題なく使えていたのに先週末あたりからこの問題が発生するようになりました。原因は思い当たるところがありませんが、以上のことからDirectXに何か問題がおきていると思うのですがどうでしょうか?よろしくお願いします。

  • 3Dの描画について

    3Dの描画について 今、Cで3Dライブラリを作っています。 そこで質問なのですが、 空間上に頂点の座標が与えられたポリゴンが複数あるとします。 それをカメラから遠いものから順に描画したいです。 うまく描画するためには、どのような基準をもって カメラからの遠近を判断すればよいのかわかりません。。。 どなたか、アドバイスを頂けないでしょうか。 よろしくお願いします。

  • オフラインのパソコンゲームが突然できなくなった

    オフラインのパソコンゲームが突然できなくなった パソコンの自動アップデートでゲーム途中に突然シャットアウト そのあと立ち上げたら デスクトップの画面や文字が急に大きくなったので解像度をあげて異変を解消。そしたら急にゲームができなくなったので困っています。回答お願いします エラーは DirectxGraphicsオブジェクトです DirectXバージョンはDirectX11を使用しています  そのほかウインドウをフル画面にできなかったり パソコンの動作が鈍くなっています

専門家に質問してみよう