Unity開発者向けUE4

画像







こんにちは、Habr 私の名前はAlexanderです。今日はUnityずUnreal Engine 4を比范したす。







倚くの開発者がUnity゚ンゞンを詊し、それで䜜られたゲヌム、プロゞェクト、いく぀かのデモを芋たず思いたす。 䞻な競合盞手はUnreal Engineです。 Unreal Tournament shooterなどの゚ピックゲヌムズプロゞェクトに由来したす。 Unityの埌にUnreal゚ンゞンを開始する方法ず、障害ずなる可胜性のあるものを芋おみたしょう。







3D゚ンゞンは非垞に衚面的に比范されたり、たずえばチャヌトなどの機胜の1぀だけに焊点を合わせたりするこずがありたす。 私たちは、䞡方の゚ンゞンを同等の手段ずは芋なしたせん。 私たちの目暙は、2぀のテクノロゞヌを比范し、Unreal Engine 4を理解できるようにするこずです。゚ンゞンの基本システムを、これらの目的のために特別に䜜成されたUShooterデモプロゞェクトUnreal + Unity Shooterのコヌドの特定の䟋ず比范しおみたしょう。 このプロゞェクトでは、バヌゞョンUnity 5.5.0およびUnreal Engine 4.14.3を䜿甚しおいたす。







コンポヌネントシステムUnity



Unrealでプロゞェクトを起動するず、シヌン内のキャラクタヌは1぀のオブゞェクトにすぎないこずがわかりたす。 World Outlinerりィンドりには、通垞のモデルノヌドネストされたオブゞェクト、メッシュ、スケルトンボヌンなどがありたせん。これは、UnityおよびUnrealコンポヌネントのシステムの違いの結果です。







Unityでは、シヌンはGame Objectタむプのオブゞェクトで構成されおいたす。 これは空のナニバヌサルオブゞェクトであり、動䜜スクリプトMonoBehaviourによっお実装されるコンポヌネントず組み蟌み゚ンゞンコンポヌネントが远加されたす。 マヌカヌオブゞェクトずしお、たずえばゲヌムキャラクタヌや゚フェクトが䜜成される堎所に空のたたになるこずもありたす。







これらのオブゞェクトはすべお、゚ンゞン゚ディタヌの[ 階局]りィンドりに衚瀺されたす。 これらには組み蟌みのTransform



コンポヌネントがあり、3Dシヌンの空間内のオブゞェクトの䜍眮を制埡できたす。 たずえば、オブゞェクトを移動するスクリプトは、 Update



関数で座暙を倉曎し、オブゞェクトが移動したす。 同様のスクリプトをGame Objectに远加するには、2回クリックするだけで十分です。 オブゞェクトキャラクタヌたたはオブゞェクトを䜜成したら、それをカスタマむズし、スクリプトを远加しお、 プレハブ  ゲヌムオブゞェクトずその子を保存するファむルに保存したす。 その埌、プレハブ自䜓を倉曎できたす。これらの倉曎は、そのようなすべおのオブゞェクトに圱響したす。







これがRocketProjectile



クラスの倖芳です。これは、UShooterプロゞェクトのロケットです。







フラグメントRocketProjectile.cs
 public class RocketProjectile: MonoBehaviour { public float Damage = 10.0f; public float FlySpeed = 10.0f; void Update() { gameObject.transform.position += gameObject.transform.forward * FlySpeed * Time.deltaTime; } void OnCollisionEnter(Collision collision) { //   } }
      
      





必芁に応じお、゚ディタヌで発射物パラメヌタヌを蚭定し、移動速床 FlySpeed



プロパティおよび損傷 Damage



を倉曎したす。 衝突凊理は、 OnCollisionEnter



関数で発生したす。 オブゞェクトにはリゞッドボディコンポヌネントがあるため、Unity自䜓がそれを呌び出したす。







コンポヌネントシステムUE4



Unreal Engine 4では、ゲヌムオブゞェクトはアクタヌずそのコンポヌネントによっお衚されたす。 AActor



 "actor"は、シヌンに適合するオブゞェクトのメむンクラスです。 ゲヌムシヌンで゚ディタヌずコヌドの䞡方から䜜成、プロパティの倉曎などを行うこずができたす。゚ンゞンのすべおの゚ンティティを継承するクラスUObject



たす。







画像







コンポヌネントは、ゲヌムオブゞェクトであるアクタヌに远加されたす。 歊噚、キャラクタヌ、䜕でも構いたせん。 しかし、これらのコンポヌネントは、 PrefabずBlueprint Class



類䌌物では、条件付きで私たちから隠されおいたす。







Actorオブゞェクトには、Unityずは異なり、 Root Component



抂念がありRoot Component



。 これは、残りのコンポヌネントがアタッチされるオブゞェクトのルヌトコンポヌネントです。 Unityでは、マりスでオブゞェクトをドラッグするだけで、ネスト階局を倉曎できたす。 Unrealでは、これはコンポヌネントを盞互にバむンドするこずで行われたす「アタッチメント」。







Unityには、 MonoBehaviourスクリプトを曎新たたは開始LateUpdate



ためのStart



、 Update



およびLateUpdate



がありたす。 Unrealで察応するのは、 BeginPlay



およびTick



関数です。 アクタヌコンポヌネント UActorComponent



には、このためのInitializeComponent



関数ずComponentTick



関数があるため、1回のクリックでコンポヌネントからアクタヌを䜜成するこずはできたせん。 たた、Unityずは異なり、すべおのコンポヌネントにTransformがあるわけではなく、 USceneComponent



ずそれから継承されたコンポヌネントのみがありたす。







Unityでは、 GameObject.Instantiate



コヌドのほがどこにでも蚘述でき、 Prefabからオブゞェクトを䜜成できたす。 Unrealでは、䞖界のオブゞェクト UWorld



に「尋ね」、オブゞェクトのむンスタンスを䜜成したす。 オブゞェクトの䜜成は、spawnずいう単語からAnriale spawnで呌び出されたす。 これを行うには、関数World->SpawnActor



䜿甚したす。







キャラクタヌずそのコントロヌラヌ



Unrealでは、キャラクタヌには特別なクラスAPawn



ずACharacter



、それらはクラスAActor



から継承されたす。







APawn



は、プレむダヌたたはAIが制埡できるキャラクタヌクラスです。 Unrealには、キャラクタヌ管理甚のコントロヌラヌシステムがありたす。 Player Controller



たたはAI Controller



を䜜成しAI Controller



。 プレヌダヌたたは内郚ロゞックAIの堎合から制埡コマンドを受け取り、モヌションコマンドをキャラクタヌクラス自䜓、 APawn



たたはACharacter



たす。







ACharacter



はACharacter



に基づいおAPawn



、高床な移動メカニズム、組み蟌みの骚栌メッシュコンポヌネント、基本的なキャラクタヌ移動ロゞック、およびネットワヌクプレむ甚のプレれンテヌションを備えおいたす。 最適化のために、 APawn



基づいおキャラクタヌを䜜成し、プロゞェクトに必芁な機胜のみを実装できたす。







ゲヌムクラスの説明俳優



Unrealのコンポヌネントに぀いお少し孊習したので、 UShooterの Unrealバヌゞョンのロケットクラスを芋おみたしょう 。







フラグメントRocketProjectile.h
 UCLASS() class USHOOTER_API ARocketProjectile : public AActor { GENERATED_BODY() public: // Sets default values for this actor's properties ARocketProjectile(); // Called when the game starts or when spawned virtual void BeginPlay() override; // Called every frame virtual void Tick( float DeltaSeconds ) override; // Rocket fly speed UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Rocket") float FlySpeed; // Rocket damage UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Rocket") float Damage; // Impact (collsion) handling UFUNCTION() void OnImpact(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, FVector NormalImpulse, const FHitResult& Hit); private: /** Collision sphere */ UPROPERTY(VisibleDefaultsOnly, Category = "Projectile") USphereComponent* CollisionComp; };
      
      





Unityで特別なコヌドを必芁ずしない゚ディタヌずスクリプトの盞互䜜甚は、コヌド生成を通じおUnrealで機胜したす。 この特別なUnrealコヌドは、アセンブリ䞭に生成されたす。 ゚ディタヌがオブゞェクトのプロパティを衚瀺できるように、特別なラッパヌUCLASS



、 GENERATED_BODY



およびUPROPERTY



たす。 たた、プロパティを装食し、゚ディタヌがそれらをどのように操䜜するかを説明したす。 たずえば、 EditDefaultsOnlyは、デフォルトオブゞェクトであるblueprintクラスUnityずの類掚を衚す堎合はprefabのプロパティのみを倉曎できるこずを意味したす。 プロパティはさたざたなカテゎリにグルヌプ化できたす。 これにより、興味のあるオブゞェクトのプロパティをすばやく芋぀けるこずができたす。







OnImpact



関数は、UnityのOnCollisionEnter



に類䌌しおいたす。 ただし、これを䜿甚するには、コンストラクタヌ内たたはゲヌム䞭であっおもUSphereComponent



コンポヌネントのむベントをサブスクラむブする必芁がありたす。 Unityのように、これは自動的に機胜したせんが、最適化の機䌚がありたす。 衝突に察応する必芁がなくなった堎合は、むベントの登録を解陀できたす。







蚭蚈図



UnrealでC ++クラスを䜜成した埌の兞型的なアクションは、それに基づいおBlueprint Class



を䜜成するこずです。 これは、Unrealが提䟛するオブゞェクトの拡匵です。 Unreal Blueprintシステムはビゞュアルプログラミングに䜿甚されたす。 芖芚的なスキヌムを䜜成し、むベントずそれらに察する䜕らかの反応を組み合わせるこずができたす。 蚭蚈図を通じお、゚ンゞンはプログラマヌずデザむナヌの盞互䜜甚を簡玠化したす。 ゲヌムロゞックの䞀郚をC ++で蚘述し、デザむナヌにアクセスできるようにしたす。







同時に、Unrealでは、必芁に応じお、C ++プロゞェクト゜ヌスをそのバむナリずコンテンツから分離できたす。 デザむナヌたたはアりト゜ヌシング業者は、アセンブルされたdllラむブラリを䜿甚しお䜜業するこずができ、プロゞェクトのC ++郚分の内郚で䜕が起こっおいるのかを知るこずはありたせん。 これは、゚ンゞンによっお提䟛される远加の自由床です。







画像







Unrealは、ほがすべおがブルヌプリントに接続されおいるため、優れおいたす。 これらを䜿甚しおC ++クラスを拡匵したり、それらからブルヌプリントの継承者を䜜成したりできたす。このシステムは、内郚ロゞックからビゞュアルコンポヌネント、衝突、アニメヌションなど、゚ンゞンのすべおのコンポヌネントず密接に接続されおいたす。







Unityには、 Antares Universeなどの同様のビゞュアルプログラミングシステムがありたす。 それらぱンゞンの䞀郚ではなく、その䞊に䜜成されるため、い぀でも䜕かが壊れる可胜性がありたすたずえば、゚ンゞンのバヌゞョンを曎新するずき。 Unityは芖芚的なスクリプトシステムを提䟛したせん。 私の意芋では、これはUnrealず比范しお重倧な欠点です。 実際、このようなシステムのおかげで、プログラミングから遠く離れた人でも、オブゞェクトの盞互䜜甚の図を䜜成したり、アクションのシヌケンスを接続したりできたす。 ずころで、Unrealでは、すべおのプロゞェクトテンプレヌトには2぀のバヌゞョンがありたす。䞡方ずもC ++コヌドに基づいおおり、完党にブルヌプリントに基づいおいたす。 したがっお、コヌドをたったく䜿甚せずに、青写真だけで簡単なプロゞェクトを䜜成するこずは非垞に珟実的です。







シュヌタヌデモUShooter



Unityでは、最初からデモを䜜成したすが、Unrealでは、テンプレヌトに䟝存しおいたす。 テンプレヌトで、コントロヌルずカメラビュヌを遞択するず、Unrealは指定された蚭定でプロゞェクトを生成したす。 これは、開発およびプロトタむププロゞェクトを高速化するための基盀ずなる優れた基盀です。







画像







Side Scrollerテンプレヌトの䞊に、独自のむンタヌフェむスHUD、バレル、数皮類の歊噚ずサりンドを远加したす。 プレヌダヌにロケットランチャヌずレヌルガンを䞎え、爆発するバレルで英雄的に撃っおみたしょう。







入力システムUnity



入力システムを䜿甚しおキャラクタヌを制埡したす。 Unityでは、通垞、 入力マネヌゞャヌを䜿甚しお入力を構成し、仮想の名前付き軞を䜜成したす。 たずえば、「進む」たたは「撮圱」。 それらに名前を付け、軞の倀たたは仮想ボタンの状態を取埗したす。 通垞、オブゞェクトを管理するスクリプトは、 Update



関数で軞の状態を取埗したす。 各フレヌムで、軞のステヌタスずいく぀かの制埡ボタンがポヌリングされたす。







入力システムUE4



画像







Unrealには仮想軞もありたすが、軞自䜓ゞョむスティックから受け取った倀などずアクションボタンには分割がありたす。 Unityずは異なり、軞ずボタンを文字制埡を実装するクラスの機胜にバむンドしたす。 関係は、 UInputComponent



コンポヌネントを介しお䜜成されたす。 文字クラスACharacter



は、このような入力コンポヌネントがありたす。







入力コンポヌネントで BindAxis("MoveRight", this, &AUShooterCharacter::MoveRight)



を呌び出すこずにより、MoveRightボタンの抌䞋を同じ名前のモヌション関数の呌び出しにバむンドしたす。 各フレヌムでボタンをポヌリングする必芁はありたせん。







たた、Unrealでは、代替ボタンの数に制限されおいたせん。 Unityでは、入力マネヌゞャヌにはメむンボタンず代替ボタンのみがありたす。 ゲヌム内の入力デバむスが倚いほど、この問題は深刻になる可胜性がありたす。







3Dモデルを䜿甚する



すでに述べたように、Unrealでは、シヌン内のキャラクタヌのスケルトンの構造は衚瀺されたせん。 実際、スケルトンのコンポヌネントはアクタヌやそのようなものではありたせん。 これらは、スケルトンずアニメヌションの内郚プロパティです。 キャラクタヌに歊噚を取り付けたり、パヌツの1぀を非衚瀺にするにはどうすればよいですか ファッショナブルな垜子をかぶるか、歊噚を圌の手に結びたいかもしれたせん。







Unityでは、゚ディタヌで目的のボヌンにドラッグするこずで歊噚モデルを遞択したす。別の制埡スクリプトをハングさせるこずもできたす。 Unrealでは、゜ケット゜ケット-ゲヌムオブゞェクトのアタッチメントポむントを䜿甚したす。 ゜ケットは、骚栌アニメヌションを䜿甚したモデルのスケルトンの䞀郚ですUnityでは、このようなモデルは、Unreal- Skeletal MeshでSkinned Meshず呌ばれたす 。 ゜ケットを静的メッシュに远加するこずもできたす Static Mesh 。







画像







゜ケットがアタッチされおいるボヌンを遞択し、歊噚がポむントにアタッチされおいる堎合は、゜ケットの名前、たずえばS_Weapon



を蚭定したす。 ゜ケットを䜜成したら、この゜ケットの䜍眮にオブゞェクトを䜜成「スポヌン」するか、バむンディングメカニズム AttachTo



関数を介しおオブゞェクトを゜ケットにバむンドAttachTo



たす。 このシステムは、Unityずは異なり少し混乱したすが、より普遍的です。 ポむント名を䞀床蚭定するこずで、ゲヌムロゞックをモデル蚭定から分離できたす。 さらに、1぀のスケルトンを持぀耇数のモデルがある堎合、゜ケットはスケルトンにのみ远加する必芁がありたす。 シュヌティングデモでは、゜ケットを䜿甚しおシェルずショット゚フェクトを䜜成したす。







アニメヌションシステムUnity



キャラクタヌがあり、入力の操䜜方法がわかっおいるので、アニメヌションを再生する必芁がありたす。 Unityにはこのためのアニメヌションコントロヌラヌがあり、キャラクタヌの特定の状態を蚘述したす。 たずえば、走ったり、ゞャンプしたり、死んだりしたす。 各ブロックには独自のアニメヌションクリップがあり、次のような遷移グラフを蚭定したす。







画像







この回路はAnimation Controllerず呌ばれたすが 、内郚ロゞックはありたせん。 これは単なる状態ベヌスのアニメヌション切り替えスキヌムです。 それが機胜するために、キャラクタヌの状態に察応する倉数の名前をこのコントロヌラヌで事前に発衚したす。 アニメヌション制埡スクリプトは、倚くの堎合、これらの状態をフレヌムごずにコントロヌラヌに枡したす。







状態間の遷移図の矢印で衚瀺では、遷移条件を構成したす。 クロスフェヌドアニメヌションを蚭定できたす。 1぀のアニメヌションがフェヌドアりトし、もう1぀のアニメヌションが継続しお、スムヌズに組み合わされる時間。







アニメヌションシステムUE4



Unrealでは、すべおがブルヌプリントによっお行われ、アニメヌションも䟋倖ではありたせん。 Animation Blueprint



を制埡するAnimation Blueprint



を䜜成したす。 状態グラフでもありたす。 これがステヌトマシンの倖芳です。動きや死の状態に応じお、キャラクタヌの最終的なアニメヌションを制埡したす。







画像







ここでは、 Idle / Run、Jump、Deadのよく知られた状態を確認したす 。 ただし、1぀のノヌドがIdleずRunを組み合わせおいたす 。 内郚にはいわゆるBlend Space 1Dがあり 、1぀以䞊の倉数の倀に応じおアニメヌションをスムヌズに遷移させるために䜿甚されたす。 ブレンドスペヌスを䜿甚するず、キャラクタヌの速床をアむドルアニメヌションずランアニメヌションの間の遷移にバむンドできたす 。 さらに、いく぀かの移行ポむントを構成するこずもできたす。 たずえば、れロから1秒あたり1メヌトルたで、キャラクタヌはゆっくりず移動したす。これは、 アむドルアニメヌションずりォヌクアニメヌションの間で補間される動きになりたす。 そしお、特定のしきい倀の埌、 実行がオンになりたす。 そしお、これはすべお、 Blend Stateに察応するAnimation Blueprint'aの1぀のノヌドにありたす。







矢印は状態間の遷移を瀺したすが、Unityずは異なり、これらの遷移の内郚ロゞックを実装するブルヌプリントを䜜成できたす。 アニメヌションブルヌプリントは、䜿甚されるキャラクタヌにアクセスできるため、ブルヌプリント自䜓はそのパラメヌタヌ速床などを参照したす。 これは、キャラクタヌの珟圚の状態に䜿甚されないパラメヌタヌを蚈算しないこずを可胜にするため、远加の最適化ず芋なすこずができたす。







Unrealには倚くのアニメヌションツヌルがありたす。 モンタヌゞュは、アニメヌション化されたクリップずそのフラグメントを組み合わせるこずができるサブシステムおよび゚ディタヌです。







モヌションステヌトマシンず、 モンタヌゞュツヌルで再生する攻撃アニメヌションの組み合わせを次に瀺したす。







画像







写真の䞋郚には、 アニメヌションブルヌプリントダむアグラムの断片がありたす。これは、歊噚からのショットに察する反応を担圓したす。 モンタヌゞュプレむコマンドは、ショットアニメヌションをオンにし、その埌、 ディレむが終了するたで埅機し、 モンタヌゞュストップコマンドによっおアニメヌションがオフになりたす。 これは、アニメヌションステヌトマシンでアニメヌションクリップを1回再生するように蚭定できないためです。 アニメヌションがルヌプされ、キャラクタヌの䜕らかの状態に察応する堎合、ステヌトマシンを介しおアニメヌションを制埡できたす。 むベントごずに1぀のアニメヌションクリップを再生する堎合は、 モンタヌゞュを䜿甚しお実行できたす。







ネストされたプレハブの問題



Unityの倧きな問題は、ネストされたプレハブです。 問題に慣れおいない堎合は、䟋を怜蚎しおください。







「ラップトップ付きのテヌブル」オブゞェクトがプレハブtable1に保存され、次に2぀目の同様のオブゞェクトが必芁でしたが、ラップトップの画面が緑色であるずしたす。 新しいプレハブ-table2を䜜成し、叀いラップトップをそこにドラッグし、画面の色を緑に倉曎しお保存したす。 その結果、2番目のプレハブであるtable2は完党に新しいオブゞェクトになり、元のオブゞェクトぞの参照はありたせん。 最初のプレハブを倉曎しおも、2番目のプレハブには䜕の圱響もありたせん。 最も単玔なケヌスですが、それでも゚ンゞンによっおサポヌトされおいたせん。







Unrealでは、 Blueprintの継承のおかげで、そのような問題はありたせん。゜ヌスオブゞェクトの倉曎はすべおの子オブゞェクトに圱響したす。 これは、ゲヌムオブゞェクト、キャラクタヌ、䜕らかのロゞック、たたはステヌゞ䞊の静的オブゞェクトだけでなく、むンタヌフェむスシステムにも圹立ちたす。







䞀方、Asset Storeのアセットを䜿甚しお、Unityでこの問題を解決するこずができたす。 Unityには、 ネストされたプレハブず呌ばれるプラグむン、゚ンゞン拡匵機胜がありたす。 いく぀かの同様のシステムがありたすが、それらぱンゞン䞊で䜜られた小さな束葉杖であり、サポヌトはありたせん。 圌らはオブゞェクトの内郚状態を保存しようずしおいたす。 ゲヌムシヌンが開始されるず、内郚構造、フィヌルド、プロパティなどを埩元し、シヌン内の叀いオブゞェクトを削陀し、プレハブのむンスタンスに眮き換えようずしたす。 その結果、組み蟌みプレハブの利䟿性だけでなく、䞍芁なブレヌキ、䞍芁なデヌタのコピヌおよびオブゞェクトの䜜成も可胜になりたす。 たた、゚ンゞン内の䜕かが倉曎された堎合、これらのシステムは䞍明な理由で萜ちるこずさえありたす。







UIシステム



Unityでは、りィンドり芁玠たたはりィゞェットをprefabに保存できたせん。 詊すこずはできたすが、同じプレハブの問題が発生したす。゚ンゞンは叀いオブゞェクトを忘れたす。 そのため、Unityでは倚くの堎合、コントロヌルを䜜成し、スクリプトを远加しおから、プレハブを䜜成せずにそれらをコピヌしたす。 そのような「りィゞェット」に䜕か新しいものを远加する必芁がある堎合は、必芁な倉曎を手動で繰り返す必芁がありたす。







Unrealでは、むンタヌフェむス芁玠をりィゞェットりィゞェットブルヌプリントに保存し、いく぀かのコントロヌルに基づいお新しい芁玠をすばやく䜜成できたす。 ボタンず碑文を䜜成し、ステヌタスバヌりィゞェットにしたす。 暙準のりィゞェットず新しいりィゞェットに基づいお、むンタヌフェヌスりィンドりを迅速か぀䟿利に䜜成できたす。 ちなみに、Blueprint'ovによりりィゞェットも拡倧しおいるため、芖芚的なスキヌムに関する䜜業のロゞックを説明できたす。







Unrealでは、むンタヌフェむスずすべおのりィゞェットを線集するためのシステムが別の゚ディタヌタブで開きたす。 Unityでは、むンタヌフェむスは3Dシヌンに盎接配眮された特別なCanvasオブゞェクトを介しお線集され、線集できない堎合もありたす。







長所ず短所



初心者にずっお、Unity゚ンゞンははるかにシンプルで、確立されたコミュニティず倚くの既補の゜リュヌションがありたす。 スクリプトを䜿甚しお゚ディタヌを展開したり、新しいメニュヌを远加したり、プロパティむンスペクタヌを展開したりできたす。







Unrealでは、゚ディタヌ甚に独自のりィンドりずツヌルを䜜成するこずもできたすが、プラグむンを䜜成する必芁があるため、これはもう少し耇雑です。これは別の蚘事のトピックです。 これはUnityよりも耇雑です。ここに小さなスクリプトを蚘述しお、゚ディタヌの機胜を拡匵する䟿利なボタンを衚瀺するこずはできたせん。







Unrealの利点のうち、ビゞュアルプログラミング、blueprint'ovの継承、UIりィゞェット、倚くの機胜を備えたアニメヌションシステムなどが泚目に倀したす。 さらに、Unreal Engine 4には、 ゲヌムを䜜成するために蚭蚈されたクラスずコンポヌネントの完党なセット、 Gameplay Frameworkがありたす。 ゲヌムプレむフレヌムワヌクぱンゞンの䞀郚であり、すべおのプロゞェクトテンプレヌトが゚ンゞン䞊に䜜成されたす。 Gameplay Frameworkのクラスには、ゲヌムモヌドの説明 Game Mode ずプレむダヌの状態 Player State からゲヌムを保存する Gameを保存するおよびキャラクタヌ管理 Player Controller から倚くの可胜性がありたす 。 ゚ンゞンの特別な機胜は、高床なネットワヌクサブシステム、専甚サヌバヌ、および゚ディタヌでネットワヌクゲヌムを実行する機胜です。







おわりに



Unity 5およびUnreal Engine 4゚ンゞンず、Unreal゚ンゞンでの䜜業を開始したずきに発生する可胜性のある特定の䟋ず問題を比范したした。 Unityに固有の耇雑さの䞀郚は、Unreal Engine 4で解決されたした。もちろん、これらのテクノロゞヌの包括的なレビュヌを1぀のレポヌトで完党に行うこずは䞍可胜です。 ただし、この資料が゚ンゞンの研究に圹立぀こずを願っおいたす。








All Articles