UE4

Substance Designer + UE4でWangのタイルを実装してみる

3/14に開催した第6回Substance Designerゆるゆる会のテーマは地面でした。 特に自然か人工かは指定していない、一般的にGroundとして扱われるもの全般ということでいろいろな地面を参加者の方が作っていらっしゃいました。 SDの会だってのにHoudiniの解説し…

UE4のPythonを使ったFBXインポート

UE4

まだベータ版ではありますが、UE4でPythonが使用できるようになっています。 主な使いみちはEditorでの作業の簡略化でしょう。 多くのDCCツールがPythonを採用しているため、作業効率化を図りたい人には馴染み深い言語でもあります。 UE4ではUIを含めた拡張…

Weighted Blended OIT - UE 4.20.3対応

UE4

以前、UE4で簡単ではありますが Weighted Blended OIT を実装してみました。 monsho.hatenablog.com この技術の詳細については上の記事と、そこにリンクしているペーパーをお読みください。 あまり使われていない技術だとは思うのですが、『Saints Row』シリ…

ベースパスでレイマーチング

家弓メソッドを利用したレイマーチングはGitHubにアップしてあるMaterialCollection内にサンプルが存在していたりします。 しかし、こちらのサンプルは基本的にライティングなどをマテリアル内で行うことを前提として作成しました。 そのため出力はEmissive…

エンジンを拡張してポストプロセスを実装する おまけ

この記事はポストプロセスをエンジン改造で実装する際にハマった罠について書いています。 エンジン改造してまでポストプロセスの実装なんてしないよ、という方には不要かもしれません。 コンソールゲーム機ではフレームバッファの解像度をユーザが変更でき…

エンジンを拡張してポストプロセスを実装する CS編

この記事は裏UE4 Advecnt Calender 2016の15日目の記事です。 UE4のポストプロセスはマテリアルを利用して比較的簡単に拡張が可能です。 しかしながら、いくつかの問題点も存在しています。 問題の1つにCompute Shaderが使用できない、というものがあります…

エンジンを拡張してポストプロセスを実装する PS編

この記事はUE4 Advent Calendar 2016の15日目の記事です。 UE4ではポストプロセスの作成にポストプロセスマテリアルを使用します。 通常のマテリアルと同様にマテリアルエディタで作成でき、マテリアルインスタンスも使用できます。 ポストプロセスのパラメ…

UE4プロジェクトでVisual Studioのグラフィクス診断を使用する方法

ちょっと小ネタ。 Visual Studioには標準でグラフィクス診断という機能が備わっています。 その昔、DirectX SDKにはPixというツールが存在していました。 このツールはDirectXの描画が何をやっているか、どれくらい時間がかかっているかなどを調べるのに大変…

Weighted Blended OITの実装

今回はWeighted Blended OITと呼ばれる技術をUE4のエンジンコードを改造して実装する話です。 エンジンコード改造となりますので文字多めです。 ・OIT(Order Independent Transparency)とは? OITとはOrder Independent Transparencyの略です。 順序に依存し…

HTC Viveでプレイヤーの顔の位置を取得する方法

個人的な覚書。 HTC Vive(に限らないと思うのですが)、プレイヤーの顔の位置、つまりヘッドセットの位置を取得したい場合があるはずです。 キャラがこっちを向くとか、敵がこちらを攻撃してくるとか。 UE4にはHMD関連の命令として [Get Orientation and Posi…

昔懐かしいレンズフレア

少し前にある方々と飲んだ時のこと、VRにおけるポストプロセスはなんとかならないだろうか、という話題が出ました。 VRでは、主に速度的な問題で、全画面処理を複数回行わなければならないポストプロセスはコストが高くなります。 その上立体視なので、左右…

Customノード3分ハッキング

UE4 Advent Calendar その2、12日目の割り込み記事です。 代わりに書くボタンが出来ていたので、予定のものとは全く異なる記事ですが割り込ませていただきました。 元担当者の方、問題があるようならコメンとなりTwitterなりで呼びかけていただけると助かり…

GBufferを拡張せずに異方性スペキュラをやってみる

前回、前々回のAdvent Calendar用記事ではGBufferを拡張してワールド空間タンジェントを保存、異方性スペキュラを実装とやっていました。 しかし、GBuffer拡張時にも書いたように、GBufferが増えることによってGBuffer書き込み時の処理速度に影響を与えると…

拡張したGBufferを使って異方性スペキュラをやってみる

UE4 Advent Calendar 2015 その2の7日目の記事です。 前回、UE4 Advent Calendarの記事としてGBufferの拡張を行いました。 しかし、GBufferを拡張しただけでは何も起こりません。ただGPUが重くなるだけです。 そもそもGBufferを拡張したのだから、何かに使わ…

GBufferを拡張する

UE4 Advent Calendar 2015、6日目の記事です。 今回は誰得な感じはありますが、エンジンコードを改変してGBufferを拡張してしまえ!という記事です。 正直、個人製作でこれをやることはほとんどないかと思いますが、なんかすげぇ映像表現を思いついたのにGBu…

第4回ぷちコンを終えて

第4回のUE4ぷちコンでは4作を応募させていただきました。 動画と実行ファイルはそれぞれこちらです。 Dodge Balls!!! https://www.youtube.com/watch?v=h1t7uisGGJU https://dl.dropboxusercontent.com/u/39588440/DodgeBalls.zip アストロロボ・SSK https:/…

さよならブルーマン先生

絶望した! 私をリストラしたエピックに絶望した! というわけで、今回はUE4.8でブルーマン先生を全力で使うのがテーマです。 一応、絶望先生っぽいポーズを作ろうとかんばりましたがこれが限界です。スマヌ。 UE4.8でブルーマン先生がリストラされ、マネキ…

ProceduralMeshComponentを使ってみる

今回はUE4.8から追加されたProceduralMeshComponentを使ってみます。 ただしこの機能は実験的に追加されているものですので、今後廃止になるということはないとは思いますが使い方が変更される可能性があります。 使用の際にはその点に十分注意して使用して…

Landscapeあれこれ 後編

Landscapeの話の後編は植生の設定方法です。 前編で作成したLandscapeに植物等を配置していこうと思います。 植物のたぐいを配置する上で問題になるのはアクターを大量に置くのは難しいという点です。 アクターとして1つ1つ置くのは作業的にも厳しいですし、…

Landscapeあれこれ 前編

今回はUE4の機能の1つであるLandscapeの作成の仕方、設定の流れなんかを解説しようと思います。 それほど難しいものではないのでドキュメントを見ておけば大抵問題ないかと思うのですが、備忘録的に書いておきます。 ドキュメントは以下を参照してください。…

物理マテリアルを使って足音を変化させる

ファミコンやスーパーファミコン時代はキャラクタの足音はあまり実装されていませんでしたが、最近の3Dゲームでは足音がないゲームを探すほうが難しいのではないでしょうか? 足音は発生させるキャラクタの種類によって音を変えたりすることがありますが(子…

メッシュペイントあれこれ

たまにお世話になるわりに解説は行ってなかったな、と思ったのでメッシュペイントの話。 メッシュペイントとは、UE4上でメッシュに対して色を塗り、その色を利用してあれやこれややる機能です。 色をそのまま使うことはほとんどなく、主に複数のマテリアルパ…

UE4を配置ツールとして利用する

今回のネタはUE4ネタではあるものの、UE4でゲームを作る人にはあんまり意味がない内容となっております。 もしかしたら業務で利用する人が嬉しいかもしれませんが、多くの人にはどうでもいい内容でしょう。 特にエピックさんは一銭の得にもならないので、最…

エンジンを改造してLUTテクスチャを使ったトゥーンシェーダを実装する方法

前の記事 [UE4] エンジンのシェーダコードを変更する 基礎編 の応用編と言っていいのかな?という内容です。 前回の記事ではシェーダコードのみを変更してトゥーンシェーダを実現しましたが、完全な2値化しか実装できていません。 トゥーンシェーダを実装す…

『はじけろ!ブルーマン!の頭』の話

今回は第3回UE4ぷちコンに提出した『はじけろ!ブルーマン!の頭』の話です。 それほど難しいことはやっていないのであんまりおもしろいことは書けませんが、何らかの参考になればと思います。 まず、このゲームを作成する前に実は2作品ほど作ってポシャりま…

SequenceとDelayの関係

ぷちコンのゲームを作っていてちょっとはまってしまった部分があるので、推察ではありますが解説と回避方法をご紹介します。 皆さん、Sequenceノードは使用していますか? 複数の処理を1つの連続した処理として実行してくれるノードです。 Blueprintは連続…

UMGのアニメーションと動的な配置

ぷちコンのゲーム製作中にはまったのでさくっと記事にしてみます。 今回はUMGでアニメーションするウィジェットを動的に配置する方法を紹介します。 UMGはメニュー画面やHUDなどを簡単に作成することが出来る便利機能です。 アニメーションも比較的簡単に実…

Parallax-Corrected Cubemapを実装する

今回は以前の飲み会で話が出たParallax-Corrected Cubemapをマテリアルで実装してみます。 この手法は名前のとおり、視差を正しく計算してキューブマップをサンプリングする手法です。 正しく、と言っても完全に正確なわけではないですが、ある程度の正確さ…

ResponsiveAAの挙動

先日の勉強会にて、ある人物からResponsive AAの挙動がどうにもドキュメントに書いてあることと違う気がする、と言われました。 Responsive AAについて最も詳しく書いてあるドキュメントは、以下の雪のシーンに関するものでしょう。 https://docs.unrealengi…

エンジンのシェーダコードを変更する 基礎編

今回はエンジンのシェーダコードを変更することでトゥーンシェーダを実装してみようと思います。 基礎編とか言ってますが、今のところ応用編を作成する予定はありません。 トゥーンシェーダは通常、ライトの影響を2値、もしくは3値に変換することで実装しま…