ゲーム開発

プロおよび独立系ゲーム開発者向けのQ&A

1
ズームインおよびズームアウトできる2Dゲームでサウンドを減衰させるにはどうすればよいですか?
私の2Dゲームでは、滝のノイズやジェネレーターのハミングのようないくつかのアンビエントサウンドがあります。ただし、これらのサウンドを大音量で常に再生することは現実的ではありません。大きなレベルでは、このようなノイズの多くが重なり合うことは耳にとって非常に不快になるためです。 私は現在、プレイヤーまでの距離に応じて特定の音の音量を調節するシステムについて考えています。ただし、これは(たとえば)ズームされた状態では、プレーヤーが音源(滝など)からかなり離れている可能性があるため、画面には表示されても聞こえないため(これにより遠くへ)かなり厄介です。 そのような問題の解決策はありますか?

2
Unity3Dはインポートされた.obj頂点数をどのように減らしますか?
Unity3Dが.objファイルのインポートをどのように処理するかについて質問があります。私はこのティーポットをインポートしています:http : //groups.csail.mit.edu/graphics/classes/6.837/F03/models/teapot.obj このティーポットにある頂点の数は3644です。UnityのMeshクラスは、同じ頂点によって共有される各面に対してこれらの頂点を複製する必要があることを知っています。.objからインポートしたキューブでこれを試し、Debug.Log()を使用して頂点の数を出力しました。メッシュの頂点配列には24個の頂点があることがわかりました。 ただし、ティーポットでは元のファイルに3644の頂点があったため、Unityでは頂点の数は18960になります。代わりに、メッシュの頂点配列の長さを出力すると、3260(元のファイルよりも短い)と出力されます。 この最終的な目的は、UnityのWikiからOBJインポータースクリプトを変更して、このスクリプトから生成される頂点の数がUnityのネイティブインポーターと同じになるようにすることです。参照:http ://wiki.unity3d.com/index.php?title=ObjImporter注:このインポーターを使用して頂点数を出力したところ、結果は18960でした。 この頂点の削減がどのように達成されるかについて誰かが知っていますか?
8 unity  geometry  vertex  obj 

1
libgdxでテーブルの境界線を描く方法は?
私はlibgdxを使い始めたばかりで、現在TableLayoutに取り組んでいて、各セルの境界線をどのように描画できるのか疑問に思っています。 私はこれについていくつかの調査を行いましたが、このソリューションのみを思い付くことができるようです:https : //stackoverflow.com/questions/13828423/drawing-table-borders-in-libgdx-0-9-7 ただし、デバッグオプションをオンにするのは少しばかげてしまい、私が望むことではありません。セルの枠の色、太さを制御したい。とにかくこれを達成する方法はありますか? ありがとう!
8 libgdx 

2
サウンドエフェクトをスプライトアニメーションと同期させる標準的な方法は何ですか?
呪文付きのRPGがあり、各呪文アニメーションのフレーム数が異なり、サウンド効果に対する要件が非常に異なる状況を考えてみましょう。各呪文に関連付けられている連続したアニメーションは1つだけであると仮定しましょう(フルアニメーションを形成するために使用される複数のモジュラーピースとは対照的)、古い16ビットファイナルファンタジーゲーム。 サウンドとアニメーションを確実に同期させるために私が考えられる唯一の方法は、次のとおりです。 アニメーションのフレーム数を取得します。 アニメーションの各フレーム間の時間を取得します。(30 fpsの場合、フレームあたり1/30秒です。) 次に、アニメーションと正確に同じ長さのサウンドファイルを作成します。 つまり、アニメーションが5秒で30 fps、合計150フレームの場合、サウンドファイルも5秒になります。アニメーションの30番目のフレームで「インパクト」サウンドが必要な場合、これは、サウンドファイルに1.0秒のマークでインパクトのサウンドが含まれることを意味します。 最後に、アニメーションと効果音を同時に開始し、フレームとサウンドが同期することを期待します。 これは、フレームがスキップされるか、アニメーション中に何かが発生し、サウンドの再生が少し早すぎる、または遅すぎる場合に問題が発生し、サウンドとアニメーションが同期しなくなる可能性があるようです。これは最善のアプローチですか、それとも私が見ないだけのより良い方法がありますか? 答えが概念的なものである場合は特に、Cocos2Dに対する答えである必要はありませんが、cocos2dに対する特定の解決策がある場合は、ぜひ聞いてください。 編集:この方法では、後でフレーム数やアニメーションのタイミングを調整して調整した場合、戻ってサウンドファイルを変更する必要があることにも気づきました。これは、人為的エラーの恐ろしい原因のように聞こえます(アニメーションの変更後にサウンドファイルを更新するのを忘れている)。

1
「レディオアタイガー」パズルを作成するアルゴリズムは?
私の問題は何ですか: Raymond Smullyanによるパズルは次のように機能します。あなたは多くのドアのある部屋にいます。それらのドアの後ろには女性がいます。他の後ろにはトラがいます。あなたの目標は、正しいドアの1つ(女性のいるドア)を選ぶことです。すべてのドアに、のようなものを言う看板があります。このドアの後ろの女性がありますか扉IIおよびVIの背後にあるライオンがありますようにとは。ここで、真実を示す標識の1つだけまたはドアの標識がそのドアの後ろに女性がいる場合にのみ真であるなどの追加情報もあります。たとえば、最初のパズルは次のようになります。 2つのドアがあり、それぞれに1つの看板があります。兆候の1つは真、もう1つは偽です。 --------------------- --------------------- | DOOR I | | DOOR II | | There's a lady in | | In one of those | | this room and a | | rooms, there's a | | a tiger in the | | lady, in the other | | …

2
球面調和照明-それは何を達成しますか?
私の理解から、球面調和関数は、(アプリケーションによっては)照明の特定の側面を近似するために使用されることがあります。 たとえば、方向で使用しているすべてのバンドのSH係数を計算することにより、表面ポイントまたはその一部の指向性光源による拡散照明の原因を概算できるようですサーフェス法線のスケーリングと、スケーリングに必要なもの(たとえば、明るい色の強度、dot(n、l)など)でスケーリングします。 私がまだ理解していないのは、これが達成するはずのものです。通常の方法で拡散BRDFを評価するのとは対照的に、この方法でこれを行うことの実際の利点は何ですか。どこかに計算を保存しますか?通常の評価のスカラー結果から得られないSH表現に含まれる追加情報はありますか?

2
タイルベースのゲームでのスムーズな動き
キャラクターをタイル間でスムーズに移動させるにはどうすればよいですか?彼はタイルごとに移動しますが、それは専門外に見えます。さらに、矢印キーを押したままにすると、画面を横切って動きます。どうすればそれを防ぐことができますか?
8 java  movement  swing 

1
リフレッシュレートの異なる複数のモニターでレンダリングを処理するにはどうすればよいですか?
ユーザーが解像度と垂直同期間隔が異なる2台以上のモニターを使用している場合に発生する可能性のある状況に対処するための最良の方法は何ですか? これは、ゲームのタイムステップが固定されており、ウィンドウモードで実行されている場合に当てはまります。一方のモニターのフレームレートが60.056で、もう一方のモニターのフレームレートが59.94である場合、垂直同期は最終的にその仕事に失敗します。ゲームウィンドウがメイン画面から別の画面に移動した。 タイムステップが他の同期レートに適切に調整されていないため、一時的なエイリアシングも発生します。ゲームは通常、この問題にどのように対処しますか?
8 vsync 

4
マルチプレイヤーゲーム1vs1でのクライアントサイドの不正行為
私は単純なカードゲームを開発しています。そこでは、他の人間のプレイヤーに対してあなたを置くマッチメイキングシステムがあります。これは、使用可能な唯一のゲームモードであり、他の人間に対する1vs1であり、AIはありません。 不正行為をできるだけ防ぎたいです。私はここで同様の質問をたくさん読んだことがあり、クライアントを信頼できないこと、そしてすべての検証をサーバー側で行わなければならないことをすでに知っています。私はサーバー(とにかくマッチメイキングに必要)を用意し、サーバー側で検証を行うつもりですが、サーバー側のすべてを確認したい場合、これにより、サーバーは現在のすべてのゲームの状態を追跡でき、すべてのアクションを確認してください。そのサーバーをサポートするための資金やインフラがありません。 私の考えは、クライアントに対戦相手が行ったアクションの一部をチェックおよび検証させ、違法なアクションを見つけた場合は、サーバーに不正行為を通知し、サーバーにそれを検証させることです。これでもサーバーは現在のすべてのゲームを追跡する必要がありますが、クライアント側ではチェックできないいくつかの項目(デッキのカードの順序など)のみをチェックし、実際には間違っている場合にのみ他の項目をチェックするだけで、リソースを節約できます。 *(不正行為を許可せずにチェックできる人のみ!たとえば、プレイしたカードが手元にあるかどうかを確認できないため、手元にあるすべてのカードを知る必要があります) 要約すると、私の質問は:これは実行可能なアプローチですか?これを行うリソースを実際に節約するのでしょうか、それともこのメッセージを交換するためのサーバーとクライアントの余分な複雑さは価値がないのでしょうか?同様のアプローチを成功または失敗させたゲームを知っていますか? 読んで答えてくれてありがとう

4
状態の差分(デルタ)と信頼できない接続の送信
私たちはリアルタイムのマルチプレイヤーゲームを構築しています。このゲームでは、各プレイヤーがゲームループの反復ごとにその状態を報告する責任があります。 状態の更新は、信頼できないUDPを使用してブロードキャストされます。 状態データの送信を最小限に抑えるために、デルタ(変更された状態データに関係なく)のみを送信するシステムを考え出しました。 ただし、パケットが失われると他のプレイヤーがデルタを受信できなくなり、ゲームが予期しない動作をするようになるため、この方法には欠陥があります。 例えば: 状態は次の要素で構成されていると想定します:{positionX、positionY、health} Frame 1 - positionX changed --> send a packet with positionX only. Frame 2 - health changed // lost ! Frame 3 - positionY changed --> send a packet with positionY only. //他のプレイヤーは健康状態の変化について知らない。 では、どうすればこの問題を克服できるでしょうか?データ全体を送信することは常に可能であるとは限りません。


2
スキャンライン効果を実装するにはどうすればよいですか?
私はlibgdxの古いプラットフォーマーに取り組んでおり、次のような「スキャンライン」効果を持たせたいです。 私の最初の試みは、小さなテクスチャを作成し、それをフルスクリーンのクワッドに描画することでした。2つの異なる正射カメラモードを使用しました(1つはゲームのメインタイルマップ用、もう1つはスキャンラインテクスチャをレンダリングするため)。テクスチャがタイルマップにスタックしていることもあれば、大きすぎて画面全体が黒く覆われていることもあります。 2台のカメラとテクスチャを使用する私のアプローチは妥当ですか?この効果を達成するための良い解決策は何ですか?

1
スタークラフトの経路探索を行う方法は?
私はスタークラフト2のパスファインディングのようなものを実装する方法を理解しようとしています。群がったり、キューイングなどのすべての洗練された機能を探しているわけではありません。その他。しかし、私はスターファインダー1で使用されているものよりも優れたパスファインダーを求めています。 グーグル検索から私が行ったさまざまな答えは、ナビゲーションメッシュ上のA *と何らかの関係がある、および/またはある種の「可視性グラフ」を扱うことです。しかし、私は何をすべきかについて、いくぶん矛盾するか不明確な答えを得ました。 私が読んだことの1つは、三角形メッシュ(ナビゲーションメッシュ)の頂点に対してA *を実行することに関係しています。そして、どういうわけか私は方法を知らない「道をまっすぐにする」。しかし、それは最適性を保証するものではありませんよね? 私が持っていた別の質問は、スタークラフト2パスファインディングは、ユニットがコーナーを扱うときにポイントではなく、有限の半径を持つディスクであるという事実をどのように扱うのですか?また、アイドルユニットや他の移動ユニットなどの動的な障害に対処する方法。 検索結果でよく見られる一般的な超高レベルの概要ではなく、詳細な説明を探しています。 それが重要である場合、私はすでにパスファインディングに関するアミットのノートを見ました。私は聞いたが、計算幾何学:アルゴリズムとアプリケーションは読んだことがない。また、GDC 2011でのAIナビゲーションプレゼンテーションに関するブログ投稿では、Starcraft 2がnavmeshに制限付きのドロネー三角形分割を使用していると述べています。ブログの投稿ではBoidsステアリングと「地平線分析」について触れていますが、navmeshでコアパスファインディングがどのように行われるかについては正確には触れていません。

1
2.5d視差効果を作成するにはどうすればよいですか?
私は3Dグラフィックスとプログラミングにある程度のバックグラウンドがありますが、ゲーム開発は初めてです。現在、さまざまな可能性を模索しており、RPGゲームを作りたいと思っています。私は古典的な2Dアイソメビューについて考えていましたが、Diablo 2の外観と遊び方が本当に好きです。 私の質問は、-Diablo 2の視差効果をどのようにして実現できるのですか?すべてがベイクされたライトとシャドウで手描きされたように見え、見栄えも素晴らしく見えますが、移動すると遠近感に気づきます。 たとえば、Photoshopで正射投影法(古典的なピクセルアートスタイル、平行線のみ)で列を含む大きなホールを描いたとします。キャラクターが動き回るときに、このシーンに視差効果をどのように与えますか?すべてにカメラに面したスプライトを使用すると、遠くで問題なく見えるかもしれませんが、たとえば、文字が列(円柱)に近づくと、それは本当に偽物になります。 助言がありますか?ブリザードはディアブロ2でどのように視差効果を作りましたか? このスクリーンショットを参照してください:http : //guidesmedia.ign.com/guides/10629/images/act2tombs.jpg
8 2d  unity  graphics  2.5d 

3
ランナーゲームで坂道をジャンプする方法
2Dエンドレスランナーで、プレーヤーが坂を上って「速すぎて」走ってジャンプするとどうなりますか? たとえば、「通常」の場合: .O. . __..O_____ . / . / O/ _/ 彼が十分ゆっくりと右に動いている場合、彼は上向きにジャンプして表面の平らな部分に着陸します。しかし、彼があまりにも速く移動している場合、彼の前進運動が坂を通過するのに十分な高さになる前に彼を坂に接触させるため、ジャンプは効果がありません。速度が十分に高ければ、ジャンプは実質的にありません。 _________ / .O/ O/ _/ この問題を解決する既知の方法はありますか?私はそれが物理的に正しい*と知っていますが、他のゲームがこれを合理的に克服するために使用するテクニックはありますか? 最後の手段として、傾斜しすぎているすべてのスロープを削除する必要があります。 *プレイヤーが後ろにジャンプしないように制限する場合。
8 physics 

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