Let's Enjoy Unreal Engine

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

UE5 SDF Face Shadowマッピングでアニメ顔用の影を作ろう

UE5を使って、アニメキャラクターをレンダリングするというのは、日本の皆さんにとって非常に興味深い分野だと思います。
単純なセルシェーダー、トゥーンレンダリングなどについては過去にも色々と解説記事を書いてきました。

unrealengine.hatenablog.com

unrealengine.hatenablog.com

www.docswell.com

今回はこれらで解説した内容をベースにしてアニメ顔用の影、通称SDF Face Shadowマッピングについてを解説したいと思います。ちなみにこの名称に正式な名称はないようで、私の方で勝手につけた名称となりますので、同じ名前で調べても情報が出てこないかもしれませんのでご了承ください。

続きを読む

UE5 Characterクラスを使わずにPawnでキャラを実装してみる

UE5のCharacterクラスはとても便利であり、非常に汎用的に作られています。おそらくUE経験者でCharacterクラスを使わずにキャラを実装したことがない人はほぼいないのではないでしょうか。しかし様々な事情によってはCharacterクラスを使えないこともあります。

例えば負荷の問題。Characterクラスは汎用的に作られている故に、CPUに対する負荷はかなり高いものとなっています。他にもコリジョンの形状をカプセル以外にしたいという要望もあると思います。簡単なキャラクターを実装したいのに、Characterクラスでは機能が過剰にオーバーしていたりするので、少しでも軽量な、そしてシンプルなキャラクターを実装したいとうニーズはあるはず。

今回はPawnクラスを使ってUE5標準のサードパーソンキャラクターに近いものを実装してみるというお題でいってみましょう。

以下はUnreal EngineとPawnクラスとCharacterクラスに対する公式の資料となります。

docs.unrealengine.com

docs.unrealengine.com

  • BPの作成とコンポーネントの追加
  • 移動とカメラ操作のコピー
  • 重力と物理とコリジョン設定
  • ジャンプの実装
  • 移動時の向き変更
  • Animationブループリントの修正
  • 実際に動いている様子
続きを読む

UE5 実践的で汎用的なアニメーションシステム設計について

この記事はUnreal Engine (UE) Advent Calendar 2023の25日目の記事です。

qiita.com

Advent Calendar最終日となる本日は2023年におけるUE5の時代でも使える実践的かつ汎用的なアニメーションシステムの設計についての話をします。UEにおけるアニメーションと言えば、Animation Blueprint(以下ABP)を使ってステートマシンでAnimation Sequence(以下AS)を再生するわけですが、当然ながら大きくなりすぎるとキャラクター数が増えれば増えるとほど破綻していってしまいます。

大規模なプロジェクトではキャラクターが増えてもある程度汎用的に運用できるような設計を求められるわけですが、実際のところどのように作っているかはわかりにくいので、なるべく具体例に沿って解説していきたいと思います。

  • 前提条件
  • ケルトンの共通化
  • アニメーションレイヤーで共有
  • 再生するアニメーションを選ぶ
  • 物理などの専用アニメーション
  • まとめ
続きを読む

UE5 モジュール追加後にヘッダーファイルを認識させる方法

今回は自分が少し前にハマった内容で、一般的にはUnreal EngineC++を書いておられる方には常識かもしれませんが、自分にとっての備忘録として残しておきます。また題名にはUE5とつけておりますが、基本的にはUE4環境下においても同様なはずです。

Unreal Engineにはモジュールシステムというものが存在しており、これは本来のC++には存在していない仕組みです。Unreal Engineのモジュールシステムの説明は公式ドキュメントもありますが、ヒストリアさんの記事が基本的な内容は理解しやすいです。

historia.co.jp

このモジュールについて、追加したり、参照したりするだけでも色々なルールが存在し、そのルールを知らないとC++経験者でもハマってしまうことが多々あります。というわけで今回はモジュール追加後にヘッダーファイルをなぜか認識しない時の対処方法です。

続きを読む

UE5 "Master"などの英単語を含む機能が非推奨化されていく件

今回はUE5そのものの機能ではなく、UE5内で使われている特定の英単語についての話をします。

昨今では世界的に大きく問題となっているポリコレ(ポリティカル・コレクトネス)ですが、UE5においても大きく影響が進んでいます。

docs.unrealengine.com

コーディング規約を読むと、『インクルーシブな言葉の選択』という項目があり、具体的にどういうところに気をつければ良いのかが記載されています。今回UE5になってから変更された機能を紹介してみます。

続きを読む

UE5 UMG ViewModelを利用してBPオンリーのMVVMをしてみる

UE5.3が正式にリリースされてしばらく経ちました。新機能も沢山あり、ひとつひとつの機能を把握するのも大変です。

その中の機能のひとつとしてUMG ViewModelというものがあります。これは元々UE5.1から使えていたものでしたが、C++オンリーでしか利用できないというものでした。それが遂にUE5.3でブループリントからでも利用可能になりました!UMG ViewModelを使うことで、ロジックがよりシンプルになり、依存関係をできるだけ少なくしたUMGウィジェットを実装することができるようになります。

docs.unrealengine.com

が、このUMG ViewModelをブループリントで利用した場合、FieldNotify変数という実質必須部分の機能を使うとクラッシュが発生するという問題が5.3リリース後からありました。

それが遂にUE5.3.1リリースで解消されました!

UE-195496 Runtime crash when the FieldNotify variable is set in BP.

これでUMG ViewModelがBPオンリーでも利用できるようになりました。というわけで今回はUMG ViewModelをBPからサクっと利用する方法についてです。なるべくわかりやすく解説するために、公式のものよりかなり簡易的に解説しておりますので、ご了承ください。

続きを読む

UE5 ローカライゼーション機能のハマりポイントについて

Unreal Engineには結構昔から充実したローカライズ用の機能が用意されております。ゲームコンテンツ作成後でも後から翻訳を導入できるようになっており、とても便利ですがハマりポイントがいくつかあり、最近使ってみて色々ハマったのでまとめておきます。なお今回扱うのはテキストローカライズ機能のみで、アセットやボイスなどのローカライズ機能については扱いません。

ローカライズ機能そのものについては公式ドキュメントや有志のブログ記事などが既にありますので、そちらを参考にしてください。

公式ドキュメント
docs.unrealengine.com

導入記事
qiita.com

qiita.com

また今回解説する内容の一部は既に過去に開催された「UE4 Localization Deep Dive」でも詳しく解説されている部分もありますので、より詳しい情報が欲しい場合は以下のスライドなどを一読することを推奨します。

www.docswell.com

www.docswell.com

過去の事例ではほとんどがUE4のものとなっていますが、UE5になってもほとんど変わっておりませんので、そのまま使えると思います。なお今回の検証環境はUE5.2.1を利用しています。

続きを読む