動作中にさまざまな機器を大量に使用できるように2Dキャラクターを作成するための最良のアプローチはどれですか?


14

2Dゲームを作成したいのですが、RPGなどのさまざまな組み合わせで、さまざまな装備を大量に身に付けるキャラクターを作りたいです。

したがって、ユーザーが肩とズボンを変更するとします。これはプレーヤーに表示され、これらのさまざまな装備はすべて、異なるキャラクターのアクション(ヒット、ヒット、魔法のスペルなど)に従う必要があります。

解決するのに最適なアプローチ/アルゴリズム/アーキテクチャを知りたい問題がいくつかあります。

1-スプライトまたはアニメーション

各アクションアニメーションの各機器に異なるスプライトを作成する必要がありますか?

機器のスプライトを持ち、回転や平行移動などのコードで直接アニメーション化する方が良いでしょうか(Flashのトゥイーンのようなものを使用)。

他のより良いオプションはありますか?(私は上記のアイデアが本当に好きではありません)

2-ポジション

キャラクターの動きの1つで、プレイヤーの視界の真正面を見るようになりましたが、プレイヤーの右側を示す動きを終了したとします(剣を片方からもう片方に振った場合など)。

たとえば、ユーザーの頭のように、ユーザーの一部を考えると、それは前から始まり、左に曲がります。

各ヘッド装備(ヘルメット、キャップなど)ごとに少なくとも3つの異なる位置を意味します。

これは間違いなく#1の質問の答えに影響します。それを達成する最良の方法はどのようなものですか?

3-レイヤー

腕を開いた状態で360度回転するキャラクターの動きを考えてみましょう。アニメーションの開始時には、彼の右手はユーザーの視界に近く、動きの途中では、おそらくアニメーションのキャラクターの体の後ろにあります。

#1の質問のオプションが何であれ、このスプライトまたはアニメーションをプレーヤーのビューに近づけて、後でプレーヤーのビューから遠くに変更するには、何らかのレイヤーモデルを使用する必要があります。

それを行う良い方法はありますか?

質問は非常に長く、理解するのが難しいことを知っています。図面を用意して、どれを説明しようとする方が良いと思うか教えてください。


あなたの芸術はどのレベルにあるつもりですか?レトロなピクセルアートが好きですか?または、これらのHDスプライト(既存のアートがあれば、私の応答を調整するのに本当に役立ちます)。
ジェシードーシー

こんにちはNoctrine。実際、私はそれを「芸術に依存しない」質問と考えています。わかりやすくするために、今週末後半に説明を書きます。ありがとう
-homemdelata

回答:


8

おそらく2D骨格アニメーションシステムを探しているようですね。残念ながら、3D-gfx-but-2D-gameトレンドに取って代わられたため、残念ながらそのための既製のシステムは知りません。


+1キャラクターを3Dにするだけの場合、これははるかに簡単です。
knight666

しかし、「3D-gfx-but-2D-game」の場合は、とにかく言及した解決策のいずれかを検討する必要があります。 10個のアニメーションを生成します:(
homemdelata

実際には、スケルトンにアタッチメントポイントがあるだけで、必要なものをドロップインできます。
-coderanger

2
適切なエディターを含む、XNA用の(オープンソースの)シンプルな2D骨格アニメーションライブラリを作成しました。youtube.com/user/srekel#p/a/u/0/46LIoFNdG_4およびyoutube.com/user/srekel#p/a/u/1/8sYkeu5k7XE
Srekel

これはほぼ正解です。実際、私が探しているのは、2Dアニメーション用の3D骨格システムであることがわかりました。そのためのアルゴリズムを見つける必要があります(存在する場合)
-homemdelata

8

Zorbaが言うように、ほとんどのレトロゲームはこれをしませんでした。なぜなら、(スプライトを使用して)機器のすべての部分にマルチフレームアニメーションが必要だからです。

いくつかの「怠yな」選択肢:

  • まったく異なるスプライトを作成する代わりに、ギアをパレットスワップします。
  • アニメートする身体の部分だけがギアに取り付けられていない部分になるようにキャラクターを描きます。同様に、キャラクターがとにかく鎧を1つしか身に着けられない場合は、代わりにヘルメットにしてください。そうすれば、頭を動かさずに体全体を自由にアニメートできます。
  • メインのゲーム画面ではキャラクターに単一のスプライトを使用しますが、サブスクリーンでは静的なポートレートで機器を表示します。そうすれば、アニメーションについて心配する必要はありません。

2

ウルティマシリーズのような古いゲームでは、可能なすべてのキャラクターポーズで1つの装備を実際に描画します。オクルージョンは、ギアを描画しないか(左のグローブがプレイヤースプライトの背後にある場合、心配する必要はありません)、または単にギアを前後の順序で描画することによって処理されます。

明らかにこれは非常に労働集約的であり、その結果、ユニークなギアの比較的少数の部品があり、そのギアの多くのパレット交換およびパレット変更バージョンがありました。

現代のゲームでは、3Dキャラクターを作ることを強くお勧めします。2Dに見えるアートが必要な場合、またはプラットフォームに実際の3Dの馬力がない場合は、3Dですべてをモデリングし、レンダリングし、最終結果を手で微調整する方が良いでしょう。

あるいは、微調整する必要がなく、フル3Dの処理能力はないが、巨大なスプライトライブラリを出荷したくない場合は、3Dモデルをパッケージ化し、リアルタイムでテクスチャにレンダリングすることができますモデルはゲーム内に表示されようとしています。


私が他の答えで言及したのと同じことはここでかなり重要です:さもなければ言及する解決策の1つを検討する必要があります10のアニメーションを生成します:(
homemdelata

2
実行時に「エンドスプライト」を合成します。「プレイヤー」用のスプライトはありません。各アニメーションフレームにレンダリングされるスプライトのリストがあります。プレイヤーが右を向いている場合、「左グローブ」、「左ブレーサー」、「プレイヤーキャラクター」、「ブーツ」、「パンツ」、「ボディアーマー」、「ヘルム」、「右ブレーサー」をレンダリングします。 、「右手袋」を順番に。次に、各ギアを個別にアニメーション化し、空中に浮かせます。
ZorbaTHut

1

James Da Silvaの本をチェックして、彼がどのようにThe Dishwasher:Dead Samuraiをしたかを説明してください。KISSがこれをどのように解決できるかを示します。3Dまたは2Dスケルトンアニメーションを使用するという提案は有効であり、同じ領域で使用されています。


リンクを追加できますか?
-homemdelata

ああ、それはジェームズ・シルバです。おっと!amazon.com/Building-XNA-2-0-Games-Professionals/dp/1430209798/…–
Kaj

0

これは素晴らしい質問ですが、自分で答えたと思います-レイヤーを変更するボーンをサポートする2Dボーンシステムが必要です。そのため、キャラクターの回転に応じて異なる手足が前後に移動できます。また、4つか8つの角度(または必要な数)からスプライトを描画する必要があります。チームのスキルによっては、これらのアセットを3Dで作成し、必要な角度からレンダリングする方が簡単な場合があります。

3Dエンジンを使用することも優れたソリューションですが、これには独自の一連の課題が伴います。


ええ、それはほとんどそれです。ちょうど他の答えを正解しただけですが、これも有効です。私が他の人にコメントしたように、私は2Dアニメーションのために3D骨格システムが必要です:)
homemdelata
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.