Let's Enjoy Unreal Engine

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

UE4 ShippingでSteamworksを利用できるようにする

PCでゲームをリリースする際、一番多くの方がリリースしたいのはやはりSteamだと思います。Steamでリリースするのはかなりハードルが高く、各種申請や審査を乗り越えて基本的に全て英語でValve社とやりとりしなくてはなりません。

それを乗り越えて「やっとリリースだ!」となった場合に、いざSteamのリリースバージョンビルドを実行してみるとSteam固有の機能(マッチメイキングや実績など)が動かないことがあります。
これはなぜかというとUE4はDevelopmentビルドとShippingビルドでSteam用の機能を切り替えるように処理しているためです。今回はそういった方に向けての非常に限定的ながらも重要な話をしてみたいと思います。

今回の話はUE4.26.2時点での話となりますので、それより前のバージョンや4.27や5.0など後のバージョンでは多少違うことがありますのでご了承ください。

続きを読む

UE4 FASTBuildでC++やシェーダーを分散ビルドする

今回はUE5のネタではなく、UE4.27 Preview 1が出た直後なのでまたUE4ネタです。

FASTBuildというオープンソースの分散ビルドシステムがあります。

fastbuild.org

UE4では有志の方が対応した独自対応版があったりしましたが、この度4.27でExperimentalではありますが正式に使えるようになっています。正式には4.26からでも使えていましたが、バグにより正しく動作しなかったりします。

独自にエンジンをカスタムできる環境であれば、有志が作成した独自対応版を導入することで利用可能です。

Integrating FASTBuild with Unreal Engine 4 · GitHub

今回はこのFASTBuildをカスタムしていないUE4でも使えるようにする方法を解説します。

続きを読む

UE5 Data Driven CVars(コンソール変数)について

もう既にリリースされてから結構時間が経ちますが、Unreal Engine 5 アーリーアクセス版がリリースされましたね!

www.unrealengine.com

NaniteやLumenを既に触っている方も多いと思いますが、個人的にはそれ以外の色々な機能を触ったりしています。NaniteやLumenなどのメジャーな機能は他の方にお任せするとして、今回はUE5で追加された小さいけど便利な機能についてを解説します。

少し触ってみてData Driven CVars(データ駆動 コンソール変数)という新機能があることを確認しました。CVarというのは通称コンソール変数と呼ばれるもので、よくコンソールコマンドを入力して値を変更することで様々な機能を使うことがあるかと思います。

本来はC++が必須なコンソール変数の追加ですがコンソール変数を簡単に追加し、データ駆動つまりアセットとして追加するような感覚で利用できるようになります。

早速今回はこの機能についてを解説します。

続きを読む

UE4 Math Expression(数学式)ノードを使いこなそう

UE4にはブループリントが実装されている当初から用意されているMath Expression(通称 数学式)という機能があります。最初はプラグインでしたが現在はエンジン自体の組み込み機能です。

これがMath Expressionノードです。
f:id:alwei:20210525201216p:plain

このMath Expression、最初からついている組み込み機能なのにその存在を知らない人を今でもよく見掛けます。そしてプログラマーでより経験の長い人ほどブループリントで四則演算を計算することを毛嫌いする人が多い気がしますが、そういう人のためにあるのがこのMath Expressionノードです。

公式ドキュメントは以下にあります。
docs.unrealengine.com

たしかに基本的な使い方は上記ドキュメントの通りなのですが、微妙にわからない点もいくつかあります。

Math Expressionで使えるノードについて、ヒストリアさんの以下の記事でも検証されているので引用しておきます。

historia.co.jp

  1. static 関数である
  2. BlueprintPure である
  3. ネイティブ関数である
  4. 出力が1つ(ReturnValue)だけある

これらを守っていれば比較的自由に計算式を構築できるということがわかります。ただし記事内でも触れられていますが、前括弧 "(" がDisplayNameに入っているノードは仕様なのか現在も使えないようです。

それではもう少し詳しく見ていきましょう。

続きを読む

UE4 Color Correct Regionで特定範囲内だけのカラコレをやってみる

UE4.26にはColor Correct Regionという特定の範囲内に対してのみ影響を与える色補正をかけることができます。Color Correctは元々映像系の専門用語ですが、UE4にも様々なColor Correct機能があります。

今回紹介するColor Correct Regionはボリュームのように扱うことができ、特定の範囲に対してのみ影響を与えるという少しだけ特殊な機能です。早速使っていきます。

続きを読む

UE4 アクターパレット(Actor Palete)でレベルデザインを少し楽にする

今月もミニ更新です。

UE4.26かひっそりと追加されていた『アクターパレット(Actor Palete)』プラグインというものがあります。このアクターパレットというのは、名前の通り"アクター"を画材の"パレット"のように便利に使えるようにするためのプラグインです。

ただUE4でパレットと言われてもパっとイメージがつかないかもしれません。アクターパレットはレベルデザイン時に、別のレベルに配置されているアクターを直接選択し、そのまま編集中のレベルにD&Dで持ってくるといったことが可能なプラグインです。

文章で説明するよりも使われているイメージがあった方がわかりやすいと思いますので、実際に使ってみましょう。

続きを読む

UE4 ネットワークマルチプレイヤーゲームを作る時の役割について

ここ最近はUE4でネットワークを使ったマルチプレイヤーゲームを作る機会が多くなってきました。UE4はエンジン自体が最初からネットワークマルチプレイヤーを幅広くサポートしています。しかし、実際に制作を行うためにはエンジン独特のノウハウが必要で、これらを解説している情報というのは少ないというのが現状です。

そこで今回はUE4でネットワークマルチプレイヤーゲームを作るための設計やクラスごとの役割についてを解説したいと思います。UE4のネットワーク周りについてのドキュメントは以下のページにありますのでこちらも参考にしてください。

docs.unrealengine.com

またUE4でネットワークを扱う際に非常に重要な部分となる所有権とRPCについて、ヒストリアさんのブログ記事が非常に参考になるので、こちらもどうぞ。

historia.co.jp

今回の記事はListenサーバー、Dedicatedサーバー、どちらを使ったとしても考え方そのものは同じです。Listenサーバーの場合は、クライアント側の処理も含めてサーバーが行う必要があるということに気をつけましょう。

それではメインの解説をしていきます。

続きを読む