Unity開発者向けUE42Dゲヌムの䜜成





䞊䜍3D゚ンゞンであるUnreal Engine 4ずUnityの比范を続け、今回は2Dプロゞェクトを開発する際の利点ず欠点を怜蚎したす。 Unrealが2Dに適しおいる理由、2次元ゲヌムの基本芁玠を䜿甚した䜜業の線成方法、および骚栌アニメヌションを䜿甚しお2Dキャラクタヌを実装できるこずを確認したす。



Unity 5ずUE4を3Dゲヌムに関しおすでに比范しおいたす。 ぀たり、Unrealはクヌルで、高品質の3次元ゲヌムの開発に䜿甚できるずいう結論に達したした。 しかし、2Dゲヌムの䞖界の状況はどうですか Unity 5ずUnreal Engine 4.16を比范しおください。



画像

アンリアル゚ンゞン4察Hollow KnightUnity



3D向けのUnrealの人気が疑う䜙地がない堎合、たずえば、商甚の2Dプロゞェクトは事実䞊ありたせん。 したがっお、疑問が生じたすUnrealを2Dに䜿甚する䟡倀はありたすかそのようなプロゞェクトには冗長すぎるのでしょうか



スクリヌンショットの背景にあるゲヌムHollow Knightの䟋でこの問題を怜蚎しおください。 Unity゚ンゞンで䜜成され、PCバヌゞョンは8.5 GBを占有し、非垞に匷力なプロゞェクトです。 Unrealで同様のゲヌムを䜜成する堎合、ランタむムラむブラリはプロゞェクトアセンブリで玄100〜200 MBを占有したす。 倧芏暡プロゞェクトの堎合、モバむルゲヌムでさえ数ギガバむトの重さがあるこずがあるため、これはそれほど怖いこずではありたせん。



アンリアルは2Dゲヌムの䜜成にどのように圹立ちたすか



Unrealの利点は、ブルヌプリントでゲヌムを䜜成できるこずです。 Blooprintはビゞュアルプログラミングツヌルのシステムであり、プログラミング蚀語の深い知識がなくおも、ビゞュアルスキヌムのみでゲヌムを䜜成できたす。



アンリアル゚ンゞンの青写真



倚くの堎合、プログラマだけでなく、レベルデザむナヌ、アニメヌタヌ、ゲヌムデザむナヌも蚭蚈図を䜿甚したす。 これらはすべおの゚ンゞンサブシステムに組み蟌たれおおり、C ++コヌドで拡匵できたす。



UE4ブルヌプリントロゞック

ブリントを介したゲヌムオブゞェクトの制埡の実装



たた、ゲヌムを䜜成し始めたばかりの堎合は、最初のゲヌムを2Dで䜜成しおみおください。3Dゲヌムよりも定矩が単玔であるためです。 2Dの堎合、必芁なコンポヌネントは少なく、ゲヌムの仕組み自䜓は「フラット」です。 もちろん、このようなプロゞェクトでは、必芁に応じお3Dモデルを背景ずしお䜿甚できたす。 初心者の開発者にずっおは、UnityのC蚀語やUE4のC ++を孊ぶよりも、ブルヌプリントシステムを理解する方が簡単です。



既にUnrealを詊したこずがある方は、Unreal Gameplay Frameworkシステムに慣れおいるかもしれたせん。これは、キャラクタヌコントロヌルプレヌダヌコントロヌラヌからHUD、ゲヌムむンタヌフェヌス、アニメヌションに至る䞀連の゚ンゞン゚ンティティです。 2Dコンポヌネントのセットは3Dに䜿甚されるものずはわずかに異なるずいう事実にもかかわらず、䜜業の䞀般原則は間違いなく存圚しおいたす。



画像



アンリアルには玠晎らしいマルチプレむダヌもありたす。 これは、高レベルのクラむアント/サヌバヌ盞互䜜甚の組み蟌み゚ンゞン実装であり、その助けを借りお、クラむアントコヌドずサヌバヌコヌドの䞡方をすぐに蚘述できたす。 ずころで、このタスクは青写真によっおも解決されたす。 この堎合、゚ンゞン䞊に専甚サヌバヌを構築できたす。 Unity゚ンゞンにはそのような可胜性はありたせん。 さらに、゚ディタヌでは、必芁な数のゲヌムむンスタンスを起動しお、マルチプレむダヌゲヌムをテストするのが䟿利です。 この起動モヌドは、通垞の起動モヌドずそれほど倉わらず、远加の時間を必芁ずしたせん。



Unityの2D



Unity 2D線集



Unityは2Dゲヌムに䜕を提䟛したすか たず、Sprite Rendererコンポヌネント。2Dゲヌムグラフィックスのベヌスです。 スプラむトをコンテンツフォルダヌから゚ディタヌのシヌンに転送し、それらに基づいおレベル芁玠ずゲヌムオブゞェクトを構築できたす。 Unrealでは、シヌン線集の同様のメカニズムに泚意しおください。 スプラむトコンポヌネントを通垞のドラッグアンドドロップでシヌンにドラッグできたす。 スプラむトフレヌムごずアニメヌションを実装するために、Unityは2぀の方法を提䟛したす







Unityの泚目すべき機胜は、䜿甚枈みのスプラむトをアトラスで自動パッケヌゞ化できるこずです。 ゲヌムを䜜成する段階では、倚くのスプラむトがあるこずを心配するこずはできたせん。最適化のために䜕らかの方法でスプラむトを構成する必芁がありたす。 確かに、この機胜はデフォルトで無効になっおおり、ほずんどの堎合、開発䞭のプロゞェクトのアセンブリが高速化されたす。



Unrealの2D



画像



アンリアル゚ンゞン4では、プロゞェクトたたはプロトタむプの䜜成は倚くの堎合、テンプレヌトの遞択から始たるため、このステップを怜蚎しおください。 開発者が始められるように、2D Side Scrollerプロゞェクトテンプレヌトがありたす。 これはSide Scroller 3Dテンプレヌトに類䌌しおいたすが、そのグラフィックスは暙準のPaper2Dプラグむンに基づいおいたす。 これにより、2Dスプラむト、぀たり、ゲヌムを組み立おる非垞に基本的なグラフィック芁玠がサポヌトされたす。



スプラむトに加えお、アニメヌションクリップがあり、それらはフリップブックず呌ばれたす。 各ペヌゞに1぀のフレヌムを描画し、それをすばやくめくっお動画像を取埗するず、メモ垳のように芋えたす。 フリップブックは、最も単玔な2次元アニメヌションの手段です。 スプラむトず同様に、テクスチャパッカヌプログラムからむンポヌトでき、テクスチャアトラスレむアりト蚭定を構成できたす。 アトラスをUnrealにロヌドするこずにより、各スプラむトを個別のアセットずしお取埗し、それを単玔にステヌゞにドラッグしたす。



UE4 2Dサむドスクロヌラヌ



ここでは、2D Side Scrollerプロゞェクトを䜿甚した゚ディタヌのスクリヌンショットが衚瀺されたす。 キャラクタヌ制埡、キャラクタヌの䞖界ずの盞互䜜甚物理、およびアニメヌションの切り替えを実装したす。 2Dグラフィックにもかかわらず、プロゞェクトの物理は3次元です。 これは、Box2Dで実装された実隓的な2D物理がWindowsプラットフォヌムでのみ利甚可胜であるずいう事実によるものです。 このため、2Dスプラむトは3次元の物理的衚珟に付加されたす。 このアプロヌチは少し奇劙なので、特定の平面内での動きを制限するPaperCharacterキャラクタヌ甚の特別なフラグがありたす。



Unity゚ンゞンでは、Unrealずは異なり、2D物理の芁玠が完党にサポヌトされおいたす。コラむダヌ、リゞッドボディ゜リッドボディ、その他のコンポヌネントがありたす。



Unrealで2Dレベルを䜜成する



通垞、レベルの䜜成は、スプラむトを゚ディタヌのゲヌムシヌンに転送するこずで実装されたす。 しかし、これに加えお、UnrealにはタむルタむルずタむルマップTileMapを䜜成しおレベルを線集する興味深いツヌルがありたす。



UE4タむルマップ



レベルの䜜成を開始する前に、固定サむズタむルの芁玠セットを事前に䜜成し、それらからレベルを構築したす。Unrealは、タむルずマップを線集するために必芁なツヌルを提䟛したす。 タむルは、グラフィックパヌツずコラむダヌの䞡方を組み合わせたす。 結果のタむルレベルは、物理的な衚珟ずレンダリングの䞡方の芳点から自動的に最適化されたす描画呌び出しの最適化。



Unrealでは、レベル芁玠を蚭蚈図にバむンドするこずもできたす。 「モンスタヌがこのドアを開けたずき」や「暜が爆発した堎合、䜕らかのむベントが発生する」などの特別なツヌルなしでスクリプトを実装できたす。



UE4レベルブルヌプリント

UE4の「レベルブラントリント」の断片で、トリガヌゟヌンに入ったプレヌダヌに察する反応の実装



Unityでは、このような関係を実装するために、各ゲヌムむンタラクションメカニズムのスクリプトたたは特定のレベルの制埡スクリプトを䜜成する必芁がありたす。 倧芏暡なプロゞェクトの堎合、カットシヌンたたはむベントのシステムを構築する必芁がありたす。



Unrealの2Dキャラクタヌ



Unreal Paper2Dプラグむンは、PaperCharacterコンポヌネントを提䟛したす。 これは、Flipbook、぀たりスプラむトフレヌムアニメヌションシステムに基づくキャラクタヌです。 キャラクタヌ自身ず圌の物理モデルを3Dカプセルの圢で甚意したす。



フリップブックアニメヌション



昔ながらの動きを実珟するために、カプセルの平らな底に特別な旗がありたす。 過去に戻り、ステップの端に立぀キャラクタヌが倒れないようにするこずができたす。 この点は、䞀郚のゲヌムメカニズムたたはレベル機胜の鍵ずなる堎合がありたす。



UE4叀い孊校の物理孊

叀い孊校の物理孊が可胜になりたした



スケルトンキャラクタヌはどうですか UnrealずUnity 5のどちらにも、2次元の骚栌アニメヌション甚の組み蟌みコンポヌネントはありたせんが、この問題に぀いおさらに怜蚎したす。



2次元骚栌アニメヌション甚の脊怎



Spineは、2次元キャラクタヌを䜜成するための包括的なパッケヌゞおよびSDKです。 これを䜿甚しお、キャラクタヌのスケルトンが䜜成され、スプラむトがそれに接続されたす。それらは必ずしも長方圢ではありたせん。必芁な圢状を䞎えるこずができたす。 アニメヌションは骚栌であり、3Dキャラクタヌに䜿甚されるものず完党に䌌おいたす。 スプラむトずは異なり、アニメヌションのキヌフレヌム間でボヌンの動きの補間が実行されるため、スムヌズになりたす。 同時に、アニメヌションファむルの重量が少なくなり、さらにSpineを䜿甚するず、オブゞェクトをキャラクタヌにアタッチできたす。



背骚

キャラクタヌのボヌンを衚瀺するSpineプログラムのメむンりィンドり



したがっお、Spineでは、すべおのアニメヌションずオブゞェクトをバむンドするための蚭定を含む、キャラクタヌを完党に䜜成できたす。 アニメヌション自䜓に加えお、Spineでは、ステップの音など、アニメヌションの任意の瞬間にむベントを添付するこずができたす。 ゚ディタヌで盎接蚭定し、キャラクタヌずそのむベントがアニメヌションずどのように組み合わされるかを確認し、゚ンゞンに適した圢匏に゚クスポヌトできたす。 プログラムから゚クスポヌトするず、写真付きのアトラスファむルが埗られたす。キャラクタヌの䞀郚ず、アニメヌションず远加の蚭定が含たれたJSONです。 キャラクタヌには耇数のスキンがあり、スキンには远加のスプラむトをボヌンに远加できたす。



たた、スパむンはメッシュ倉圢をサポヌトするこずも述べられおいたす。 骚を動かすず、スプラむトは骚ずずもに䌞びるこずがありたす。 これはそのようなパッケヌゞのすべおではありたせんが、特定のキャラクタヌを䜜成するのに圹立぀可胜性があるため、機䌚は泚目に倀したす。 たた、このシステムを䜿甚するず、アニメヌションを互いにブレンドミックスし、プログラムで管理できたす。 蚀い換えれば、たずえば、1回の実行アニメヌションを䜜成するこずにより、りォヌクアニメヌションにスムヌズに移行でき、その逆も同様です。



この特定の機胜セットずサポヌトされるプラットフォヌムの倚様性により、Spineシステム自䜓は倚くの堎合、゚ンゞンのメむンアニメヌションシステムから分離されたす。 たずえば、Unityで、もずもずキャラクタヌにあったボヌンの階局を䜜成できる堎合これは1぀のボタンで行われたす、Unrealのプラグむンではただありたせん。 そこで、ectorをボヌンにバむンドするための特別なコンポヌネントを䜜成できたす。 たずえば、ボヌンの名前を蚭定するず、オブゞェクトがボヌンにアタッチされたす。



Unreal Engine 4のスパむン



Unrealの最近のバヌゞョンでは、Spineプラグむンのアセンブルを劚げるバグが修正され、珟圚では䜿甚できたす。 Spineの䜿甚䟋はすべおブルヌプリントに実装されおおり、APIぞのアクセスはコヌドずブルヌプリントの䞡方からです。 たずえば、キャラクタヌの動き、アニメヌションのブレンド、アニメヌションむベントからのサりンドの再生の䟋がありたす。



UE4スパむン



䟿利なむベントバむンドもありたす。特別なむベントをアニメヌションの任意の瞬間にバむンドできたす。 Unrealでは、アニメヌション自䜓のような名前付きむベントを䜿甚しお、むベントデリゲヌトを名前で簡単にバむンドし、ゲヌムの反応をすぐに実装できたす。



脊怎プレむアニメヌション



Spineの䞻な欠点は、アニメヌションシステムが実際にAnrialに関連しおいないこずです。 Unrealが提䟛するすべおアニメヌションブルヌプリントによるアニメヌションコントロヌル、さたざたなブレンドスキヌム、アニメヌション゚ディタヌずそのシヌケンス-これらはすべお、スパむンおよび2Dアニメヌションには䜿甚できたせん。 Tick関数でアニメヌションずその切り替えを手動で制埡する必芁がありたすが、ほずんどの堎合、远加のタむマヌず状態が必芁になりたす。 このアプロヌチのようなものは、Unity 4の叀いアニメヌションシステムに䌌おおり、アニメヌションコンポヌネントでPlay、Blend、CrossFade機胜を䜿甚する必芁がありたした。



それでも、このプラグむンは、Unrealにはない2D骚栌アニメヌションを䜿甚できるずいう点で優れおいたす。 これを䜿甚するず、ダむナミックでスムヌズなアニメヌションで2Dキャラクタヌを䜜成し、各歊噚の远加のアニメヌションセットを䜜成する代わりに、オブゞェクト歊噚などをキャラクタヌのボヌンにリンクするこずで、アヌティストのメモリず劎力を節玄できたす。



Unreal Engine 4の2D最適化



兞型的な最適化方法は、アトラスでのレベルスプラむトのパッケヌゞ化です。 これにより、テクスチャを切り替える必芁がなくなりたす。 Unreal Engineで、いく぀かの同䞀のスプラむトをシヌンにドラッグした堎合、同じ数のドロヌコヌルが発生したす。 2Dのレンダリングの自動最適化は組み蟌たれおいないため、MergeSpritesツヌルを䜿甚しおレベルずグルヌプの䞀郚を遞択するこずは理にかなっおいたす。 Merge Spritesチヌムは、3Dオブゞェクトのアクタヌのマヌゞに䌌おおり、耇数のオブゞェクトを1぀に結合したす。 スプラむトの結合は、オブゞェクトの衝突も組み合わせたす。



UE4スプラむトメッシュ線集

スプラむトゞオメトリの線集



゚ンゞンには、スプラむトゞオメトリ線集ツヌルもありたす。 図に瀺すように、暙準の長方圢のスプラむトの代わりに独自のスプラむトを蚭定できたす。 たずえば、透明床をカットするこずで、オヌバヌドロヌを枛らしお生産性を高めるこずができたす。



3次元グラフィックスのように、マテリアルむンスタンスによる最適化は2Dに関連しおいたす。 Unityのように玠材を習慣からコピヌするこずはできたすが、Unrealでこれを行うべきではありたせん。 実際にレンダリングシェヌダヌを蚘述する1぀たたは耇数の基本マテリアルを䜜成し、それに基づいお、倉曎可胜なパラメヌタヌ色、テクスチャ、および定数のセットを䜿甚しおマテリアルのむンスタンスを䜜成するこずをお勧めしたす。 この最適化により、゚ンゞンは、シェヌダヌのコンパむル枈みバヌゞョンの倧きなセットを䜜成する必芁がなくなりたす。これにより、アセンブリ埌のプロゞェクトのサむズが節玄され、RAMずビデオメモリの䞀郚が解攟され、生産性が向䞊したす。



2Dアセットマヌケットプレむス



ストアで賌入できるアセットは、倚くの堎合、ゲヌムのプロトタむプの開発をスピヌドアップしたす。 Unity Asset Storeず同様に、Epic GamesにはUE4のマヌケットプレむスがありたす。 その䞭に2Dアセットはほずんどありたせんが、そうです。 これらは䞻にアヌトセットですレベルずキャラクタヌ。 プラットフォヌマヌ、ランナヌなど、プロゞェクト党䜓のパタヌンがある堎合がありたす。これらは、プロゞェクトの基瀎ずしお、たたはプロトタむプを䜜成するために䜿甚できたす。 しかし、残念ながら、2Dプロゞェクト向けの特別なツヌルや、2D向けの゚フェクトはありたせん。 この点で、Unity Asset Storeの方がはるかに優れおいたす。2Dアニメヌション甚のオプションがさらにあり、Puppet2D、Anima2Dなどの5぀のシステムさえありたす。



2Dの泚目すべきUnrealEngine 4機胜



私はいく぀かの泚目すべき機胜をanrialで芋぀けるこずができたした。 たずえば、スプラむトアニメヌションPaper2Dフリップブックでは、各フレヌムに独自の物理コラむダヌを蚭定できたす。 ぀たり、このようなアセットの1぀を䜿甚するず、アニメヌションで開閉する魔法の門などの珍しいオブゞェクトを䜜成できたす。 おそらく、各フレヌムで衝突を倉えるこずはあたり最適ではありたせんが、それでもそのような機䌚がありたす。



スプラむトシャドり



3次元キャラクタヌのスクリヌンショットでは、スプラむトが珟実的な圱を囲んでいたす。 実際、これらは2次元であり、特別なツヌルや束葉杖を䜜成するこずなく、スプラむトからの2Dシャドりや照明ぞの反応さえ含めるこずができたす。 これは、スプラむトに䜿甚されおいるマテリアルを眮き換えるこずで実行されたす。 これには、Sprite LitずSprite Lit Shadowsがありたす。 これは、2Dゲヌムに3D環境が含たれおいる堎合、぀たり、レベルが3次元で、キャラクタヌ自䜓がフラットな堎合に䟿利です。 たずえば、ゲヌムOri And The Blind Forestにはそのような芁玠がありたす。



プロゞェクト蚭定でスプラむトの特別な䞊べ替えを有効にするこずもできたす。 サむドビュヌのある通垞の2Dプロゞェクトがある堎合、おそらく゜ヌトがどのように行われるかはあたり気にしないでしょう。 バックグラりンドにプッシュできるスプラむトもありたす。 しかし、等尺性のゲヌムがあり、動的オブゞェクトの配眮が必芁な堎合は、゜ヌト軞をアップ軞ずしお蚭定するのが理にかなっおいる堎合があり、そうするず自動的に゜ヌトされたす。



各オブゞェクトのスクリプトで同様の䞊べ替えが行われたUnityプロゞェクトに出䌚いたした。 Unityには、スプラむトを゜ヌトするためのパラメヌタヌがありたす-レむダヌオフセットを゜ヌトし、各スクリプトはオブゞェクトの珟圚の座暙に基づいおオフセット倀を蚈算したした。 もちろん、この方法はパフォヌマンスに圱響したす。 スプラむトの゜ヌト軞は、ワンクリックで同様の問題を解決したす。



UE 4モバむルパフォヌマンス



UE4のパフォヌマンスが䜎いずいう神話がありたす。 しかし、実際には、3Dであっおも、その矎しさで壮倧なプロゞェクトを䜜成するこずは非垞に可胜です。 ただし、すべおの゚ンゞンず同様に、パフォヌマンスず最適化は盞互に関連しおいたす。 開発時にこのこずを考慮し、プロファむリングず最適化にタむムリヌに取り組む必芁がありたす。 2Dに関しおは、すでにいく぀かのポむントを挙げおいたす。 たた、キャンバスを通しおいく぀かの2Dスプラむトを描くこずもできたす。 倚くは、コンテキストずプロゞェクト党䜓に䟝存したす。



UE4察Unity 52D



たずめるず。 アンリアルを䜿甚する䟡倀はありたすかたた、2Dプロゞェクトの開発に䞍可欠な機胜ずそうでない機胜はありたすか 機胜の重芁床の順にリストをたずめたした。



特城 アンリアル゚ンゞン4 Unity 5
2D物理孊 Windowsのみ はい
スプラむトブッチ マニュアル 自動
スプラむト効果 いや はい
ストアの2Dツヌル リトル はい
スプラむトシャドり はい いや
芖芚的な「レベルスクリプト」 はい いや
タむルレベル゚ディタヌ はい いや
衝突モデルアニメヌション はい いや


各項目をもう少し怜蚎しおください。



2D物理孊。 私の芳点から芋るず、䞻な問題は、Unrealには珟圚、ほずんどのプラットフォヌムに2次元の物理がなく、Windowsの実隓的な実装しかないずいうこずです。 ほずんどのプラットフォヌムでは2D物理孊はありたせんが、これは苊痛であり、物理孊は3Dコンポヌネントず人為的な制限によっお行われなければなりたせん。



2Dスプラむトのバッチ凊理。 Unityは2Dスプラむトのドロヌコヌルの数を曞きたせん。シヌンに倚くの2Dスプラむトを远加するず、これは統蚈りィンドりに衚瀺されたせんが、パフォヌマンスはそれ自䜓を物語っおいたす-それでも゚ンゞンはレンダリング時にそれらをグルヌプに結合したす。 そしおUnrealでは、Merge Spritesツヌルを䜿甚するか、既存のPaper2Dシステムよりも優れた゜リュヌションが衚瀺されるたで埅぀必芁がありたす。



スプラむトの効果。 Unityでは、スプラむトの゚フェクトのさたざたなアセットを芋぀けるこずができたすが、Unreal Engineではただありたせん。



ストアの2Dツヌル。 Unityの堎合、ストアにはさたざたなツヌル、぀たりプラグむン、拡匵機胜、゚フェクトがありたす。 残念ながら、Unreal Marketplaceには、2Dプロゞェクトずそのテンプレヌトのみがあり、ツヌルはほずんどありたせん。



次に、スプ​​ラむトからの圱など、すべおのプロゞェクトに必芁な機胜ではありたせん。 Unrealの利点は、レベルロゞックブルヌプリント-レベルブルヌプリントなど、芖芚的なスクリプトず芋なすこずができたす。 タむルレベル゚ディタヌは、Unrealでピクセルグラフィックスを䜿甚しお昔ながらのゲヌムを䜜りたい堎合に䟿利です。 どうしお たた、衝突モデルのアニメヌションも興味深い実隓的機胜です。



おわりに



芁玄するず、Unrealには2D甚の最も基本的なツヌルがありたすが、いく぀かの興味深い機胜がありたす。 骚栌アニメヌションを䜿甚する堎合は、サヌドパヌティ補のツヌルをさらに孊習する必芁がありたす。 残念ながら、Unrealが3Dで提䟛しおいるような䟿利さはありたせん。 Unrealの䞻な問題は、Windowsを陀くすべおのプラットフォヌムに2D物理が埋め蟌たれおいないこずです。



ほずんどの堎合、ほずんどの2Dプロゞェクトでは、Unrealの代わりに他の゚ンゞンを䜿甚する方が賢明です。 しかし、それは垞にプロゞェクト自䜓、あなたの欲求、目暙、ニヌズに䟝存したす。



All Articles