タグ付けされた質問 「2d」

2Dは、座標がX値とY値で表される2次元空間を指します。

4
Box2Dポイントがボディと交差するかどうかをチェック
ポイントがボディと交差しているかどうかを確認する方法はありますか? たとえば、世界の(100,100)の位置にボディがあるとしましょう。 (100,100)の点がそのボディと交差するかどうかを確認する方法はありますか? 別の例は、「PHUN」と呼ばれるゲームに関連しています。PHUNでは、ボディをクリックしてドラッグできます。マウスポイントがボディと交差しているかどうかをどのように確認しますか?
10 2d  physics  box2d 

1
「8ビットグラフィックス」の外観を実現するにはどうすればよいですか?
私はゲーム開発だけでなく、強力なプログラミングのバックグラウンドを持っています。私は高校でいくつかのピンポンとヘビだけを作り、大学でいくつかのOpenGLを作りました。 自分でゲームエンジンを作りたい。単純な2Dゲームエンジンだけを空想することはありません。しかし、私はちょっと古い学校で、レトロな感じなので。グラフィックを古い8ビットゲーム(メガマン、コントラ、スーパーマリオなど)のように見せたいです。 では、当時の古いゲームはどのようにして作られたのでしょうか?私は最も単純なアプローチを求めています。新しいエンジンのようにアセット(画像)も使用していたのでしょうか?OpenGLを使用してこの種のレンダリングをどのように実現しますか? 覚えておいてください。最も簡単なソリューション。それが当時どのように作られたのか、そしてそれをどのように複製できるのか知りたいです。OpenGLでなくてもかまいません。ウィンドウキャンバスに描けます。基本的に一から作りたいです。

4
2つの異なる2D座標系間で変換するにはどうすればよいですか?
画像に座標を描画できるように、ある座標系から別の座標系に座標を変換しようとしています。 基本的に、宛先座標系は次のとおりです。 X range: 0 to 1066 Y range: 0 to 1600 (私が1066 x 1600のサイズで描いているちょうど標準的な画像) 画像上に描画しようとしている位置は実際には同じサイズですが、座標系が異なります。すべての座標のスパンは1066x1600です。 しかし、座標の例は次のようになります。 (111.33f, 1408.41f) (-212.87f, 1225.16f) この座標系の範囲は次のとおりです。 X range: -533.333 to 533.333 Y range: 533.333 to 2133.333 これは非常に単純な数学だと思いますが、何らかの理由で理解できません。 提供された座標を最初の座標系に変換するにはどうすればよいですか?
10 2d  coordinates 

2
2Dゲームと最新のOpenGL
事前概念 わかりました、それで私がこれまでに集めたのはこれです: 固定パイプラインを使用しない(非推奨または非推奨) vbosは「オブジェクトモデル」を格納します(n頂点データ、ほとんど) vaosは、データがどのように配置されるかを記述し、描画呼び出しが各vboのどの部分がどの種類の頂点情報に対応するかを認識します(1つのvaoは複数のvboを参照でき、その逆は少し難しい) 各描画呼び出しは、シェーダーに頂点データも送信します 3Dの見方(オプション) これらの情報があれば、3Dの複雑なオブジェクトの描画が最新のOpenGLで非常に優れていることがわかります。基本的に、(おそらくBlenderまたは他の同様のソフトウェアからの)オブジェクトモデルの束をローカル座標を持つVBOにロードし、次に、オブジェクトの各インスタンスに異なるシェーダーパラメーター(オフセット)を指定して、ワールドスペースに描画します。 問題/質問 ただし、2Dでは問題と優先順位はまったく異なります。それほど複雑なオブジェクトを描画する必要はありません。複雑な投影行列は必要ありません。シェーダーははるかに単純です。 最新のOpenGLで頻繁に(実際には頻繁に、基本的にすべてのフレームで)変化するジオメトリを描画するための最良の方法は何でしょうか? 次の段落では、問題のいくつかの考え(円と四角形の問題)を見ることができます。これにより、興味のある変更の種類をより明確に識別できます。 私の試み(オプション) そこで、基本的な2Dジオメトリを画面に描画する方法を考え始めました。 正方形:[(1, 0), (1, 1), (0, 1), (0, 0)]ローカル空間で正方形のジオメトリのVBOを読み込み、シェーダーに正方形の実際の幅と世界座標および色情報を提供します 涼しく、簡単に見えます。円に移動しましょう: 円:三角ファン...ええ。どのくらいの精度(頂点の数)?小さな円の精度は小さく、バグの円の精度は高くなければなりません。明らかに1 VBOをロードしても、すべてのケースに対応できるわけではありません。円のサイズが大きくなるために精度を上げる必要がある場合はどうなりますか? かっこいい。少し簡単な長方形に移動しましょう。 長方形:ええ。「一般的な長方形のジオメトリ」はありません。幅と高さの比率があればそれだけですが、サイズが変化すると、各長方形はおそらく異なります。 ご覧のとおり、物事はそこから下り坂になります。特に複雑なポリゴンなどではそうです。 コードポリシーなし:P アイデアの概要が必要なだけで、コードは必要ありません。特にCまたはC ++コードは必要ありません。「この頂点データでVBOを作成し、それをバインドする...」のように言ってください。
10 opengl  2d  vbo  vao 

1
Unity 2Dのピクセルアートを理解する
Unityのピクセルアートの背後にある基本を理解するのに苦労しています。 ユニットとは何かを理解しています。16x16ピクセルでスプライトを描画する場合は、PPUを16に設定する必要があります。 たとえば、スターデューバレーを見てください。下の画像では、プレーヤーが正方形ではないことがはっきりとわかります。ゲームの作成者は、すべてを16x16で作成したと言いましたが、キャラクターにはどのように多くの詳細がありますか?(タイルマップの場合のように)キャラクターを作成するためにいくつかの16x16の正方形にパッチを適用しませんか? 画像内の文字のように、正方形ではないものを処理する「一般的な」方法は何ですか。16x32スプライトを作成し、PPUを16に設定しますか?16x16スプライトの横で少し奇妙に見えるのではないでしょうか?通常、1つのサイズ(つまり、16、32、64)を選択して、ゲームのすべてのサイズを維持しますか? 私が見た視覚的な問題はこれです。32x32スプライトが16x16スプライトの隣で非常に場違い(鋭すぎる)に見えます。 したがって、1つの画像が他の画像よりもはるかに鮮明に見える場合に、この効果を得るためにどのようにサイズを混合するのでしょうか。たとえば、タイルが16x16のときに、文字を16x32、または非正方形の値にしたい場合

2
2Dグリッドの障害物で「見通し線」をシミュレートしますか?
興味深い問題にぶつかった。見通し線をシミュレートする方法を理解する必要があります-障害物がある2Dグリッド上で十分に単純です。グリッドセルが表示されているか、表示されていません。 プレイヤーからn個のスペースを広げたり、隣接する障害物が検出されたときに水平方向の伝播をブロックしたりするなど、本当に初歩的なものを得ることができますが、それを我慢することはできません。他の多くのアプリは、隅などの視線を傾斜させるより洗練された方法を使用しており、私は標準に近づきたいと思っています。 これまでのところ、困惑したときのDCSSは私のインスピレーションの源でした。私は彼らが持っているものに近いものを手に入れたいと思っています:http : //crawl.sz.org/。 どんな洞察もいただければ幸いです-助けてくれてありがとう! (これが恥ずかしいほどにうるさい場合は許してください-数週間前にゲーム開発を始めただけで、追いつくように頑張っています。)
10 2d  grid  line-of-sight 

4
タイルベースのゲームで隠されていないタイルを見つける
私は2Dタイルベースのゲームに取り組んでおり、現在、2D相当のシャドウボリュームを機能させることを試みています。影を落とすべき表面を見つけられません。ゲームのどの時点からでも、隠されていない顔、またはタイル全体を見つける必要があります。 私の質問は、ポイントを与えられた場合、これらのタイル/エッジをできるだけ速く見つけるにはどうすればよいですか?

1
マップ上に手続き的に生成された2Dカーブ道路
自分が取り組んでいるゲームのロードマップを自動的に生成するアルゴリズムを試しています。 「Kingdom Rush」ゲームは見栄えのするマップがいくつかあるので、参照ポイントとして使用しています。 私は手続き型のコンテンツ生成に不慣れで、ここに誰かがポインタを持っているのではないかと思っていました。いくつかの入口/ソースノード、いくつかの内部ノード(分岐とマージ)、いくつかの出口シンクノードなどのランダムな道路トポロジを生成し、グラフレイアウトアルゴリズムを使用して、この情報に基づいて実際の道路地図を作成する実験をしました。 以下は、道路レイアウトにFruchterman-Reingoldアルゴリズムを使用した1つの例です。 青いグラフは、ランダムに生成されたベジェコントロールポイントを使用して、エッジの直線性を低下させています。 同じアルゴリズムを使用して生成された別の例ですが、乱数は異なります。 問題は、ほとんどの結果が非常によく似たものになってしまうことであり、手順で生成されたマップの制御性と多様性を改善するためにどのルールを追加できるかわかりません。 助言をいただければ幸いです。

1
2Dトップダウンタイルの有向水流をどのようにレンダリングしますか?
私は、ドワーフフォートレスに触発された、トップダウンのタイルベースのかなりグラフィカルな2Dゲームに取り組んでいます。私はゲームの世界で、いくつかのタイルをカバーする川を実装する段階にあり、各タイルの赤い線で下に示すように、各タイルのフロー方向を計算しました。 グラフィカルスタイルの参考として、現在の私のゲームの外観は次のとおりです。 必要なのは、各河川タイルを流れる水をアニメーション化して、流れが周囲のタイルに溶け込み、タイルのエッジが見えないようにするためのいくつかの手法です。 私が見つけたものに最も近い例はhttp://www.rug.nl/society-business/centre-for-information-technology/research/hpcv/publications/watershader/に記載されていますが、私は完全ではありませんその中で何が起こっているのか理解できるようになった時点で?シェーダープログラミングについて十分理解しているので、独自の動的照明を実装しましたが、リンクされた記事で取り上げられているアプローチを理解することはできません。 誰かが上記の効果がどのように達成されるかを説明したり、私が望む結果を得るための別のアプローチを提案したりできますか?上記の解決策の一部はタイルを重ねて(どの組み合わせであるかはわかりませんが)、歪みに使用される法線マップを回転させます(これも詳細についてはわかりません)。助けて!

2
アニメーターでスパゲッティを避けるには?
Unityでアニメーションを操作していますが、これまでに4つ(上下左右)しか作成しておらず、アニメーションウィンドウは次のようになっています... 問題は、私が上に移動している場合、ヒーローが「ニュートラルアイドル」(または彼が開始したもの)に移動しないで上を見続けることを望んでいることですが、それは私が4つのアイドルポジションを持っていることを意味します... 、左または右、彼らは追加の各アクションで指数関数的に行く... これは私が何か間違っているように感じます... 異なるアクション間で遷移するより良い方法はありますか?
9 unity  2d  animation 

1
2D物理エンジンで、オブジェクトが静止したときに不要な衝突解決を回避するにはどうすればよいですか?
love-2dを使用して(学習用に)開発している物理エンジンで、衝突解決を次のように実装しました。 FixedUpdate(dt) // I use fixed timestep foreach collide c1 in allNotStaticColliders c1.integartePhysic // i.e. apply gravitational force.. foreach collider c2 "near" c1 // "near"= I use spatial hashing if collide(c1,c2) resolve collision (c1,c2) // the heavy operation collison callbacks c1 collison callbacks c2 ... gifアニメーションの最後にあるように、すべてのコライダーが静的オブジェクトにほぼ固定されている場合は、FPSの減衰があります。 これは、オブジェクトが落ち着くまでの接触時間を長くすると、衝突解決の数が増えるためです。ただし、オブジェクトはすでに互いに安定した位置に落ち着いているため、計算の多くは「役に立たない」ものです。 これらの「役に立たない」衝突検出を回避するためのベストプラクティスは何ですか(できれば物理学の学位を必要としないでしょう)。 編集:DMGregoryのヒントを受け入れ、この結果になります(まだ最適ではありません) (赤=静的、青=アクティブ、緑=スリープ)


3
2Dレンダリングにフル解像度の深度バッファーを使用する
私は正投影を使用して2Dエンジンの前面から背面へのレンダラーに取り組んでいます。オーバードローを避けるために深度バッファーを使用したい。16ビットの深度バッファーがあり、Z = 100でZ = 0を見ているカメラ、zNearが1、zFarが1000です。レンダリングされた各スプライトは、Z座標を次第に離れた値に設定し、深度テストでレンダリングをスキップできるようにします下にあるものは何でも。 ただし、Z位置がZバッファ値で終わる方法が非線形であることは知っています。私は、16ビットの深度バッファのフル解像度を利用したいと考えています。つまり、65536の一意の値を許可しています。したがって、レンダリングされるすべてのスプライトについて、Z位置を次の位置にインクリメントして、次の一意の深度バッファー値に関連付けます。 言い換えると、描画されるスプライトのインクリメントインデックス(0、1、2、3 ...)を各スプライトの適切なZ位置に変更して、一意の深度バッファー値を設定します。この背後にある数学についてはわかりません。これを行うための計算は何ですか? 注:私はWebGL(基本的にはOpenGL ES 2)で作業しており、幅広いハードウェアをサポートする必要があるため、gl_FragDepthなどの拡張機能でこれが簡単になる場合もありますが、互換性の理由で使用できません。

3
AIを動かすときに重力を考慮する方法
2Dゲームを作っています。現在、プレイヤーが操縦するヘリコプターが飛び回っています。矢印キーを使用して制御されます:上、左、右。 Y軸に沿った速度はdy、X軸に沿った速度はdxです。 物理は次のとおりです。 たびUPが押されていない、dy、一定の加速度で加速し、無期限にダウンに向けました。(重力)。dx現在の値のままです。 場合UPが押され、dyそれが現在、あるものは何でもから一定の加速度で加速4まで(それは速度4に達するまで、上向きに)。dx現在の値のままです。 場合LEFTが押され、dxそれが現在、ある何から、一定の加速度で加速-4まで。 場合RIGHTが押され、それが現在、ある何から、一定の加速度で加速DX、4まで。 (私が言ったように、左または右が押され、同時に上が押されていない場合:dy重力がヘリコプターに影響しているため、ますます小さくなります) これにより、ヘリコプターは直線ではなく、空中のアーチに追従することがよくあります。 これにより、非常に現実的な物理が作成されます。 私の質問は: AIである敵のヘリコプターも同じ物理システムを使用して移動する必要があります。 AIが現在の場所からポイントBに移動したいとします。 ゲームに重力も緩やかな加速もなければ、それは簡単でしょう。AIの位置からポイントBまでのベクトルを描き、AIにそれを追跡させるだけです。 以来、しかし、そこにある重力と徐々に加速、AIは直線的に移動することはできません(ほとんど)。可能な限り時間効率的にAIをポイントBに移動させる最良の方法は何でしょうか? AIを特定の目的地に向けて移動するときに、重力をどのように考慮することができますか? (説明しやすい場合は、B点がAIと対角線ではなく、AIと同じy軸上のレベルにあると考えてください。) ありがとう
9 2d  physics  ai 

1
2Dゲームに最新のOpenGLを使用する方法
3D用の「モダンな」OpenGL(3.0+)チュートリアルをたくさん見つけましたが、2Dゲーム開発にそれを使用する方法に関する情報を探したところ、ほとんど何も見つかりませんでした。2D gamedevにOpenGLを使い始めるにはどうすればよいですか? 具体的には、以下のトピックに対する回答を得ることに興味があります。 さまざまなマトリックスを正投影に設定するにはどうすればよいですか? シェーダーは2Dアプリケーションで3Dアプリケーションと同じくらい頻繁に使用されますか?もしそうなら、2D設定での目的は何ですか? 2Dゲームに明らかに必要な膨大な数のテクスチャをどのように処理すればよいですか? 比較的幅広い質問をお詫び申し上げますが、検索に長い時間を費やしており、最新のOpenGLに適用される有用な情報はほとんど見つかりませんでした。
9 opengl  2d 

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