C96出展情報

CAVYHOUSEはコミックマーケット96の4日目(8/12)月曜日に参加します。
頒布予定は以下のようになります。

C96で体験版初公開の『くちなしアンプル』はCAVYHOUSEの第7弾オリジナル作品です。
ジャンルはダンジョン農地化ローグライクADVゲームです。
舞台は『わすれなオルガン』の10年ほど前。
新米錬金術師のイレーヌが、素材となるアイテムを求めてダンジョンに潜ります。
集めたアイテムを活用しながらダンジョンを「育成」して、より冒険を効率的に楽しめます。
ダンジョンを攻略していけば、仕掛けられた謎が徐々にあきらかになることでしょう。

今回頒布する『くちなしアンプル 体験版(C96ver)』は
ゲームの導入部分を体験できるデモバージョンです。
セールでゲットしたダンジョンに潜ったイレーヌが怪しい死体と双子に出会うストーリーの序盤部分と、
戦闘システムやダンジョン育成、農地化の基本要素を体験できます。

他にも、『マヨナカ・ガラン』や『わすれなオルガン』のノベルティを持っていくので、
ちょっと見てみたい、という場合はお気軽にお声がけ下さい。

それでは、スペース【ユ02a】でお待ちしております!

UE4でゲーム制作 【レイトレーシングを用いてムービーを作る】

ゲーム自体をリアルタイムレイトレーシングに対応するのはまだ大変そうですが、
ムービーだけなら制作環境で完結するしいけるのでは……ということで、
「くちなしアンプル」のオープニングムービー制作にレイトレ機能を使ってみました!


どんなことをやったかを簡単に書いていこうと思います。

はじめに

家にあったGPUがぎりぎり対応していなかったので
(VR開発のために、数年前にちょっといいやつを奮発して買っていたのに…かなしい…)
お値段と相談して中くらいのGPU、GTX 1660を購入しました。

届いたら早速、レイトレで描画してみます。
このシーンが、

機能をオンにして調整すると、

輪郭線などはそのままに、こういう感じに描画できるようになりました。
影や反射がきれいに出ています。
ちなみに、本作はローグライクでダンジョンが動的に生成されるため、
また全体の統一感を出すために、全てのシーンでシャドウの焼き込みを行っていません。
なので余計に影の描画の綺麗さが際立って感じました。

レイトレ機能をオンにする具体的な手順はこちらがわかりやすいです。

以下では、どんな調整をしたかを具体的に書いていきます。

シャドウをいい感じに

ライトのSource Radiusをいじって影の硬さを調整します。
左が0、右が28です。

値が大きいほど、床の影がふんわりしています。
画作りに合う影の硬さを選べるのが楽しい。今回は全体的に柔らかい影を使っています。

反射するマテリアルをふやす

せっかくきれいに反射を描画できるのだから…ということで、
床の反射を強くします。

つやっつやに反射してます。きれい。

ノイズの軽減

反射するオブジェクトのラフネスが高いと、かなりノイズがのってしまいます。
ポストプロセスのRayTracingReflection/MaxRoughnessを、見た目と相談しながらできるだけ小さくします。
しきい値前後でなめらかに反射が描画されなくなるようです。

特にノイズのひどかった髪や肌ですが、反射はいらないだろうと判断して
そのラフネスより小さくなるようにMaxRoughnessを設定します。

あごのつぶつぶが消えました。

レイトレに関するパラメータはこちらを参照にしました。
エディターから設定できるパラメータが一覧になっています。

InstancedMeshをstatic meshに

画像の薬置き場の腕の部分はInstancedMeshになっています。
InstancedMesh自体は描画されるのですが、影や反射が描画されていません。
ビンが空中に浮いてる……!
全部static meshに置き換えてしまいます。

まとめ

前作「マヨナカ・ガラン」でも、曲とあわせたいシーンはムービーにしていたのですが、
シーンの描画自体はゲームと同じものでした。
レイトレができると、ゲームの素材もノンフォトの表現もそのまま使いながら、
ムービーシーンの質を上げられるのがとても嬉しいです。
くちなしアンプルでは今回のオープニング以外にもムービーを取り入れる予定です。

UE4でゲーム制作 【3DWidgetの表示がTemporalAAでおかしくなる】

遅まきながら、4.21から4.22へとアップデートしたところ、

3DWidgetの表示がぶれてしまうように。
左下の白いバーはstatic meshですが、こちらは問題なく表示されています。

TemporalAAはGBufferのVelocityを参照しているので
コマンドから”VisualizeTexture velocity”で表示してみます。

world座標で動きがある部分が黄色く表示されているようです。
velocityからカメラの動きを引いたものが相対的な動きになるはずのところ、
3DWidgetのみカメラの動きが考慮されていないように見えます。

原因を探すにあたり、このスレッドを参考にしました。
むしろなんで今までちゃんと動いてたんだろう…?

ちなみに、同じくVelocityを参照しているmotion blurもこうなります。

誰よりも動いてないはずのUIに誰よりも激しいブラーが……

また、空っぽのプロジェクトで試すと、

ぶれる。
どうやらプロジェクトではなくエンジン自体に原因がありそうです。

いつかは修正が入るのかもしれませんが(今までは動いてたし)
コミケ直前に慌てるのは嫌なので、今のうちに直しておくことに。
根本的な修正にはエンジンに手を入れなくてはならなさそうなので、
とりあえず対処療法でなんとかします。

方法1. TemporalAAをFXAAにする


Widgetはきれいに表示されます。
ただ、動画だと違いがわかりにくいかもしれませんが、
実際の画面では、TemporalAAを見慣れているとちょっともの足りない感じです。

方法2. Widgetの設定 UserInterface/SpaceをScreenにする


Viewportにくっつけるのと同じような感じ……なのかな?
今回はポストプロセスとの兼ね合いもあるので、別の方法を使います。

方法3. 3DWidgetをstatic meshにする

こちらを参考にしながら、
Widgetをテクスチャに書き出して、メッシュに貼り付けてやります。


いいかんじ!
マテリアルの方で調整もできるので、元の画面に近づけたと思います。

—–
2019年6月13日 記述に誤りがあったので修正しました。