Battle Royale ゲームモードの開発に伴い、パフォーマンス、メモリ、ワークフローの最適化が行われました。これらの最適化は、Fortnite:Battle Royale だけでなく、アンリアル エンジン 4 を使ったすべての開発に活用できます。
Battle Royale ゲームモードの開発に伴い、パフォーマンス、メモリ、ワークフローの最適化が行われました。これらの最適化は、Fortnite:Battle Royale だけでなく、アンリアル エンジン 4 を使ったすべての開発に活用できます。
White Paper Games のテクニカル アーティストである James Burton 氏が、リリース予定のゲーム、The Occupation の AI キャラクターのロコモーション システム作成で採用したプロセスについて説明します。
White Paper Games のテクニカル アーティストである James Burton 氏が、リリース予定のゲーム、The Occupation の AI キャラクターのロコモーション システム作成で採用したプロセスについて説明します。
NVIDIA Aftermath 技術をアンリアル エンジン 4.15.2 に加えて GPU 関連のクラッシュに関する適切なデータを集めてアンリアル エンジンで迅速に対処できるようにします。内容については、続きをご覧ください。
Gameplay Tag のバージョンはいくつかありますが、UE4.15 ではインターフェースとパフォーマンスが大幅に向上しました。是非、この機会にお試しください。
ARM の Mali Graphics Debugger (MGD) は、デベロッパーがコード内のボトルネックになりうる要因の判断をしやすいように、アプリケーション内での Vulkan、OpenGL ES、EGL、OpenCL API コールのトレース、およびフレーム単位でのエフェクトの解釈を可能にします。
ARM の Mali Graphics Debugger (MGD) は、デベロッパーがコード内のボトルネックになりうる要因の判断をしやすいように、アプリケーション内での Vulkan、OpenGL ES、EGL、OpenCL API コールのトレース、およびフレーム単位でのエフェクトの解釈を可能にします。
みなさん、こんにちは!High Horse Entertainment の Jay です。ロサンゼルスにある、2 人だけのチームです。我々のデビュー プロジェクト Disc Jam はアーケード アクション スポーツ ゲームで、タイミングと反射が成功するために非常に重要です。 高フレームレートを維持することがゲーム体験には欠かせません。ではこれから 我々がどのようにアンリアル エンジン 4 を使って Intel Process Graphics 上で 60 FPS を実現したかお話しましょう。
みなさん、こんにちは!High Horse Entertainment の Jay です。ロサンゼルスにある、2 人だけのチームです。我々のデビュー プロジェクト Disc Jam はアーケード アクション スポーツ ゲームで、タイミングと反射が成功するために非常に重要です。 高フレームレートを維持することがゲーム体験には欠かせません。ではこれから 我々がどのようにアンリアル エンジン 4 を使って Intel Process Graphics 上で 60 FPS を実現したかお話しましょう。
スタンドアローン アプリケーションで、外部の API やサービスと連携しないものはほとんどありません。この Helios SDI Plugin では、自動生成されるブループリント ノードを使って直接 Web サーバーと連携し、外部データを簡単に UE4 クライアントに統合することができます。その仕組みと開始手順について説明します。
スタンドアローン アプリケーションで、外部の API やサービスと連携しないものはほとんどありません。この Helios SDI Plugin では、自動生成されるブループリント ノードを使って直接 Web サーバーと連携し、外部データを簡単に UE4 クライアントに統合することができます。その仕組みと開始手順について説明します。
メモリリークはかなり時間が経ってから現れるタイプの唯一のバグです。何かにメモリを割り当てた後、使用したメモリを解放せずにトラックできなくなると発生します。利用できる RAM を徐々に消費するにつれアプリケーションがダウンして、やがてクラッシュする原因になり、動作全体の安定性に影響をします。
開発中、UE4 がプラットフォームのシェーダー コンパイラに送っている正確な内容を確認すると良いでしょう。そうすることで、関連して生じる問題をデバッグできるようになります。
The Culling のデベロッパーである Xaviant が、アンリアル エンジン 4 を使って、アクションと純粋なサバイバルの激しさに重点を置いた新しいタイプのサバイバル ゲームをどのように制作したかについてご紹介します。
The Culling のデベロッパーである Xaviant が、アンリアル エンジン 4 を使って、アクションと純粋なサバイバルの激しさに重点を置いた新しいタイプのサバイバル ゲームをどのように制作したかについてご紹介します。
Intel RealSense カメラは、赤外線カメラを使って通常の RGB 画像と映像に加えて深度も計算します。このテクノロジーを使ったアプリケーション開発を支援するために、インテルは顔認識、画像分割、3D スキャンを含むコンピュータ ビジョン アルゴリズムのライブラリである RealSense SDK を作成しました。
Intel RealSense カメラは、赤外線カメラを使って通常の RGB 画像と映像に加えて深度も計算します。このテクノロジーを使ったアプリケーション開発を支援するために、インテルは顔認識、画像分割、3D スキャンを含むコンピュータ ビジョン アルゴリズムのライブラリである RealSense SDK を作成しました。
大きなコードベースが持ちうるバグの中でも恐れられている「ランダムなメモリの上書き」は多くの場合突き止めるのが非常に難しいものです。この症状は誤解を招く恐れがあります。ランダムなメモリの上書きが発生したら、実際の症状であるクラッシュはコードベース内のどこででも起こる可能性があります。バグはチーム全体に拡がり、チーム メンバーは完ぺきなコードがなぜクラッシュするのか頭を悩ませることになります。最終的に、一部のコードがどこかでそのコードに属さないメモリに書き込んでいるということが明らかになる十分な証拠が集まります。
大きなコードベースが持ちうるバグの中でも恐れられている「ランダムなメモリの上書き」は多くの場合突き止めるのが非常に難しいものです。この症状は誤解を招く恐れがあります。ランダムなメモリの上書きが発生したら、実際の症状であるクラッシュはコードベース内のどこででも起こる可能性があります。バグはチーム全体に拡がり、チーム メンバーは完ぺきなコードがなぜクラッシュするのか頭を悩ませることになります。最終的に、一部のコードがどこかでそのコードに属さないメモリに書き込んでいるということが明らかになる十分な証拠が集まります。
アンリアル エンジン 4 では、アナリティクス サービス プロバイダーがネイティブ ライブラリを各モバイル プラットフォーム上でラップする場合に使用する、汎用タイプのアナリティクス インターフェースが提供されています。汎用レイヤーにより、ゲーム デベロッパーは複数のアナリティクス プロバイダーから選択して、それらのコードまたはブループリントを一回記述することができます。UE4 ソースから既に利用できるプラグイン、サードパーティにより提供されているプラグイン、自分でプラグインを記述する方法など、是非こちらの記事をご一読ください。
ゲームクラスのバグの中には、ユーザーからの報告だけでは追跡しにくいものがあります。そのようなバグには必ずといっていいほど、その時のゲーム ステートに応じた AI の判断が伴う複雑なステップが絡んでいます。そのような状況でも対応可能なツールが、UE4 の Visual Logger です。使い方を紹介します。
リリース 4.9 において、いくつかのブループリント ノードに対して Teleport フラグが公開されましたので、ここでこのフラグの機能について詳しく説明したいと思います。是非ご一読ください!
リリース 4.9 において、いくつかのブループリント ノードに対して Teleport フラグが公開されましたので、ここでこのフラグの機能について詳しく説明したいと思います。是非ご一読ください!
スレートは、「即時モード」の UI フレームワークです。つまり、フレーム毎に UI 全体を再描画します。これは、グラフィックスやアニメーションが豊富な動的インターフェースでは素晴らしいことです。しかし、UI で何も変更する必要がない場合は、プロセッサを無駄に使うことになります。 この機能では、新しい「アクティブ タイマー」システムをスレートに導入することで、UI を更新する必要がない場合に「スリープ」状態にすることができます。
スレートは、「即時モード」の UI フレームワークです。つまり、フレーム毎に UI 全体を再描画します。これは、グラフィックスやアニメーションが豊富な動的インターフェースでは素晴らしいことです。しかし、UI で何も変更する必要がない場合は、プロセッサを無駄に使うことになります。 この機能では、新しい「アクティブ タイマー」システムをスレートに導入することで、UI を更新する必要がない場合に「スリープ」状態にすることができます。
親オブジェクトの観点から考えて子供のサイズや位置を表すために、スレートはしばし階層構造が深く 幅広いウィジェットを対処しなくてはいけません。時には「ボタンに表示されるテキスト」のような単純な関係であったりもしますが、バーチャルキャンバス全体をパンしたりズーミングするグラフ編集パネルのように、もっと複雑な関係になる場合もあります。
親オブジェクトの観点から考えて子供のサイズや位置を表すために、スレートはしばし階層構造が深く 幅広いウィジェットを対処しなくてはいけません。時には「ボタンに表示されるテキスト」のような単純な関係であったりもしますが、バーチャルキャンバス全体をパンしたりズーミングするグラフ編集パネルのように、もっと複雑な関係になる場合もあります。
アンリアル エンジンでは、 TArray は動的にサイズ調整される型付きの要素の配列です。 TArrays はプログラマにとって非常に便利なものであり、エピックのコードベースでも *数多く* 使われています。ただし、生じうるパフォーマンス上の問題が少々あります。最適なパフォーマンスを得るためには、裏で何が起こっているかを理解する必要があります。
バージョン4.7 のリリースより、アンリアル・エンジン4を使用したゲームプロジェクトの開始をより簡単に行えるようになりました。すでにご存じの方もたくさんいるとは思いますが、エピックゲームスと Microsoft 社は、アンリアルエンジンのダウンロード時に Visual Studio への直接アクセスを提供しています。
プレイヤーが何度でも戻って来たくなるような「スティッキー」なゲームを持つには、ゲームがプレイヤーに対してどのようなパフォーマンスを発揮しているかを理解することが大切になります。
開発中のゲームのフレームレートが低いのに、その原因が分からないなんて事はありませんか? 一度に生成される敵の数が多すぎるのか、それとも特定の敵のコストが高すぎるのか? もしくは大量の視覚効果を使っているからか、あるいはとんでもなく工夫されたスキルシステムを書いたからでしょうか?この記事をよんで確かめてみましょう。
開発中のゲームのフレームレートが低いのに、その原因が分からないなんて事はありませんか? 一度に生成される敵の数が多すぎるのか、それとも特定の敵のコストが高すぎるのか? もしくは大量の視覚効果を使っているからか、あるいはとんでもなく工夫されたスキルシステムを書いたからでしょうか?この記事をよんで確かめてみましょう。
最近、ギアーズオブウォーのとあるファンとメールでやりとりをしていて、シリーズ3作品のネットワークの仕様の違いを聞かれたんだ。ネットワークの快適さにおいてひとつ言えることは、アンリアルエンジンに初めから入っているネットワークシミュレーション機能の使い方によるんだ。
最近、ギアーズオブウォーのとあるファンとメールでやりとりをしていて、シリーズ3作品のネットワークの仕様の違いを聞かれたんだ。ネットワークの快適さにおいてひとつ言えることは、アンリアルエンジンに初めから入っているネットワークシミュレーション機能の使い方によるんだ。
動画ではまず簡単なC++ のテンプレートから始めていきます。どんどん機能を追加してサンプルゲームの冒頭を完成させます! ゲームの設定としてキャラクターは、毎フレーム エネルギーを失います。プレイヤーはゲームが終わらないようにバッテリーを集め充電していきます。
ダメージは、ベースの Actor クラスの機能であるため幅広く使用できます。結果が早くほしい場合は、一般的な機能に簡単にアクセスできます。必要に応じて独自のダメージモデルをカスタマイズできる拡張性もあります。また、ダメージに対する反応のしかたは想定されていません。だから、エンジンには「ヒットポイント」とか「戦闘不能」という概念がありません。これらの概念は、普通、ゲームそれぞれで固有のものであるからです。それらを一般化しても、かえって苦労をかけることになると考えたのです。
アンリアル・エンジンは、かつて Linux をサポートしていました。そして、アンリアル・エンジン 4 の登場にともない Linux は、私たちのプラットフォーム ファミリーで最も重要なメンバーの 1 つとなりました。Linux プラットフォームに関する私たちの計画は、エピックの社内プロジェクトのニーズとパートナーのプロジェクトのニーズ、さらにLinux コミュニティの多大なニーズを総合した上で成り立っています。
アンリアル・エンジンは、かつて Linux をサポートしていました。そして、アンリアル・エンジン 4 の登場にともない Linux は、私たちのプラットフォーム ファミリーで最も重要なメンバーの 1 つとなりました。Linux プラットフォームに関する私たちの計画は、エピックの社内プロジェクトのニーズとパートナーのプロジェクトのニーズ、さらにLinux コミュニティの多大なニーズを総合した上で成り立っています。
アンリアル・エンジン 4 のコードベースでは、C++11 に追加された素晴らしい新機能がいくつか利用されています。言語の新たな機能を使用する場合、私たちは慎重になります。と言うのも、扱わなければならないプラットフォームが多岐にわたり、さまざまなコンパイラがサポートされているからです。とは言うものの、私が好きな新機能には「範囲ベースの for ループ」があります。これは、アンリアルの TArray、TMap、TSet のコンテナで使われています。この機能によって通常のゲームコードが非常にすっきりする例をあげてみます。AActor クラス型のポインタの配列をイテレートする場合は、これまでであれば次のようにしていたものです。
アンリアル・エンジン 4 のコードベースでは、C++11 に追加された素晴らしい新機能がいくつか利用されています。言語の新たな機能を使用する場合、私たちは慎重になります。と言うのも、扱わなければならないプラットフォームが多岐にわたり、さまざまなコンパイラがサポートされているからです。とは言うものの、私が好きな新機能には「範囲ベースの for ループ」があります。これは、アンリアルの TArray、TMap、TSet のコンテナで使われています。この機能によって通常のゲームコードが非常にすっきりする例をあげてみます。AActor クラス型のポインタの配列をイテレートする場合は、これまでであれば次のようにしていたものです。
アルゴリズムで物をいろいろと動かすためには、ある程度職人芸が必要になります。カメラをスムーズにスライドさせ、計算という繊細な翼に乗って滑空するということは、危険をともなう仕事を行うことに他なりません。動作が一度停滞しただけでも、ポップが一つ生じただけでも、画面上のあらゆるピクセルが台無しになり、レコードから針は外れ、魔法は解けてしまいます。
アルゴリズムで物をいろいろと動かすためには、ある程度職人芸が必要になります。カメラをスムーズにスライドさせ、計算という繊細な翼に乗って滑空するということは、危険をともなう仕事を行うことに他なりません。動作が一度停滞しただけでも、ポップが一つ生じただけでも、画面上のあらゆるピクセルが台無しになり、レコードから針は外れ、魔法は解けてしまいます。
Epic では、月に一度「エピック・フライデー」という日があります。その日は、ほとんどどんなことであっても、好きなことに取り組むことができます。数ヶ月前のこと、私は、とてもシンプルな「ケーブル コンポーネント」を作りました。これは、レベルの中でぶら下げることによって、生き生きとした感じを演出するためのもので、ロープの物理を利用します。他のゲームでは数年前から見かけるエフェクトですが、私は、UE4 のプラグインとして追加することがどのくらい簡単であるのか知りたかったのです!下の画像がその出来上がりです。
UE4 には、ゲーム開発に使用できる優れた C++ ライブラリが豊富に用意されています。ただし、大規模なコードプロジェクトの場合、いつも簡単に見つかるとは限りません。この記事では、特に便利で確認する価値のあるライブラリをいくつか集めてみたいと思います。詳しい情報については、このページで API ドキュメントの「Core」のセクションを読んでください。
今回は、ネイティブ コードでレプリケートされたプロパティを処理する場合に役立つ秘訣をいくつかお話ししたいと思います。
プロパティをレプリケートする方法について説明し尽くすことは、今回の記事の範囲から外れますので、基本事項についてざっと見て行くことにしましょう。
プロパティをレプリケートするには、以下のことが必要となります。
リフレクションは、プログラムが実行時にプログラム自身を検査する機能です。これはとてつもなく便利な機能であり、アンリアル・エンジン の基礎的なテクノロジーとして、エディタ内の詳細パネルや、シリアライゼーション、ガーベジコレクション、ネットワークのレプリケーション、ブループリント/C++ の通信といった多くのシステムを支えています。ただし、C++ は本来リフレクションがサポートされていません。そのため Unreal には、C++ のクラスや構造体、関数、メンバー変数、列挙体に関する情報を取り込み、問い合わせ、操作するための独自のシステムが備わりました。通常私たちはリフレクションのことをプロパティ システムとみなします。リフレクションはグラフィックスの用語でもあるのですから。