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

空間と時間を介したオブジェクトの動きに関連します。加速(推力と重力)、質量、衝突応答、摩擦などの概念を含みます。

2
壁の上を歩くことができるキャラクターを作成するにはどうすればよいですか?
キャラクターがクモのように動くようにしようとしています。通常、ボールがロールアップできない傾斜が上昇すると、クモはゆっくりとupい上がります。 同様に、空中に長方形のプラットフォームがある場合、クモはエッジに到達したときに倒れるのではなく、エッジを包み込み、プラットフォームの側面と下側に続きます(最終的にプラットフォームの周囲を歩きます)。 さまざまなUnity 2Dコンポーネントを調べましたが、ほとんど成功していません。:( 私の世界の衝突境界のほとんどは、Collider 2Dコンポーネントによってマークされています(重力の影響を受けた単純なボールではうまく機能しますが、このスパイダーキャラクターではそれほど効果がありません)。

11
2Dゲームには未来がありますか?[閉まっている]
私は現在2Dソフトボディ物理エンジンに取り組んでいます(現時点ではどれも存在しないので-_-)が、おそらく何年もかかることに費やしても意味がないのではないかと心配しています。 私はそれに取り組んでいますが、そのようなエンジンは、図書館にお金を払ってくれる人なら誰でも3Dで動作する可能性が高いことを考えると、収入を得られるとは思いません。 2Dゲームには、ゲーム業界に何らかの未来がありますか? エンジンを落として、作業に意味のあるものを見つける必要がありますか? ボーナス: 多次元のゲームを見て、2Dゲームで物理エンジンを実装するユニークな方法を考えていましたが、それでもPaper Marioのような2Dパースペクティブです。何か案は?

6
2D物理エンジンにラッピングワイヤ(Worms Ninja Ropeなど)を実装する
私は最近、ロープ物理学を試してみましたが、「標準的な」解決策-スプリングまたはジョイントでつながれた一連のオブジェクトからロープを作成すること-が満足できないことがわかりました。特にロープスイングがゲームプレイに関連する場合。ロープが巻き付いたり垂れ下がったりする能力はあまり気にしません(とにかくこれはビジュアルのために偽造されます)。 ゲームプレイにとって重要なのは、ロープが環境を包み込み、その後に包みを解く能力です。それはロープのように振る舞う必要さえありません-直線のセグメントで構成された「ワイヤ」はそうするでしょう。以下に例を示します。 これは、Wormsゲームの「Ninja Rope」に非常によく似ています。 私は2D物理エンジンを使用しているため、私の環境は2Dの凸ポリゴンで構成されています。(具体的には、FarseerでSATを使用しています。) だから私の質問はこれです:「ラッピング」効果をどのように実装しますか? ワイヤーが「分割」および「結合」する一連の線分で構成されていることは明らかです。そして、その線の最後の(アクティブな)セグメント(移動するオブジェクトがアタッチされる)は、固定長ジョイントになります。 しかし、アクティブなラインセグメントをいつ、どこで分割する必要があるかを決定するために必要な数学/アルゴリズムは何ですか また、前のセグメントと結合する必要がある場合はどうなりますか? (以前、この質問は動的環境でこれを行うことについても尋ねていました-私はそれを他の質問に分割することにしました。)

5
ネットワーク化された2Dゲームでの遅延補償
基本的に物理学に基づいたサンドボックス/アクティビティゲームである2Dゲームを作りたいです。しかし、私には本当に理解できないことがあります。調査から、サーバーからの更新は約100ミリ秒ごとであるように思われます。プレイヤーが物理学を同時にシミュレートし、補間によって遅延補償を行うことができるため、これがプレーヤーに対してどのように機能するかを見ることができます。 私が理解していないのは、これが他のプレーヤーからの更新に対してどのように機能するかです。クライアントが100ミリ秒ごとにプレーヤーの位置のみを通知される場合、100ミリ秒で多くのことが発生する可能性があるため、その動作がわかりません。プレーヤーはその時間に2回程度方向を変えた可能性があります。誰かがこの問題について何らかの洞察を持っているのではないかと思っていました。 基本的に、これは撮影などでどのように機能しますか? ありがとう

5
グリッドベースの液体シミュレーションでの圧力のシミュレーション
XNAゲームには2Dグリッドベースの水システムがあり、セルオートマトンを使用して水の落下と広がりをシミュレートする方法があります。 斜面を流れる水の例: 各タイルには、0〜255の値の液体を1バイトで格納できます。私が使用していfloatsた古い水道システムは使用しませんが、複雑さを増し、パフォーマンスに打撃を与えました。 各水タイルは、単純なルールセットで自動的に更新されます。 下のタイルにスペースがある場合は、可能な限り現在のタイルから下のタイルに移動します(フローダウン) 2つの側面が同じでなく、ゼロでなく、両方とも通過可能である場合、3つのタイルの合計(左+現在+右)を取得し、3で除算して残りを中央(現在の)タイルに残します 上記のルールが合計として2の数を与えた場合、タイルを2つの側面(1、0、1)に分割する必要があります ルール2が合計として1を与えた場合、流入するランダムな側を選択します ルール2が失敗した場合、一方が合格でもう一方が合格でないかどうかを確認する必要があります。それが当てはまる場合、2つのタイルに対して現在のタイルを半分に分割します このロジックを拡張してプレッシャーを含めるにはどうすればよいですか?圧力がかかると、液体が「Uベンド」を超えて上昇し、エアポケットが満たされます。 これが現在どのように失敗するかの例: 水はUベンドの両側で流れ、均等化されるはずです。さらに、ウォーターブロックがどれくらい下にあるか、したがってどの程度の圧力が発生しているかを調べるためのメソッドを作成しました。ここで、これらの数値を取得して他の領域に適用し、圧力を均等化できるようにする必要があります。
30 xna  c#  physics  grid  water 

2
EA DICEはBattlefield Bad Company 2およびBattlefield 3で破壊可能な環境をどのように作成しましたか?[閉まっている]
EA DICEの人々はどのようにしてBattlefield Bad Company 2およびBattlefield 3で破壊可能な環境を作成しましたか? 彼らは、爆発やそれに類するものがあったときにばらばらになる、事前に定義されたサブリージョンから建物を組み立てただけなのでしょうか?他に何も考えられません。
30 physics 

3
さまざまなインテグレーターの長所と短所[非公開]
ゲームで物理学などを作成する場合、インテグレーターが必要です。Verlet統合では、オイラー統合に代わる優れた代替手段としていくつかの場所を挙げています。例えば、トーマス・ヤコブセンによる有名な文書で。ただし、この記事ではグレンフィードラーは次のように書いています。 存在するさまざまなインテグレーターの膨大な配列を紹介するのではなく、私は追いかけて、ベストを尽くします。このインテグレーターは、R​​unge Kutta Order 4インテグレーター、別名RK4と呼ばれます。 したがって、特効薬はありません。さまざまなインテグレーターの長所と短所は何ですか?シンプルさ、速度、精度、安定性などに関して、どのインテグレーターがどのタイプのゲームに最も適していますか?Verlet、RK4などをいつ使用しますか?オイラーを使用する必要がありますか?
29 physics 

10
Pongでは、パドルから跳ね返ったボールの方向をどのように計算しますか?
ゲーム開発におけるこの非常にHello World-yの問題を回避しようとしています。XNAでTicTacToeゲームを作成したので、次のステップはBreakoutクローンになると思います。 ゲームプログラミングについての知識も、どこにどの数学を適用すべきかも知らないことを覚えておいてください。それが私がこの質問をしている理由です。 質問:画面の下部にあるパドルに当たったときにボールが跳ね返る場所を判断するにはどうすればよいですか? 私はそれが次のようなものになると想像します: 入ってくるボールから速度と角度をキャプチャします。 バーに触れた場所(左端、右端、中央)を検出し、それに従って外側の領域に触れた場合により高速になります。 これは私が立ち往生しているところです。へへ。 洞察はありますか?これは単純な回答タイプの質問ではありませんが、ある時点で誰もが直面するものであると確信しています。 このウェブサイトで推奨されている「線形代数」という本を読んでいますが、ここで適用すべきかどうかはまだわかりません。
28 xna  c#  2d  mathematics  physics 

2
クアッドツリーとグリッドベースの衝突検出
私は4人のプレイヤーが協力するrタイプのゲームを作成しており、衝突検出コードを実装しようとしています。衝突検出の処理方法に関する多くの記事や資料を読みましたが、何をすべきかを考えるのに苦労しています。クワッドツリーが最も一般的な方法であるように見えますが、一部のリソースではグリッドベースのソリューションに言及しています。前のゲームで検出にグリッドを使用したことで、私はそれに満足していますが、実際には四分木よりも優れていますか?どちらが最高のパフォーマンスを提供するかわかりません。また、少しベンチマークを実行しましたが、両方のソリューションに大きな違いはありません。 一方が他方より優れていますか?またはよりエレガント?どれを使うべきか本当に分かりません。 どんなアドバイスも大歓迎です。ありがとう。

3
チームはソースファイルの上書きをどのように防止しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 たとえば、ゲームエンジンなどが複数の人によって同時に処理されているときに、上書きをどのように防ぐことができるのか、ということが起こりました。 開発者1が作業してAudio.cppおり、開発者2も作業をしているとしましょう。Audio.cppこれは、一般的に大規模なチームで上書きに対処するためにどのように管理されていますか?(つまり、開発者2がファイルを開くのを停止して、開発者1が終了するまで)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

6
回転するオブジェクトが右端でターゲットにヒットすることを確認する方法は?
私は、プレイヤーが自由に狙いを定めてナイフを投げる投げナイフタイプの武器に取り組んでいます。ナイフは空中を回転し、衝突すると回転を停止し、衝突したオブジェクトの親になります。回転はアニメーションによって処理され、ナイフのパスは物理学によって処理されます。 私が直面している問題の1つは、ナイフが敵に衝突したときに、ナイフが敵に向かっていることを確認する方法です。現時点では、時々ナイフが敵のハンドルに最初に埋め込まれることがあります。これは明らかに非現実的です。同時に、ナイフが回転する速度はプレイヤーの制御を超えているため、ナイフが最初にブレードに衝突した場合にのみナイフを敵に「ヒット」させるのは非常に不合理だと思います。 私は同じような武器の多くの遅いキルカム映像を見てきました、そして武器が投げられるたびに空中を回転し、魔法のように常にそのターゲットを指しているブレードで終わります。投げる距離が一定になるゲームの場合、これは非常に簡単です。しかし、予測できない多くの要因が関係しているので、これをどのように予測するかはよくわかりません。ナイフの方向、ナイフの回転、敵の位置、敵からの距離など。可能であれば、ゲームはかなりローエンドのデバイス向けであるため、複雑な予測ロジックを使用する必要はありません。これを解決する「煙と鏡」の方法はありますか? 例:https : //youtu.be/0fav8lFpBko?t=42s


4
このコードの「デルタ」のポイントは何ですか?ゲーム開発の標準的なものを反映していますか?
私はゲームのプログラミングについてほとんど知りませんが、もっと学びたいです。このゲームのコードを理解しようとしています。私はコードがShipcontrols.jsに「デルタ」を渡している理由を理解しようとしています。これはユーザーの入力に基づいて船の方向を変更します。 基本的に、ゲームはループごとに「デルタ」を計算します... これは、1つのループを介してデルタを使用するスタックの短縮バージョンです... var delta = now - this.time; this.time = now; this.current.render.call(this.current, delta, this.renderer); ここへのステップ... ctx.manager.add("game", scene, camera, function(delta, renderer) { if(delta > 25 && this.objects.lowFPS < 1000) this.objects.lowFPS++; var dt = delta/16.6; this.objects.components.shipControls.update(dt); ここへのステップ... bkcore.hexgl.ShipControls.prototype.update = function(dt) { var pitchAng; var yaw; var roll; if (undefined != hand){ …

7
マルチスレッド2D重力計算
私は宇宙探査ゲームを構築しており、現在重力に取り組んでいます(XNAを使用したC#で)。 重力はまだ調整が必要ですが、それを行う前に、物理計算でパフォーマンスの問題に対処する必要があります。 これは100個のオブジェクトを使用しており、通常、物理計算なしで1000個のオブジェクトをレンダリングすると300 FPS(私のFPSキャップ)をはるかに超えますが、10個以上のオブジェクトがゲーム(および実行される単一スレッド)を物理計算を行う際のひざ。 スレッドの使用状況を確認したところ、最初のスレッドはすべての作業から自分自身を殺していたため、別のスレッドで物理計算を行う必要があると考えました。ただし、別のスレッドでGravity.csクラスのUpdateメソッドを実行しようとすると、GravityのUpdateメソッドに何も含まれていなくても、ゲームはまだ2 FPSになります。 Gravity.cs public void Update() { foreach (KeyValuePair<string, Entity> e in entityEngine.Entities) { Vector2 Force = new Vector2(); foreach (KeyValuePair<string, Entity> e2 in entityEngine.Entities) { if (e2.Key != e.Key) { float distance = Vector2.Distance(entityEngine.Entities[e.Key].Position, entityEngine.Entities[e2.Key].Position); if (distance > (entityEngine.Entities[e.Key].Texture.Width / 2 + entityEngine.Entities[e2.Key].Texture.Width / 2)) …

3
ゲーム開発のための物理学に関する良い本は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 ゲーム開発における物理学のテーマに関する優れた初心者向けの本を探しています。2Dゲームに焦点を合わせたものが望ましいでしょう。
23 2d  physics  books 

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