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

空間内のオブジェクトの2Dレンダリング。

1
Unity3D-2Dスプライトをテッセレーションする方法?
2Dスプライトで動的な頂点ライティングを使用しています。大きいスプライトでは、小さいスプライトよりも照明が醜くなります。これは、すべてのスプライトが2つの三角形の四角形であるためです。広い領域を照らすのに十分な頂点がありません。 スプライトでより多くの三角形を使用する方法はありますか?彼らがカバーしている画面スペースの大きさにもよるでしょうか?

3
Unityが2Dモードである場合、なぜスケーリングとデフォルトのothographicサイズを採用しているのですか?
以前にSFML、XNA、Monogameなどを使用して2Dゲームを作成しました。画面に100pxのスプライトを表示すると、100px かかります。128pxタイルを使用して背景を作成する場合、最初のタイルは(0、0)にあり、2番目のタイルは(128、0)にあります。 一方、Unityには独自の奇妙な単位系があり、すべての変換、ピクセルから単位への変換、オソグラフィックサイズなどでスケーリングされます。つまり、私の質問は2つあります。 Unityがデフォルトで2Dのこのシステムを持っているのはなぜですか?モバイル開発用ですか?私には見られない大きなメリットはありますか? Photoshopに128x128のスプライトがある場合、ゲームを実行するとUnityで128x128のスプライトとして表示されるように、環境を設定するにはどうすればよいですか? デスクトップのみをターゲットにしていることに注意してください。
8 2d  unity  sprites  camera 

1
カスタマイズ可能な2Dキャラクターのスプライト作成をどのように処理すればよいですか?
ブラウザベースのMMORPGのアバターアニメーション(スプライト)を作成したいのですが。プレイヤーはキャラクターをカスタマイズすることができ、コンテンツは頻繁に変更されます(新しい武器、鎧など)。すべてのスプライトシートの作成と更新を構造的に管理するにはどうすればよいですか? さまざまな組み合わせの量は、すべての順列を生成するだけでは機能しないほど十分に大きいです。 これはサーバーベースまたはクライアントベースにすることができますが、完全にクライアントで機能する場合は、HTML5 / CSS / Canvas / WebGLだけにしてください。

1
2DスプライトのMipマップにより、上の黒い線が発生します。どうしてこれなの?
Unityは初めてです。私はそれを試し、コード優先のアプローチにFutileを使用していますが、Unityシステムを使用してテクスチャをインポートしています。 私が抱えている問題は、ミップマップを使用して、大きなスプライトをギザギザのエッジなしで小さいサイズに縮小すると、スプライトの上に黒い線のアーティファクトが発生することです。 少し見にくいですが、そこにあります。解像度を下げると、はっきりと見えます。 これらは私のテクスチャ設定です: 私の質問は、なぜこれらの黒い線がここにあるのですか?私が犯した間違いですか?それは単なる一般的な副作用ですか?どうすればこれらを減らすことができますか?また、これが間違ったアプローチである場合、ゲームでスムーズスプライトを使用して、スムーズにスケールアップできるようにする方法を教えてください。 ありがとう!

1
回転に最適なスプライトサイズ
私はスプライトベースのゲームを作っていて、途方もなく大きな解像度で大量の画像を取得していて、それらをゲームリソースに変換する前に目的のスプライトサイズ(たとえば64x64ピクセル)にスケーリングしているので、ゲーム内のスプライト、私はそれをスケーリングする必要はありません。 ただし、この小さなスプライトをゲーム内で(エンジンにとらわれずに)回転させると、一部の宛先ピクセルが補間され、スプライトがぼやけて見えます。 これはもちろん、回転角と補間アルゴリズムに依存しますが、それにもかかわらず、特定の宛先ピクセルを正しくサンプリングするのに十分なデータがありません。 だから私が考えることができる2つのソリューションがあります。1つ目は、元の巨大な画像を使用し、それを必要な角度に回転させてから、すべての反発バリエーションを縮小し、アトラスに配置することです。これは、実装が非常に簡単であるという利点がありますが、単純に2倍のスプライトを消費します。各回転のスペース(各回転は、元のスプライトの長方形の対角線である直径の円に内接する必要があり、その面積は正方形のスプライトを想定して、元の長方形の2倍です)。 また、ゲームによっては大丈夫かそうでないかを問わず、事前に定義されたローテーションのセットしか利用できないという欠点もあります。 したがって、もう1つの選択肢は、より大きな画像を保存し、レンダリング中に回転および縮小することです。これが私の質問につながります。 このスプライトの最適なサイズは何ですか?最適な意味は、大きな画像が結果の画像に影響を与えないことを意味します。 これは、画像サイズ、データ損失のない望ましい回転量である1/256に完全に依存しています。これは、表現可能な最小の色差です。 私はこの問題に対する理論的な一般的な答えを探しています。たくさんのサイズを試してもかまいませんが、最適とはほど遠いからです。
8 2d  sprites 

3
2つ以上のスプライトをグループ化する簡単な方法はありますか?そのため、それらすべてが互いに依存しますか?
私はこの質問が非常によく似ていると思い、この 1、私は答えが普遍的なものであるかはわかりません。 だから、私の目標は: 2つのスプライトを固定位置に配置します。たとえば、プレーヤーと彼の目 プレーヤーが回転するたびに、目のスプライトも回転し、体から同じ相対位置に到達するようにしてください(目がプレーヤーの後ろにないようにします)。したがって、彼らはグループとして作業します。-このステップは自動化する必要があります。それが私の目標です! たとえば、今度はユーザーの手に銃を置きたいと思います。だから今私は、そのプレイヤーが配置されVector2(0, 0)、銃が配置されていると言いVector2(26, 16)ます。次に、それらをグループ化したいので、プレイヤーが回転するたびに銃も回転します。 現在この例では大丈夫ですが、y軸(のみ)に銃を移動する必要がある場合は、迷っています
8 xna  c#  2d  sprites 

2
XNAの別のクラスからGame1クラスの変数にアクセスするにはどうすればよいですか?
SpriteManagerXNAでクラスを記述しようとしていますが、Game変数にアクセスする必要があります。たとえば、Game.Contentプロパティはテクスチャのロードに非常に役立ちGame.GraphicsDevice.Viewport、ウィンドウサイズを取得するのに役立ちます。 今のところ、私は次のクラスを持っています: public MainGame : DrawableGameComponent { public SpriteManager<Enemy> EnemyManager { get; get; } public SpriteManager<Powerup> PowerupManager { get; set; } ... } SpriteManagerクラスでこれらの変数にアクセスするには、3つの方法が考えられます。 私のスプライトマネージャークラスをから派生させGameComponentます。これは私のスプライトマネージャがで使用されていることを除いて、理想的ですMainGame、GameComponent。 ((Game) Game1)変数にアクセスするために使用します。ただし、この種のキャストを行うことは醜く、カプセル化を壊します。 からすべてを渡しますMainGame。たとえば、EnemyManagerは敵をスポーンするたびにランダムな敵タイプをロードする必要があるため、でテクスチャをロードする代わりに、プロパティをMainGame渡しEnemyManagerてGame.Contentテクスチャのロードを処理させます。しかし、これが状況を処理する最良の方法であるかどうかはわかりません。指を置くことはできませんが、ある意味「間違っている」ように見えます。 これを達成するための最良の方法についていくつかのアドバイスを使用できます。

3
2Dトップダウンビューマップ
これがどのように機能するのか疑問に思いました。 あなたはロードするか、完全なゲームの起動時にマップを、または実行時にマップの部分をロードするのですか? そして、どのように地図を保存しますか?XMLか、それともバイナリ形式ですか? ありがとう!
8 2d  tiles  sprites  maps 

2
ビットマップマスクを長方形のリストに減らすアルゴリズム?
自分でこれを書いて午後を過ごす前に、たとえ参考としても、すでに利用可能な実装があるかどうか尋ねたいと思いました。最初の画像は、長方形のリストにしたいビットマップマスクの例です。悪いアルゴリズムは、設定されたすべてのピクセルを1x1の長方形として返します。優れたアルゴリズムは2番目の画像のようになり、オレンジと赤の長方形の座標を返します。長方形が重なっているという事実は重要ではなく、返されるのは2つだけです。 要約すると、理想的な結果は次の2つの長方形(x、y、w、h)です。 [ { 3, 1, 2, 6 }, { 1, 3, 6, 2 } ]
7 2d  algorithm  sprites 

1
2D、さまざまなレベルのトップダウンマップ
それで、2D、トップダウン、スプライトベース(タイル)ゲームを作成しています。現在、マップ(現時点ではマップエディター)で作業していますが、マップを作成するので、基本的には同じです事)。 シナリオ それで、私は効率について考えて、地図をバラバラに作成しています。それぞれの作品で、「レイヤー」を持つことを計画しています。基本的に、私はそれを「ヒーローの下」レベルと「ヒーローの上」レベルまでレンダリングし、ヒーローが明らかにその間にレンダリングされることを計画しています。「ヒーローと同じレベル」のレイヤーも存在する可能性がありますが、私はまだそこにはいません。イベントや対話についてはまだ心配していません。画面上でヒーローを探しています。 移動のために、私は明らかにどのタイルがどの方向に移動できるかを知る必要があります。現時点での私の計画は、各タイルが8ビットを取得することです(4は「方向に入ることができます」ビット、4は「方向に出ることができます」)。これにより、移動を制限したり、一方向の方向移動を許可したりできます。 ジレンマ これは多くのシナリオに最適です。これにより、マップを基本的に3つのレイヤー(文字列)に保存できるようになり、今後の柔軟性が向上します。ただし、それ自体がレイヤーを持つマップを作成することはできません。良い例は、ユーザーが無効な動きを許可することなく、橋の下または上を移動できる橋です。私はプラットフォームを作成できず、その下を移動できません。これらは私のゲームに含めたいものです。 私の考え 理論的には、複数のヒーローレイヤーを許可してから、「下」と「上」のレイヤー(またはサンドイッチレイヤー)の複数のセットを許可できます。しかし、これは私のシステムを複雑にし、マップ間の移動を潜在的にトリッキーにします(ヒーローがマップの端の3番目のレイヤーにあるが、それが他のマップの2番目のレイヤーに対応している場合、移動を許可または禁止するにはどうすればよいですか)。 私の質問 このような複数のレベルを持つ複数のマップを管理するためのより良い方法はありますか?ユーザーレベルは異なるマップの異なるレベルで「接続」される可能性がありますか? あるいは... 私はこれを難しい方法でやっていますか?私が気付いていないトップダウンの2Dタイルマップを処理するより標準的な方法はありますか? 注意すべきこと、または役立つかもしれないこと これはJavaScriptで行われます(JSONで転送されます) 状態をすばやく転送する必要があるため、マップIDとx / y /方向は、ブール値の「移動可能」値を取得するのに十分なはずです。 マップは標準サイズではありません(特定のタイル数になります) 他の人に助けてもらえるように編集ツールを作るので、ツールで作成できるものが役に立ちます 「テレポーテーション」の場所は、マップの構築や、さまざまなマップセット(必ずしも接続されている必要はありません)へのアクセスや、マップセットへのアクセスのために存在している必要がありますが、まだ作成されていません(現時点ではイベントと一緒になっています)。

3
スプライトのグループの回転の原点を調整するにはどうすればよいですか?
現在、スプライトをグループ化して、描画に回転変換を適用しています。 private void UpdateMatrix(ref Vector2 origin, float radians) { Vector3 matrixorigin = new Vector3(origin, 0); _rotationMatrix = Matrix.CreateTranslation(-matrixorigin) * Matrix.CreateRotationZ(radians) * Matrix.CreateTranslation(matrixorigin); } ここで、原点は私のスプライトグループの中心点です。この変換をグループ内の各スプライトに適用します。 私の問題は、原点を調整すると、スプライトグループ全体が画面上で再配置されることです。 変換で使用される回転のポイントを、スプライトグループの位置とどのように区別できますか?この変換行列を作成するより良い方法はありますか? 編集 次に、Draw()関数の関連部分を示します。 Matrix allTransforms = _rotationMatrix * camera.GetTransformation(); spriteBatch.Begin(SpriteSortMode.BackToFront, null, null, null, null, null, allTransforms); for (int i = 0; i < _map.AllParts.Count; i++) …
7 xna  sprites  matrix 

2
スプライトの色を変更するにはどうすればよいですか?
私のリズムゲームには、ノートチャートによって異なる色のノートオブジェクトがあります。使用するすべての異なるカラーバリエーションを持つスプライトシートを使用できますが、これをパラメーター化したいと思います。(各ノートスプライトは、色相のさまざまな色合いで構成されています。たとえば、赤いノートは、赤、明るい赤、濃い赤のみを持ちます。) スプライトを新しく着色するにはどうすればよいですか? 私はOpenGLを使用していますが、アルゴリズムや数学の説明で十分です。:)
7 opengl  sprites  color 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.