Let's Enjoy Unreal Engine

Unreal Engineを使って遊んでみましょう

UE4 映像制作者向けTips

この記事はUnreal Engine 4 (UE4) その2 Advent Calendar 2018の2日目の記事です。

qiita.com


昨日書いたその1の方の記事がダークサイドだったので、こちらはライトサイドです。

比較的最近映像寄りのノウハウが貯まってきて、そこで得た知見やTipsを共有する内容の記事にしたいと思います。あまり対したことじゃないものからそんなものが!みたいなものまで。

それでは早速いきます!

続きを読む

UE4 エンジン改造せずにエンジンに手を入れる方法

この記事はUnreal Engine 4 Advent Calender 2018の1日目の記事です。

qiita.com

1日目で恐縮ですが、この記事は完全にダークサイドUE4な内容となっておりますので、UE4初心者が読むことを全く考慮しておりません。読む際には十分承知の上で読み進めてください。

UE4ではエンジンのソースコードGitHub上に公開されているため、自分でリポジトリーからソースコードを拾ってきて、それをビルドすることでエンジンをいくらでもカスタム可能な事がウリのひとつとなっています。

が、世の中にはエンジンを改造するにはちょっと荷が重いプロジェクトが大半で、エンジン改造されたリポジトリーを共有するというのはかなりインフラが整ったゲーム会社でなくては厳しいという現実があります。

実際UE4のプロジェクトでもゲーム、VR、映像と関わってきましたが、エンジンを改造せずに、uprojectが入っているフォルダー以下を共有するという現場もそこそこありました。大規模なゲーム開発をしている現場からすれば「そんなのエンジンに少し手を入れればイーじゃん」くらいの感覚かもしれません。


しかし!
なぜかエンジンを改造したい!!
バグをどうしてもなんとかしなくてはならない!!!


といった、状況がそこそこ大量にあります。

もし、エンジンを改造せずにエンジンに手を入れる方法があるとすれば難易度別の選択肢としては以下のようなものがあります。


難易度 Lv1 : エンジン側のクラスを継承し、関数をオーバーライドする
難易度 Lv2 : エンジンのソースコードをゲームモジュールにコピーして利用する
難易度 Lv3 : エンジンモジュールを丸ごと上書きし、ゲームモジュール側で乗っ取る


Lv1 は特に改造でもなんでもないですが、エンジン側のクラスの関数がオーバーライドできるのならこれだけでも出来る事はそれなりにあります。

Lv2 はそこそこコアなUE4使いであればやったことがある人もいると思います。基本的にはこの内容を期待していた人が多いのではないかと思います。

Lv3 は未知の領域です。ダークサイドです!今回はこれについてを取り上げます!そもそも乗っ取るとはどういうことなのか…?

それでは早速詳しい話へといきましょう。
今回の検証は全てEpic Games LauncherからDLした、UE4.21.0にて検証しております。

尚、今回の結果を実際に試してみて問題が発生したとしても、いかなる責任も負いかねますのでご了承ください。

続きを読む

UE4 Significance Manager(重要性管理)を使ってTickを抑制する ※サンプル配布あり

今年のGDCUnreal FestなどでEpic Gamesの講演で何度か出てきている、Significance Manager(重要性管理)という仕組みがあります。これは実際にフォートナイトなどで使われており、非常に実用性が高いものです。

www.slideshare.net

上記から引用。

f:id:alwei:20181113224209p:plain

ふむふむ、なるほど…なんとなく何をやっているのかはわかるぞ。

ただ、これまで具体的な情報は一切なく、どのように使うのかも謎でした。調べてみたら、いつのまにかドキュメントがあったようです。

The Significance Manager

正直に言ってこれだけを読んでも使い方は全然わかりません。というわけで実際に使ってみました。そしてそれを試してみたサンプルプロジェクトを丸ごとGitHubで公開します。

github.com

このプロジェクトはC++プロジェクトとなっており、UE4.21とVisual Studio 2017環境での動作確認を行っています。では実際に使ってみた時のポイントや注意点を解説していきます。

続きを読む

UE4 コントロールリグを使って、プロシージャルリグを試してみる

前回の記事でコントロールリグの機能を使ってリグを作成しました。

unrealengine.hatenablog.com

今回はこの作成したリグを使ってアニメーションを作成、そのアニメーションを使ってプロシージャルリグというものを試してみます。

UE4のバージョンは4.21 Preview 3となりますので、その後のバージョンによってはこれらの方法が変わってくるかもしれませんのでご了承ください。

では早速みていきましょう。

続きを読む

UE4 コントロールリグを使って、リグを作成してみる

UE4には以前にもコントロールリグという機能を使って、アニメーションなどを作成できるという記事を以前にも書きました。

unrealengine.hatenablog.com

ここから一年以上経過し、コントロールリグシステムはかなり進化しました。水面下で開発は行われていたのですが、いよいよUE4.21でExperimentalな機能としてリリースされるようです。

trello.com

このコントロールリグシステムですが、名前の通り、リグをコントロールすることが可能で、コントロールだけではなく、リグ自体をなんと自作できてしまいます。
しかもこのリグはアニメーション作成用途だけではなく、ゲームの中で実際に扱うことが可能なプロシージャルリグ機能として利用可能です。

では早速その使い方を見ていきましょう。

続きを読む

UE4 Tracing Profilerを使ってChrome上でプロファイリングを確認する

UE4.20からの新機能でTracing Profilerという機能が追加されました。とは言ってもリリースノートの細かいとこに載ってるので気づく人は少ないと思います。

Unreal Engine 4.20 Release Notes

New: Initial implementation of tracing profiler to show CPU and GPU on the same timeline. Use “TracingProfiler frames=N” console command to trigger a capture of the next N frames. Trace is saved to disk as a JSON file into the “Saved/Profiling/Traces” directory. Trace file uses Google Tracing format and can be visualized in Chrome built-in profiler (chrome://tracing).

普段からプロファイリングばかりやってるので、この機能を使わない手はありません。説明によれば、CPUとGPUを同じタイムライン上で確認ができるようです。しかも説明をよく読むと、Google Chrome上で確認ができるとのことです。

ひとまずどのような手順で使えるのかを確認してみましょう。

続きを読む

UE4 ブループリントとC++のバランスを深く考える

最近仕事柄UE4でのブループリントとC++のバランスをどうしていくべきかを考えることが多くなってきました。今回はそのことについてもう少し深く掘り下げていきたいと思います。

まず前提としてPCゲームを作る際にはそこまで深く考える必要はありません。PCゲームはほとんどの場合、高性能なCPUが搭載されており、メモリーも8GB以上の環境であることがほとんどです。そのような状況でブループリントとC++がどうとかというのは好みの問題になってくるでしょう。

おさらいとして、ヒストリアさんの以下の記事と自分が以前に書いたUE4のブループリントの記事を紹介しておきます。

[UE4] C++ or Blueprint?|株式会社ヒストリア

UE4 比較的大規模におけるブループリントの運用 - Let's Enjoy Unreal Engine


基本的な考え方はこの時から変わりません。ここから更に一歩踏み込んだ内容の記事がUE4の公式ドキュメントに追加されました。※現在英語のみ

Balancing Blueprint and C++


この辺りの内容を参考にもう少し細かく突っ込んでいきましょう。まず公式ドキュメントでも書かれていますが、ゲームの設計に「正しい答えはない」というのが結論です。ただ、よりよくするための手段はあります。


f:id:alwei:20180818182553p:plain

続きを読む