タグ付けされた質問 「camera」

ゲームの世界は、ゲームの世界を観察する視点であるカメラから見られます。

9
カメラの代わりに世界を動かすのはなぜですか?
OpenGLゲームでは、プレーヤーを動かすために私たちがやることは、カメラを動かすのではなく、全世界を動かすことだと聞きました。 たとえば、このチュートリアルの抜粋は次のとおりです。OpenGLビューマトリックス 実生活では、特定のシーンのビューを変更するためにカメラを移動することに慣れていますが、OpenGLでは逆です。OpenGLのカメラは移動できず、負のZ方向に面する(0,0,0)に位置するように定義されています。つまり、カメラを移動および回転させる代わりに、カメラの周りで世界を移動および回転させて、適切なビューを構築します。 なぜそうするのですか?

1
FPSでのマウスの照準
一人称シューティングゲームを作成し、カメラをマウスで動かしたいと思います。問題は、カーソルが画面の制限に達すると、カメラが回転しなくなることです。とにかくマウスを中央に保ち、その動きを検出するにはどうすればよいですか?

5
爆発からの現実的なカメラ/スクリーンシェイク
爆発の際にカメラを少し揺らしたいのですが、それを揺り動かすためにいくつかの異なる機能を試してみましたが、その「うわー、なんてバン!」私が探しているタイプの感じ。方形波タイプのパターンと同様に、線形減衰を少し加えた任意の比較的高い周波数の正弦波パターンをいくつか試しました。1つの軸、2つ、および3つすべてを移動しようとしました(ただし、この場合、台車の効果はほとんど目立ちませんでした)。 誰でも良いカメラの揺れのパターンを知っていますか?
36 camera 

2
メガマンスタイルの画面スクロールデザイン
NESの古典的なMega Manシリーズでは、非常に特殊なスクロール手法を使用しており、実装に頭を悩ませています。基本的に、レベルはすべて同じサイズの「画面」に分割されます。いくつかの画面は互いにスムーズにスクロールし、より広い遊び場のように見えます。一部の画面では、プレーヤーが画面の端に到達するまでカメラのスクロールが停止します。画面の端に遷移すると、次の画面が表示されます。1つの画面に複数のトランジションを設定することもできます。たとえば、1つの画面に移動するラダーがありますが、別の画面に進むこともできます。 これらの画面遷移はどのようにモデル化できますか? 画面0は、プレーヤーが開始する開始画面です。 画面0〜3は水平方向に滑らかにスクロールし、プレーヤーには1つの連続したフィールドとして表示されます。 画面3とそれに隣接する画面4と5の間には遷移があるため、カメラが画面3の右端または上端を超えて進むことはありません。 プレーヤーがトランジションエッジのいずれかに移動すると、ユーザー入力は一時的に無効になり、カメラは新しい領域に移行し、その後ユーザー入力が復元されます。 ブルースクリーン(画面5)では、水平方向のスクロールのみが無効になっているため、垂直方向の遷移のみが可能です。 緑色の画面(画面6)には画面5に戻る垂直方向の遷移がありますが、画面7への水平方向のスムーズスクロールも可能です。 編集:部屋の観点からトランジションを実装すると、これにつながります: 矢印付きの小さなノッチは、遷移が発生する可能性のある領域です。各領域には「方向」があり、部屋の可視領域のすぐ外側にあります。プレーヤーがリージョンにヒットするとすぐに、トランジションが開始されます。
25 2d  camera  platformer 


4
ボクセルゲームでブロックを選択するためにレイをキャストします
ブロックで作られたMinecraftのような地形でゲームを開発しています。これで基本的なレンダリングとチャンクの読み込みが完了したので、ブロック選択を実装したいと思います。 したがって、私は一人称カメラが直面しているブロックを見つける必要があります。シーン全体を投影解除すると聞いたことがありますが、それはハッキリと聞こえ、正確ではないので、私はそれに反対しました。どういうわけか、視線方向に光線を投げることができましたが、ボクセルデータ内のブロックとの衝突をチェックする方法がわかりません。もちろん、ゲームロジック操作を実行するには結果が必要なので、この計算はCPUで実行する必要があります。 それでは、どのブロックがカメラの前にあるかをどのようにして見つけることができますか?それが望ましい場合、どのように光線を投じて衝突を確認できますか?

2
カメラ/ビューポートを2Dゲームに実装する
カメラ/ビューポートを2Dゲームに実装する最も実用的な方法は何ですか? 画面を基準とした位置ではなく、オブジェクトの世界の位置を保存する必要があることを読みましたか? 現在の状況: XMLファイルからオブジェクトとレベルを読み込む単純な2Dゲームを実装しました。現在、レベルXMLファイルは次のようになっています。 <map> <tile obj="ground" x="0" y="555" /> <tile obj="ground" x="16" y="555" /> <tile obj="ground" x="32" y="555" /> ... </map> すべてのオブジェクトには、画面上の現在の場所を格納する2Dベクトル「位置」があります。 私が望むもの: 写真の中の: カメラは800x600または640x480です ブロックとスプライトは16x16ピクセルです。 世界のサイズは異なる場合があります 座標はおそらく画面ではなく世界に対して正規化されるべきでしょうか? プレーヤーのx、yに対するビューポートの位置。プレーヤーがカメラのデッドゾーンに到達したときに移動します(このビデオと同様)。 私は擬似的な例/記事を求めていますが、開発に使用しているものを知る必要がある場合:SDL&C / C ++。
20 c++  2d  architecture  camera 

2
Unity3Dのポータルを移動するときに2つのカメラをブレンドする方法
私が質問する前に、最も明白な解決策は正規化されたビューポート長方形を使用することであることを知っていますが、長方形よりも複雑な形状が必要であり、ビューポート長方形の使用を検討しましたが、そうではないようです私の解決策です。 編集:一部の人々は私の質問に混乱していたので、もう少し詳しく見てみましょう。 プレイヤーが1つのポータルに移動すると、クローンFPSコントローラーを作成し、他のポータルから移動します。これにより、2台のカメラと、右上に表示されるビューが提供されます。1つのカメラを表示し、ポータルを切り取っているだけです。私が欲しいのに似たものである。このカメラがブレンドして滑らかな移行の錯覚を作成します。私がやりたいのは、下の画像の緑のチェッカー画像から左にあるものをすべて削除し、それを他のカメラに置き換えます。これにより、カメラAのビューの一部がポータルの外に出て、カメラBのビューの一部が他のポータルの外に出て、1つの完全な画像が得られます。ポータル内を移動すると、カットが適切に変更されます。 ポータルシステムを設計してきましたが、プレイヤーがポータル内をスムーズに移動できるようにするなど、すべてがダウンしています。私の主な問題は、Valveのカメラブレンドエフェクトを取得することです。ポータルから頭を突っ込んでいるかのように、2つのカメラがシームレスにブレンドする必要があります。そして、それは単なる長方形ではなく、プレイヤーがポータルを通して見ているものと一致しなければなりません。 現時点での私の最善のリードは、各ポータルの背後に深度マスクシェーダーを投影し、移動しているポータルのカメラを深度のみにすることです。その後、どういうわけか2つのカメラをミックスします。私の主な問題は、これをどのように行うか、2番目のカメラでポータルの外にあるもののみをレンダリングし、残りをデフォルトでカメラ1に設定して全画面投影を行う方法を正確に把握することです。 あなたが私にアイデアを与えることができるか、私が非常に役立つだろう深さマスクシェーダーでこれを行う方法を説明することができれば。私はこれに取り組み続け、突破口を作りながら更新します。
18 c#  unity  camera  valve  portals 

4
目標点についてカメラを周回させるにはどうすればよいですか?
カメラが宇宙を自由に動き回るシーンを描いています。カメラクラスは、(またはビューのトラック続けるを見てポイント、カメラの位置、およびアップベクトル)。これらのベクトル/ポイントは、gluLookAtに渡されます。 パンとズームの実装はほとんど簡単です。しかし、私はポイントの見方をめぐるローテーションをより多くの問題であると感じています。2つの角度をとる関数Camera.rotateを作成します。1つは上/下に回転し、もう1つは視点を中心とした仮想球に沿って左右に回転します。 これを行う簡単な方法はありますか? 私は(簡単に)四元数について読みましたが、自分のシーンの構成が比較的単純であるため、簡単な解決策があるかどうかを確認したかったのです。

2
マウスクリックをレイに変換するにはどうすればよいですか?
透視図法があります。ユーザーが画面をクリックすると、マウスポイントから投影される近距離面と遠距離面の間の光線を計算したいので、自分の世界で光線交差コードを実行できます。 私は自分のマトリックスとベクターとレイのクラスを使用していますが、それらはすべて期待どおりに機能します。 ただし、レイをワールド座標に変換しようとすると、遠方は常に0,0,0になるため、レイはマウスクリックからオブジェクト空間の中心ではなく、オブジェクト空間の中心に移動します。(nearとfarのx座標とy座標は同一であり、互いに負であるz座標のみが異なります) GLint vp[4]; glGetIntegerv(GL_VIEWPORT,vp); matrix_t mv, p; glGetFloatv(GL_MODELVIEW_MATRIX,mv.f); glGetFloatv(GL_PROJECTION_MATRIX,p.f); const matrix_t inv = (mv*p).inverse(); const float unit_x = (2.0f*((float)(x-vp[0])/(vp[2]-vp[0])))-1.0f, unit_y = 1.0f-(2.0f*((float)(y-vp[1])/(vp[3]-vp[1]))); const vec_t near(vec_t(unit_x,unit_y,-1)*inv); const vec_t far(vec_t(unit_x,unit_y,1)*inv); ray = ray_t(near,far-near); 何が間違っていますか?(マウスポイントをどのように投影解除しますか?)

2
XNA 2dカメラスクロール-マトリックス変換を使用する理由
レベルを常にスクロールさせるテストゲームを作成しています。この効果を作成するために、vector2の位置と列挙方向を保存するだけのカメラクラスを確立しました。また、単に移動する位置を固定レートで変更する「移動」するパブリックメソッドも含まれています。次に、描画時にタイルの配列をループするときにこの位置を使用します。これはすべて正常に動作します。 ただし、カメラを移動するには変換行列を使用する必要があり、スプライトバッチを開始するときにこれを指定する必要があると言われました。私は少し混乱していますa。)これがどのように機能するのですか?スプライトバッチが開始されたときにのみそれを与えているかのように、どのように位置を変更し続けることがわかりますか?b。)タイルをループするときにカメラ位置が必要なのはなぜですか? 現時点では機能しませんが、それがどのように機能するかを完全に理解していないので、それは驚くことではありません。現在、私の試み(コードに従う)では、描画されるタイルが変更されます。つまり、カメラの位置は変更されますが、ビューポートの位置は変更されません(つまり、カメラの原点)。どのように使用されるべきかについてのアドバイス/ガイダンスを本当に感謝しますか? カメラ: class Camera { // The position of the camera. public Vector2 Position { get { return mCameraPosition; } set { mCameraPosition = value; } } Vector2 mCameraPosition; public Vector2 Origin { get; set; } public float Zoom { get; set; } public float Rotation { get; …


3
「シミュレートされた人間のオペレーター」カットシーンカメラの動きとは何ですか?
私は、かなりの数のゲームのカットシーンでのカメラの動きが滑らかでないことに関連して、それを保持している人間のオペレーターの緊張をシミュレートしようとするいくつかの質問があります。これは、私が話しているカットシーンでも発生しますが、何らかのイベント、つまり爆発が発生したときの一般的なゲームプレイでのカメラの揺れとは対照的です。 この効果の例は多くのゲームで見られますが、私が説明しようとしている最も良い例は、Metal Gear Solid V:Ground Zeroes のオープニングカットシーン(および多くのカットシーン)です。効果を明確にするために、必ず60 FPSを選択してください。 この「シミュレートされた人間のオペレーター」効果の名前はありますか?また、これがどのように達成されたかを知っていますか? 私の推測では、カメラはある種のランダム偏差関数によって両方の軸でオフセットされており、それは常にわずかに弾力的に原点に向かって移動し、乱暴にさまよいます。おそらくブラウン運動?

6
シームレスにループする2Dマルチプレイヤーレベルを作成しますか?
最近、ループレベルのデザインを持つことができる2D横スクロールマルチプレイヤーゲームを作成する方法について議論がありました(スターバウンドとその世界がどのようにループしているのかを考えてください)。 最も簡単な方法は、プレイヤーを一方から他方へテレポートできるトリガーゾーンを持つ長方形のマップを作成することだと思いました。しかし、このアプローチの明らかな問題は、マップの端に複数のプレイヤーが一度にいる場合です。プレイヤーをお互いの前にテレポートするだけでなく、他のプレイヤーが消えることなくプレイヤーを輸送する方法が必要になります。 このアイデアを追加して問題を解決するために、私は次のことを思いつきました。プレイヤーが「クローンゾーン」(緑の四角)を見ることができるトリガーゾーン(画像の赤の四角)を持っています。この緑色の正方形では、トリガーゾーンの反対側からのオブジェクトが対応するクローンゾーンにコピーされます(A&Bシェイプで見ることができます)。プレイヤーが「クローンゾーン」の開始端に到達すると、マップの反対側にテレポートされます。 この例では、プレイヤー2はプレイヤー1を見ていると考えますが、実際には自分のクローンを見ているか、その逆です。 これは目前の問題にとっては少し極端で複雑に思えました。私の質問は、この解決策が問題に取り組むための良いアプローチであるかどうか、またはこの問題を解決するより簡単な方法があるかどうかを知ることです。

5
最高のヘッドボブ式は何ですか?
空間内のポイント、移動方向、および開始からの時間を考えると、頭のボブをシミュレートする説得力のある、不調の式は何ですか?以前のゲームで成功したことは何ですか?どのボブが病気を引き起こすのかについての研究はありますか? 上軸に適用されるナイーブヘッドボブ式の例: http://www.wolframalpha.com/input/?i=abs%28sin%28x%29%29

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.