UE4の勉強記録

UE4の勉強の記録です。個人用です。

「Unreal Engine 4.xを使用してRPGを作成する」の足りない部分を作成する RPGのStoryの作成と推敲6

<前文>

<間違える事について>

先々週のBlogでDot Productって書くべき所を、間違えてCross Productって書いちゃった箇所が2か所ありました。完全なケアレスミスでしたが、それによって私の言いたい事が全く伝わらない文章になってしまっていました。

私が言いたかったのは内積の英語訳は和英辞典によるとInner Productとなっていますが、実際にはDot Productという言葉が使用されている。という事だったんです。

先週は面倒だったので書かなかったんですが、前に内積の英語訳を調べた時に分かったんですが、実はInner Productと言う聞きなれない単語は存在していたんです。しかも英語圏の定義ではDot Productは実数のみ、Inner Productは虚数を含む場合に使用されると書かれていました。

それでふーん。と一端納得したんですが、良く考えたら大学で量子化学の勉強した時に虚数を含むVector内積を計算してた事思い出して、ネットにUpされている量子化学の教科書を読み直したら、虚数がガンガン使われている式でも内積の計算をDot Productって呼んでいました。

つまりInner Productって言葉、あるにはあるんですが理系の間でも一般的でない単語だったんです。(電気の人でInner Productを使用している人はいるにはいました。正しこの人はDot Productと全く同じ意味で使用していました。)

それで単純に内積の英語約はDot Productが正しくてInner Productは間違いと切り捨てて良いのか。と悩んだんです。

因みに中国語の訳を見たらDot Productは点積と訳されていました。

そのままです。

更にCross Productは十字積でした。

これは当然と言えば当然で、逆に何で日本語はDot Productを内積なんて訳したのかが疑問になります。

昔、日本語を勉強しているシンガポール人の友達に言われたんですが「勉強という漢字は、中国語では強制労働って意味になる。Studyって意味は全くない。中国語としてはこの漢字は完全に間違っている。しかしこの和製漢字はStudyの本質を表している。何かを学ぶためには強制して励む必要がある。本当に日本語は美しい。勉強していて楽しい。」と。

更にVitaminを英語圏の人はヴァイタミンと発音しますが、日本語はビタミンです。これを単に日本語が間違っているというのは簡単ですが、Vitaminのラテン語読みはビタミンだったらしいです。

日本語を学ぶ外国人は、日本語の母音がアイウエオの5つしかないので簡単といいます。しかし英語圏でも歌の発声練習をする人達は日本語のアイウエオと同じ音を母音の基礎音として練習しています。英語のSchwa音とかイとエの間の音とかは練習していません。

日本語は日本人が思っている以上に優れた言語です。

だから昔の日本人が、Dot Productを内積と訳したのには、何か意味があったはずなんです。

それで色々調べたんですが、結局わかりませんでした。

というかネットで調べた限りですが、内積をInner Productと訳す事に対して疑問に思っている日本人の数学者や物理学者が、一人くらいしかいませんでした。

それでこの内積をInner Productと訳す事に対する謎、もしくはDot Productを点積ではなく内積と訳す謎は、解明されずに終わったんです。

それで話は戻りますが、私がこのBlogで出来るのはこういう疑問に対して深堀りする事です。

たまたま今回のMistakeは、Blogを読み直したんで直す事が出来ました。しかし基本的には一人で書いているBlogですので細かいミスを修復する事は不可能です。それでミスは一杯あってもしょうがない。と思ってやっています。

それでは今週の勉強を始めます。

<本文>

1.今週の予定

今週も先週とほとんど同じ予定でやって行きます。

  • Niagara: CGHOW氏のTutorialをやる
  • Materialの勉強
  • RPGStoryの改善
  • Map1Bugの直し
  • Open Worldの検証
  • Gaeaの勉強
  • 雪山のMapの作成
  • UI Designの勉強
  • Blenderの勉強

2.Niagara: CGHOW氏のTutorialをやる

今週もUE5 Niagara & Custom Stencil Buffer Tutorial | Download Files [1]を勉強していきます。

2.1 先週の復習

先週勉強した内容で特に重要な個所は、

  • Custom Stencil BufferScene TextureノードのCustom Stencil)はPost Processing用のMaterialだけでなくStatic Mesh用のMaterial内でも、普通に使用出来る
  • 同様に、Custom Stencil BufferScene TextureノードのCustom Stencil)はNiagara用のMaterialにも普通に使用出来る
  • Custom Stencilを使用したガラス板越しにだけ見えるコーンの実装方法(以下に示す)

です。

2.2 UE5 Niagara & Custom Stencil Buffer Tutorial | Download Files [1]の続きを軽く見る

最初に残りのTutorialを全部見て、これから何をするのかを確認します。

<光の輝きをもっと激しく>

設定を以下の様に変更しています。

結果です。

この部分は以下に示した様なRangeなどの2つの値を指定する必要がある設定でその一方だけRandomな値を設定するための方法を勉強するだけです。

今までCGHOW氏のTutorialで何回もこれやっていますが、記録としてまとめた事はないので今回はこれも記録としてまとめます。

<直進する光の粒を追加>

ここからは、このVFXの見た目を良くするためのEffectを追加していきます。

これもDesign的な観点とDesignerが望むImageをどうやって実装するのかというEngineer的な観点から勉強する事にします。

EmitterをDuplicateして新しいEmitterを作成しました。

色々実装を変えていますが、基本的な部分はDuplicateする前のEmitterと同じです。

ガラス面から光の粒が飛び出しています。

<Smokeの追加>

今度はSmokeを追加しました。

こういうのはDesignerじゃないので本当に必要なのかどうか分かりません。

こんな大変な思いをしてまで実装する価値あるんでしょうか?

一応、作り方だけ覚えておきます。

<Edgeだけ発生するSmokeの作成>

以下の様なEffectも作成しました。

<全部のEffectを合わせる>

全部のEffectを合わせると以下の様になりました。

<Vortex Velocity Moduleの追加>

更にVFXを良くするための方法としてVortex Velocity Moduleを追加します。

光の粒が回転し始めました。

Vortex Velocity Moduleは今まで何となく使用していましたが、このModuleの機能についてもここで勉強する事にします。

Curl Noiseの追加>

GPUで光の粒の数を増やした後、Curl Noise Moduleも追加しています。

このModuleの機能についてもここで勉強し直します。

<太陽みたいなEffectの追加>

そう言えばこんなEffectついていました。

<太陽みたいなEffect用のSmokeの追加>

以下に示したSmokeを追加しました。

<Post Processingの追加>

このEffectをLevel上に配置した後で、Post Processingも追加しています。

Bloomを追加しました。

<Edgeを光らせる>

最後にEdgeが光る効果を追加しました。

2.3 UE5 Niagara & Custom Stencil Buffer Tutorial | Download Files [1]の続きを実装する

正直、前節で見た実装を一年前なら兎も角、今更勉強する価値って記録として残す以上の価値はない気がしています。

それよりもMesh Flipbook in UE5 Niagara Tutorial | Download Files [2]を勉強する方が為になる気がしています。

うーん。

どうしようかな。

今週は、やっぱりUE5 Niagara & Custom Stencil Buffer Tutorial | Download Files [1]の続きを実装します。

<光の輝きをもっと激しく>

ここは以下に示した様な2つの値がある設定のうち一つをRandomな値に変更する方法についてです。

Value RangeにDynamic Input であるMultiply Vector 2D by Floatをセットします。

次にFloatにDynamic InputであるRandom Range Floatをセットします。

FloatのMinimumとMaximumにValue Rangeに最初にセットされていた値をセットします。

次にMaximumにDynamic InputであるUniform A Or B Floatをセットします。

Uniform A Or B Floatはどんな機能を持つDynamic Inputであるのか知りません。

Cursorを乗せたら説明が表示されました。

AかBの値になるみたいです。確率はそれぞれ50%のようです。

AとB、そしてDistribution Weightの値を以下の様にしました。

Distribution Weightの解説は以下の様になっていました。

0.1にセットした場合、Aが9割、Bが1割になるみたいですね。

結果です。

非常に明るい光の粒が生成されました。割合は全体の10%位です。

出来てそうですね。

Uniform A Or B Floatは多分初めて使用したDynamic Inputです。Uniform A Or B Floatは正確に言えばRandomな値を選ぶのではなく、AかBの値を指定された確立によって選んでいます。

2つの値がある設定のうち一つの値だけの設定を変更したい時のやり方は

  1. Multiply Vector 2D by Floatをセットする
  2. Multiply Vector 2D by FloatにあるMinimumMaximumの内、変更したい値の方にUniform A Or B FloatなどのDynamic Inputをセットする

で出来るようになります。

そんだけです。

<直進する光の粒を追加>

まず今あるEmitterをDuplicateします。

Duplicateした方のEmitterを改良して直進する光の粒を追加します。

Particle Spawn SectionにAdd Velocity Moduleを追加します。

Tutorialと私のNSのx軸の向きが逆なので

Add Velocity ModuleのVelocityのXに100をセットしました。

次にRender SectionのSprite Renderer Moduleの

Alignmentの設定を

Velocity Alignedにします。

うーん。

これ何しているんでしょう?

一寸調べます。

Other particle Attributesが何を指しているのか良く分かりません。

うーん。

Velocity Alignedの説明を読んでいます。

あ。分かりました。

Other particle Attributesはこの場合はVelocityを指しています。

Sprite RendererのSelectionの下の方あるBindingsにVelocity BindingがあるParticle Velocityがセットされています。

きっとこの値に沿って矢印の向きがセットされるんでしょう。

うーん。

でもこのSprite Renderer ModuleにセットされているMaterial、Textureの向きは関係ない気がします。

あ、ありました。

Spriteの向きがカメラに対して正面になっていません。

こう言う事か!

Sprite Renderer ModuleのAlignmentの設定の意味が分かりました。

今度はParticle のSpriteの初期のサイズを変更します。

Particle Spawn SectionのInitialize Particle Moduleの

Sprite Size Modeの値をRandom Non-Uniformに変更してSprite Size MinとSprite Size Maxの値を以下のようにしました。

結果です。

<Smokeの追加>

まずSmoke用のMaterialを作成します。

以下に実装を示します。

ここに出て来てるNodeや実装は既に勉強したヤツばかりなので、中身の解説はスキップします。

EmitterをDuplicateします。

Render SectionのSprite Renderer Moduleの

Materialに先程作成したMaterialをセットします。

この後色々微調整しましたが、特に記載したい技術は使用されなかったのでその実装は記録しません。

結果です。

全部のEffectを追加しました。

<Edgeだけ発生するSmokeの作成>

当然、先程作成したSmokeのEffectをDuplicateして作成したEffectを使用します。

Particle Spawn SectionにKill Particle in Volume Moduleを追加して枠以外に生成したSmokeを消します。

後は色々やっていますが微調整の範囲です。

結果です。

<全部のEffectを合わせる>

結果です。

<Vortex Velocity Moduleの追加>

Vortex Velocity Moduleについては後でVelocity全体を復習する時に勉強する事にします。

今週は実装だけします。

最初のEmitterをCopyします。

PropertiesからGPUに変更します。

そしてParticle Update SectionにVortex Velocity Moduleを追加します。

Vortex Velocity Moduleの設定を以下のようにします。

結果です。

渦描いて回っています。

Curl Noiseの追加>

更にCurl Noise Force Moduleを追加します。

Curl Force Noise Moduleは今まで何度か勉強しました。確か簡易な計算で流体の動きを真似たい時に使用するNoiseだったはずです。細かい点については後で勉強する事にして今回は実装に集中します。

回転に乱れが生じるようになりました。

<太陽みたいなEffectの追加>

一番最初に作成したEmitterをDuplicateします。

単にShape Location Moduleを外して微調整して作成していました。

結果です。

全部のEffectを追加しました。

<太陽みたいなEffect用のSmokeの追加>

まず先程作成したRender SectionのSprite Renderer Moduleの

Sorting Order Hintを1にします。

次に以下のEffectをDuplicateします。

後は太陽みたいなヤツを作成した方法と全く同じでした。

結果です。

太陽みたいなEffectと合体させてみます。

イイ感じです。

全部のEffectを表示してみました。

<Post Processingの追加>

Post Processingも使用します。

をLevel上に追加しました。

次にVignette Intensityの値を1.0にします。

Vignette Intensityって何?と思ったら公式のDocumentのVignette [3]に解説がありました。

要するにScreenの四隅を暗くします。

次にPost Process の効果をLevel全体に作用させるためにInfinite Extent (Unbound)にCheckを入れます。

一気に画面の端が暗くなりました。

更にBloomを使用します。

光の粒が星状になりました。

すっごい綺麗です。

<Edgeを光らせる>

これやり方見たらすっごい簡単でした。

まず以下の形を作成します。

それにStepノードを掛けます。

すると以下の様になります。

Step Nodeの機能については2021-11-14のblogでまとめています。

このBlogでまとめた内容を簡単に説明するとStep Nodeの解説はUEのDocumentからは見つからなかった。代わりにUnityのStep Nodeの解説が見つかってその解説を読むと

と書かれています。

まあUnityのStep Nodeと同じ機能と考えて問題ないです。

それでこの機能を使って白くした部分の値を50倍にして色付けした後、枠の部分に足します。

これで枠の端がキラキラします。

<まとめと感想>

全部まとめると以下の様になります。

一寸だけ斜めから見ると迫力が凄いです。

正直、Stencilを使用したNiagaraの作成だけ勉強出来れば良かったので、今週の勉強は直接的にはあんまり必要のない内容だったんです。

今週の内容は先週作成したEffectの見た目を良くするためのPolishingが主で、Stencilを使用したNiagaraに関しては既に先週の時点で全部理解していました。しかしVFXの見た目を良くするために、どんな事をどれぐらいやっているのかを勉強する良い機会だと思い、今回は最後までこのTutorialをやりました。

やり終わった感想としては、見た目をよくするためにこんなに労力かけていたのかと驚きです。

まずEffectですが、5個も更に追加しています。更にPost Processingを使用したり、Materialに新たな実装を追加したりもしています。

これだけ磨かないと見た目自体が凄くならないんですね。

3.Materialの勉強

今週はまずBen 先生の Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43 [4]を勉強します。その後で時間があったら先週完成した Toon Shader & Custom Shadow - UE4 Postprocess Tutorial [5]のParameterの調整などをやります。

3.1  Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43 [4]を軽く見る

まずこのTutorialを軽く見て勉強する方針を考えます。

この前のTutorialの続きから始まっています。 UV Rotation - Shader Graph Basics - Episode 42 [5]です。このTutorialは2022-05-02のBlogで勉強しています。全く何を勉強したのか全く覚えていません。

2022-05-02のBlogを読み直したんですが、前半部分は特に知らない事は無かったと書いてありました。

後半部分では回転の速度を中心に近づく程遅くする実装についてまとめていてます。

あれ、中心に近づくほど速くってかいてある。

うーん。実装をみると中心に近づくほど速くなってそうですね。

VectorのLengthって中心からの距離でしょう。そこから1-xしていますので中心の値が最も大きくなるはずです。と言う事は、中心に近づくほど速くなってるはずです。

その後、木を揺らす実装をしています。

うん。復習終り。

これで今週のTutorial、理解出来るでしょう。

以下の部分の続きからやるみたいですが、この実装、 UV Rotation - Shader Graph Basics - Episode 42 [5]の前半部分の実装なのでもうないです。新しく作成する必要がありますね。

TranslationしてからRotationをすると訳わからなくなるのでRotationの後でTranslationしろと教えていますね。

私が開発した「誰でもTextureの操作が理解出来る方法」を使用しても直観で理解出来ないのか試してみます。私が開発したやり方なら線形代数を勉強した事ない人でも何が起きるのかを予測出来るようになると思っていますが、どうでしょうか?試してみます。

ScalingではScalingしてからRotationしてTranslationするとTextureが歪みながら回転します。だからRotationしてからScalingしてその後でTranslationしろとありました。

うーん。これは知らなかった。この理由も私の方法で説明できるのか試してみます。

そして結論としてRotation、Scaling、Pivot Pointを直す、Translationの順で行う必要があるとありました。

その後で、この実装をMaterial Function化しています。

Material Function化自体に特に勉強する事は無いですが、この次のTutorialでこのMaterial Functionを使用するそうなのでこれも作成します。

Unityの部分の説明はSkipします。

3.2  Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43 [4]を実装する

それでは実装していきます。

実装した後で、色々な疑問を検討しますのでまずは実装します。

前のTutorialの実装を再現しました。

<Translation

Rotationのやり方は

  1. Pivot Point5移動
  2. 回転
  3. Pivot Pointを元に戻す

で行っています。Translationはどの場所で追加すべきかをここでは論じています。

これは本当はCase by Caseですが、このTutorialでは回転の中心はPivot Valueで指定した位置にしたいのでTranslationの値がPivot Pointに影響しない3の後に実装します。

<Scaling

Scalingで大切な事はScalingにはPivot Pointが必要だと言う事だそうです。

何処を中心に拡大、縮小するのかによってTextureの形状は変化するからだそうです。

これは後で確認します。

ではどこでScalingをするのが正解なんでしょうか?

  1. Pivot Point5移動
  2. 回転
  3. Pivot Pointを元に戻す

ScalingにはPivot Pointが必要なので、当然1の前や3の後は×になります。1と2の間か2と3の間になります。

1と2の間に入れると、以下の様にTextureが歪んで回転するようになります。

この現象、私が開発した「誰でもTextureの操作が理解出来る方法」を用いたらきちんと解説出来るのか気になります。後で試してみます。

それで正解は2と3の間に追加します。

結果です。

U方向に2倍の大きさになっていますが、歪みなどは生じていません。

<Material Function化する>

しました。

うーん。

特に新しい事はなかったので結果だけ示します。

作成したMaterial Functionを使用してみます。

結果です。

うん。

合ってるでしょう。

3.3  Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43 [4]の検証をする

今回検証するのは、Scalingで歪みが生じる場合と生じない場合について、私の「誰でもTextureの操作が理解出来る方法」を使用した予測と実際の結果が一致するかを検討します。

<Scalingで歪みが生じる場合>

以下の手順でやると歪みが生じます。

  1. Pivot Point0.5移動
  2. Scaling
  3. 回転
  4. Pivot Pointを元に戻す

いつものヤツを使用してやっていきます。

Pivot Pointが0.5動きます。

この時カメラが動きます。

こんな感じです。

実装値です。

同じ結果です。

Scalingします。

Uに0.5、Vはそのままにします。

これもカメラが変化します。

カメラから見るImageは以下の様になります。

実測結果です。

む。違いますね。

あ。

わかりました。これ原点に対して縮むんです。

0.5*0.5=0.25

1.5*0.5=0.75

となります。

カメラから見たImageは以下の様になります。

実測値と大体同じです。

0.5,0.5の場合は

0.5*0.5=0.25

1.5*0.5=0.75

なので

となります。

これのカメラから見たImageは

になります。

実測値は

でした。

合ってるでしょう。

Scalingは必ず座標軸の原点を中心に行う必要がありました。

今度は以下の

0.5,0.5移動させた後に、Uに0.5、VはそのままにScalingした物を回転させます。

これも原点を中心に回転するので45度回転させた場合は、以下の様になるはず。

こんな感じになるはず。

実測値です。

全然違う。

と思ったら合ってますね。

私のやり方はScalingが入っても正しく予測出来ますね。

しかしこれ以上複雑な操作を手動で再現する場合、途中でミスしますね。頭で考えるのはこの辺が限界です。

以下の様なSoftを作成したら手動でやらないですみます。

このSoftのPointはUserはそれぞれの操作でどうカメラが動くのかを認識出来る事と、その結果、どんな映像がカメラに映るのかを認識出来る事です。

Textureの操作方法を学ぶのにこういうソフトを作成する事も考えています。

3.4 Toon Shader & Custom Shadow - UE4 Postprocess Tutorial [5]Parameterの調整などをする

今週はUnreal Engineでイケてるイラストを描くためのノウハウ大放出! | UE4 Manga Anime Illustration Dive Online [7] で勉強したPPLineDrawingを試してみます。

こんな感じになりました。

Toon Shaderと組み合わせてみます。

足元もしっかり線が書かれています。

うーん。実装については来週調べます。

今週は、PPLineDrawingを組み込んだProjectが正常に動く事だけ確認しました。

Toon Shader & Custom Shadow - UE4 Postprocess Tutorial [5]の影のパターンを変えてみた

こんなのにしてみました。

結果です。

うーん。あんまり変わらないです。

影のパターンは距離によって大きさを変えた方が良いかもしれません。

4.RPGStoryの改善

4.1 星屑世界と魔女の名前が両方、色に関係している件について

先週、星屑世界と魔女の名前が両方、色に関した名前なので星屑世界は色は止める事にしたんですが、以下の案があんまりしっくりしません。

我々は一個の世界の中に生きていますので、色々な世界がある世界で生きている人達が、どんな風にそれぞれの世界を形容するのか想像するのは難しいです。

でも、まず見た目で判断すると思うんです。赤いとか黄色とかの見た目です。だから何もない世界とか、小さな世界とかと言うより赤い世界とか黄色の世界とか言うはずです。更にUserの問題もあります。Userは一々、聞いた事もない世界の名前なんか覚えてくれません。でも色だったら覚えられます。

そして切符も色で分けられています。

だから、世界も魔女も切符も色で分けて良いと思います。

赤い切符で行ける世界は、灼熱の赤い世界。

青い切符で行ける世界は、森と泉の青の世界。

黄色の切符で行ける世界は、砂漠と竜の黄色い世界。

うーん。

星屑世界とか月想界とかが訳わからなくしている原因かもしれません。いろんな世界があるなら天使の世界とか悪魔の世界とかがあっても良いはずです。

小さな島の世界。最初の村の世界。とかの方が分かり易いです。

<最初に送られる世界の名前を決める>

最初にPlayerが送られる世界の名前をどうするかです。最も小さい世界にしますか。もしくは最初の世界とか始まりの世界とかにしますか。

はい。「平和と優しさの世界」としましょう。正し元の名前は「赤い帽子の魔女に会った人が最初に送られる世界」です。

うーん。

「端っこの世界」とかでも良いかもしれません。

こっちの方が重く無くて良いですね。

<色は重要なモノにつける>

はい。

思い付きました。物語の根幹に関わるもの(それが切符でも魔女でも世界でも)は色を付けましょう。そうする事でこれらが大切な何かであるとUserに暗に示す事が出来ます。

<隣の「島の世界」の名前は>

となると、端っこの世界からWarpして行く「島の世界」は後で、7つの大罪の一人がいたり12使徒の一人がいたりしますから重要な世界になります。色付けしても良い気がします。

でも千年前の世界が黄で、今の世界が青、千年後の世界が赤としているので、それ以外の世界に色を付けるのは一寸違うかもしれません。

「小さな島の世界」位が丁度いいかもしれません。

<切符の名前はどうするのか?>

青の世界や赤の世界に行くための切符が、青の切符だったり、赤の切符だったりするのは理解出来ます。

しかし端っこの世界から小さな島の世界に移動するための切符は普通の切符で良い気がします。

後、どの世界にも2つ以上の隣の世界があって、前の世界に戻る事、別な世界に移る事の2つは必ず出来るようにします。

それぞれの世界は以下の様に繋がっている事にします。

オレンジで示した小さな世界は一個だけ存在する隣の世界にしか移動出来ません。クリーム色で示した大きな世界は、複数の隣り合う小さな世界に移動出来ます。更に特別な切符を使用すれば隣の小さな世界を飛ばして、隣にある大きな世界に直接移動出来ます。

当然ですが、赤い世界に行くためには、赤い切符だけではなく特別な資格が必要になります。その資格を有しているのはPlayerが操作するキャラだけです。

隣の世界に移動するだけの切符は普通の切符、大きな世界から大きな世界へ直接移動する場合は特別な切符が必要になります。

  • 普通の切符
  • 特別な切符

にします。

<世界の名前を決める>

これは来週やります。

4.2 最初のEventのシナリオの推敲

先週、作成したシナリオを推敲します。

まず、月相界、太陽界、星屑世界の名称を止めます。分かりにくいです。

太陽界は決闘世界、星屑世界は小さな世界と大きな世界、月相界の存在は無しにします。

赤い帽子の魔女はジョバンニを端っこの世界に送ります。

ああ、村の名前をイチゴ村にしてしまっては雰囲気が台無しになります。

村の名前を考える必要があります。

<村の名前>

まず村は重要な存在ではないので色は使用出来ません。あとモブ間が出る感じが欲しいです。

淡水魚の名前なんかどうでしょうか?

ヤマメ村、野鯉村、ナマズ村、ハヤ村。

うん。こっちで行きましょう。これならそれなりにモブ感が出ていますし、イチゴ村みたいな異常にPositiveな印象を与える感じもありません。

最初の村の名前はヤマメ村に変更します。

<>

端っこの世界に着いたジョバンニは、Monsterがうろついているのを目撃します。

Monsterの縄張りに入るとMonsterが追いかけて来ます。Monsterに捕まると決闘世界に連れられてそのMonsterと決闘する事を強制させられます。もしMonsterと決闘した場合、ジョバンニは死にます。

祠の住人と会話すると、

  • 武器を手に入れたらMonsterを倒せる可能性がある
  • 武器は奥のヤマメ村にある武器屋で購入出来る
  • ただし奥に行くためには、Monsterを倒す必要がある。

を教えてもらえます。

ここでEventが発生します。

―序章:武器を手に入れろ―

まずはヤマメ村に行く必要があります。

方法は2つあって、

  • 正面突破
  • 脇道から移動

です。正面突破の場合は、Monsterが2体の追跡を避ける必要があります。よっぽどゲーム脳の人じゃないと無理です。脇道から行く方法は少しだけ遠回りですが、確実にヤマメ村に着けます。更に途中で村人と話しが出来たり、薬草を拾ったり出来ます。

ヤマメ村にやっとこさ着いたジョバンニは、武器を手に入れる為にはお金が必要な事を知ります。

村人に話かけると、ある老人から薬草を集めて道具屋で売るとお金が手に入る事をしります。

しかし武器を買う為には薬草を100個集める必要があります。

薬草は一端とっても朝になるとまた生えて来る事も知ります。宿屋に泊まると直ぐに朝になります。

山のふもとに立っている老人がいます。

話しかけると、ここから山を登る事が出来ると言います。

試しに登ってみると確かにJumpで登る事が出来ます。そして山を登ると短剣が落ちているのを発見します。

短剣を装備してMonsterと戦うとギリギリ勝てるようになります。

―第1章:小さな島の世界―

この続きは来週、書きます。今週はここまでとします。

5.Map1Bugの直し

以下のBugを直して行きます。

  • 銀河鉄道の駅員がGrey manのまま
  • ポーズ画面の地図をどうするのか?
  • Monsterが復活するようにする
  • Save 出来る神官を追加

全部出来れば今週でBugの直しは終わりです。永遠にBugの直しは終わらない気がしていましたが終わりそうです。

5.1 銀河鉄道の駅員がGrey manのまま

駅員自体を魔女に変えるかも知れないので、今回は単なる人に変換しておきます。

のMeshのSkeletal MeshをThird Person CharacterからExecution SKに変更しました。

Play画面です。

今回はこんだけにしておきます。Storyが決定し次第、別なCharacterに変更します。

5.2 ポーズ画面の地図をどうするのか?

これも今となっては要らない可能性も検討する必要があります。

要らないとした方が整理しやすい気がします。

取りあえず外しておきます。

いや、消して後から必要になっても遅いです。

以下の設定にして表示されないだけにしておきます。

こんな感じです。

5.3 Monsterが復活するようにする

これすっかり忘れていました。               

朝になると以下のEvent Dispatcherが呼ばれます。

このEventが呼ばれたらGame Instanceの

のSpawnを書き直します。

こんな感じです。

取りあえず、Map1のMonsterだけ復活出来るようにしました。

テストします。

Monsterが復活していません。

Game InstanceでBindするのを忘れていました。

もう一回テストします。

復活していない!!

あ。

Game InstanceのInitでGame ModeのEvent Dispatcherを繋いでもそのGame Mode死んでしまっていますね。

Game ModeクラスでBindする事にしました。

テストします。

今度はMonsterは復活しました。

ただしMonsterの復活はMonsterがSpawnされる時のみですので、

  • Sub Levelが新しく読み込まれる
  • Monsterと戦闘するなどして別なLevelから帰って来る

などのEventがないと、今の実装では倒されたMonsterは復活しません。

Map1はSub LevelがWorld Compositionと一対一の関係で作成してしまったので、Sub LevelにあるLandscapeの大きさが60m^2位しかありません。これは後で直しますのでその時に新しくMonsterのSpawnの設定もやり直します。ので今回はここまでにしておきます。

5.4 Save 出来る神官を追加

村のはずれに神官を配置しました。

話しかけると以下のUIが開きます。

6.Open Worldの検証

今週は、GDi4K氏のTutorialを勉強してみます。先週までの勉強でVirtual Textureについても一応理解する事は出来ましたし、GDi4K氏のTutorialを見ても理解出来るようになっているでしょう。

6.1 GDi4K氏のTutorialのどのTutorialを見るのか

色々ありますがVirtual Texture関連のTutorialを軽く見てみます。

これなんかどうでしょうか?

これから見てみます。まず見るだけです。実装はまだしません。

6.2 Super Simple RVT Blending Setup in Unreal Engine with OpenLand (Works with UE4 & UE5) [8]を見る

うん?

Open LandっていうAssetが有る事前提で解説しています。

Open Landって何でしょうか?

と思ったら

ここにありました。

あれ。金取るのか。

うーん。

他のTutorialも見てみます。

何個か見ましたが全部、GDi4K氏のTutorialはこのOpen Landを元にして作成していました。

そう言う事か。

何で今までGDi4K氏のTutorialを見ても意味不明だったのか理解出来ました。

私に理解出来ない高度な内容を語っているからだと思っていましたが、実際はこのOpen Landを購入した人向けのTutorialだったからみたいですね。

別に15ドルなんで購入しても良いんですが、UEの技術ってみんなでShareするもんじゃないんでしょうか?

Tutorialを見ただけでは理解出来ない人向けに完成品を販売したり、お金に余裕の有る人達にPatronになってもらったり、YouTubeの広告で収益を上げたりするのと一寸違いますよね。これは。

上記の収入は基本的には無料でも同様のサービスが受けれるようになっています。勉強するのが面倒な人やお金に余裕がある人達から金銭的なサポートも受ける訳ですが、基本的には無料です。

しかし、このTutorialはお金を払った人だけが受けれるサービスな訳です。

もう一つ私が言いたいのは、UEの技術を教える事そのものでお金を稼ぐと、Gameを作成する必要がなくなります。

Gameを作って売るのは大変な事です。その一番大変な部分を他人に任せるだけでも問題なのに、その人達から金まで取ったら誰が敢えてGameを作成する事をやるんでしょうか?

と一寸批判的な事を考えていたら

無料版のOpen Landもありました。

すまん。

良く読んでいなかったわ。

こっからDownloadします。

今度はしっかり読む事にします。まずLicenseの確認をします。

商業利用は駄目と言う事ですね。

分かりました。

Projectに以下のOpenLandをコピーして使用せよ。とあったんですが、これからGDi4K氏のTutorialを沢山勉強する事になりそうなので、このProjectをそのまま使用する事にします。

開いたら以下の様になっていました。

Play画面です。

うーん。

これらの山の形状はGaeaとかのLandscape専用のSoftwareは使用してなさそうですね。

Tutorialで使用していたVirtual Textureもありました。

6.3 Super Simple RVT Blending Setup in Unreal Engine with OpenLand (Works with UE4 & UE5) [8]をもう一回見る

もう一回、このTutorialを見ます。

全部、見ましたがやっぱりOpenLandありきのTutorialでした。

使用しているVirtual Textureの実装についてですが、以下のParameterを見る限りUnreal Sensei氏の実装と全く同じ様です。

更にStatic Meshのx、y軸へのProjectionがどうなっているかですが、Normal Sharpnessの値を弄っている時に以下の様になっていました。

これ見ると相当歪んでいます。Z軸のみの投影でTri-Planar Projectionは使用してなさそうです。

うーん。

GDi4K氏のTutorialは一寸Pendingしておきます。これを勉強する価値があるかどうか判断保留にします。

6.4 Virtual TextureのTutorialを探す

本当は、Virtual TextureにTri-Planarを組み合わせて、先週の歪んだProjectionをどれだけ直せるか試したいですが、

これ試す前に、もう一個位Virtual TextureのTutorialをやっておきたいです。

のでTutorialを探します。

まず公式のDocumentがありました。Runtime Virtual Texturing [9]です。

出来ればUE5の方のDocumentを見たかったんですが、UE5のDocumentを見たらこのDocumentは前のVersionからまだUpdateしていません。と書かれていたので4.27のDocumentを見る事にしました。

そのDocumentに初心者向けのTutorialなら、Runtime Virtual Texturing Quick Start [10]があります。と書かれていました。

こっちの方が初心者向けに書かれています。

このサイト、昔勉強した痕跡があります。

うーん。

全く記憶に無いです。

パッと見ですが基本的な実装方法が解説されているみたいです。

YouTubeでRuntime Virtual Textureで検索したら以下のTutorialが表示されました。

Unreal Sensei氏のTutorialは先週やったばっかしですが、Ben Cloward先生のTutorialもありますね。

GDi4K氏もそのTutorialでVirtual Textureを使用して最適化する方法について述べていましたが、Ben Cloward先生のTutorialもその関連のものでしょうか?

Ben Cloward先生もVirtual TextureのTutorial出しているですね。

ひょっとすると既にVirtual TextureにTri-Planarを使用する方法を説明したTutorialがあるかもしれませんね。

この中からやるとしたらMR3D-Dev氏のUnreal Engine 4: Ultimate Beginner's Guide to Runtime Virtual Texture Blending (RVT) [11]が妥当ですか。

初心者向けとありますし。

来週はこれをやって公式のDocumentを読む事にします。

7.Gaeaの勉強

今週はKlaus氏のGaea Beginner Tutorial Series : Part 2 - Terrain Creation [12]を勉強します。

やっと今週から本格的なGaeaの勉強が出来る様になりました。まあコツコツやっていくのは変わらないんですが。

7.1 Gaea Beginner Tutorial Series : Part 2 - Terrain Creation [12]を軽く見る

まず全体を軽く見ましたが、想像してたより10倍位複雑でした。

まあ、一回目の勉強で全部理解するのは不可能なので、出来るだけやってみます。

以下に、このTutorialで何をやっているのかを簡単にまとめます。

<Mountainの追加>

当然ですが、山を追加します。

個人的には山を最初に追加するのは違和感を感じるんですが、そういうものだと理解して先へ行きます。

この後Mountain NodeのParameterであるEdgeやSeedについて解説していますが、特に重要ではないので記録には残しません。

次にFoldノードを追加します。

このNodeは何をしているのか全く分かりません。実装する時に確認します。

そしてMountainノードのBulkyについてです。

これを使用するとMountainが以下に示した様な尖った形状になります。

Bulkyって大きすぎて場所を取り過ぎる事って意味でした。

これ見ると納得ですね。

TutorialによるとこのBulkyが大きいとErosionを追加した時によりはっきりと腐食跡が出るそうです。

Foldingノードの解説で以下のPost Processについて述べています。

うーん。

こんなの勉強したかな?

覚えてないです。

今度はShearノードを追加しました。

FoldとかShearとかその単語が実際どんな意味で使用されているのか全く分からないのばかりです。

Shearって大ばさみとか金属にStress加えて引きちぎるみたいなイメージがあったんですがGoogle検索だと以下の様なImageが出て来てます。

そう言えば羊の毛を狩る事をShearって言うんでした。

でもこれは関係ないですね。

Stress加えて地形をぐにゃっとする事をShearって表現しているんでしょうか?

次にFractal Terracesノードを使用しました。

Fractal Terracesは段々畑みたいなものらしいです。

これはImageが掴めました。

Erosionノードを追加します。

Erosionノードはかなり大胆に形状を変化させるので注意して使う必要があるそうです。

特にParameterのDowncuttingは山のGroove(溝)を激しくするそうです。

Erosionの使い方として一つのNodeで全部の効果を出すのではなく一つのノードで一つの効果を作成して、Erosionの他の効果を追加したい時は、Erosionノードを更に追加するのが良いみたいです。

これで山の作成は終わりです。

以下に示したArtifactは後で直すそうです。

<Baseの作成>

Baseですので山以外の平たい部分を作成していきます。

Worselandノードを追加します。

これなんて書いてあるか読めねー。Worth Landに見えます。発音はWrath Landに聞こえます。CaptionにはWaste Landと出てました。

これは実際にGaeaを開いて確認する必要があります。

Worse Landでした。

Canyonを追加するためにCanyonizer ノードを追加します。

<MountainとBaseを統合する>

統合する前に山の位置を好きな場所に移動したいのでTransformノードを追加します。

そして統合します。

統合するに当たってBaseの方は原点からかなり高い位置にありますが、

山はほとんど原点から始まっています。

のでそのまま統合すると以下の様に山が埋もれてしまいます。

BaseのCanyonizer NodeのDrop to FloorにCheckを入れる事でBaseを下げる事が出来ます。

更に、Mountainの位置を上げる事で山が埋もれるのを防ぎます。

Mountainの位置を上げる方法は、以下のPost Process でClampを選択してClamp Minの値を上げます。

すると以下のようなimageになります。

うお。全然違うー。

これは凄い綺麗です。

今度は先程追加したTransformノードを使用して山を小さくし、位置を移動させます。

Scaleを小さくします。

今度は位置を変更します。POSITIONの値を変更します。

ここでArtifactを直します。

Zero Borderノードを追加します。

これでBorderの部分の高さが0に近づくそうです。

何か盛り上がっていますが。

Zero BorderノードのBLURの値を上げます。

盛り上がりが無くなりました。

そしてCombineノードを使用して山とBaseを統合します。

結果です。

うーん。凄い。

ここでやっと半分です。頑張って残りもやり遂げましょう。

更にErosionを追加します。

ここで更にErosionを追加するのは、Baseと山に均一にErosionを掛ける事で、その二つが更に一体になった感じになるからだそうです。

<Waterの追加>

Lakeノードを追加します。

以下の部分の水は要らないので取ります。

Lake NodeのPrecipitationを0にします。

更にFlood ControlにCheckを入れます。

そしてWater Floorの値を上げます。

すると以下に示した様に先程示した部分の水が無くなっています。

うーん。

これは意味が分かりませんね。

何でこうなるんでしょう。

説明を完全に理解した訳じゃないですが以下の部分が単に高度が高いからだけみたいです。

それじゃ先程の手順をする意味が分からなくなります。

この後、Erosion NodeとLakes Nodeの間にSurface Nodeを追加します。

これは地形表面をもっと細かく表現するためのものみたいですが、良く分かりません。

はい。そしてRiver Nodeを追加しました。

<Snow Fallの追加>

そして更に雪を追加します。

Snow Fall Nodeを追加します。

Snow Fall NodeのParameterを弄って

雪の位置を決定します。

この辺は実装する時に色々試してみます。

Snow Fall NodeはErosion Nodeのように重ねて使用出来るそうです。

正し今回は使用しないそうです。

これでこのTutorialは終わっています、続きは次のTutorialでやるそうです。

7.2 Gaea Beginner Tutorial Series : Part 2 - Terrain Creation [12]を実装する

それでは実際にやってみます。

Mountain Nodeを配置しました。

こんな感じです。

横から見るとこんな感じです。

このLandscapeを回転させる方法を忘れてしまってGaeaにつてまとめたBlogを全部見直しました。

2022-04-11のBlogにまとめてありました。

こういうのはぼちぼち覚えていくしかありませんね。

Seed、Edge、そしてScaleを弄ってみました。

Seedは単純に山の形が変わります。恐らくRandom数を生成する時のSeedと同じ働きをしているのでしょう。

Edgeは値が低いと山と地面の境界にぼつぼつが現れます。

Fold Nodeを追加します。

が以下のようになりました。

この場合のFoldの意味が分かりました。Foldingです。

つまり畳んで小さくする事でした。

確かにこれを見ると小さくなって尖っている部分が凹んでいます。

次はPost ProcessのMaxを使用しました。

これです。

山が高くなりました。

Shear Nodeを追加しました。

になりました。

Shearがこの場合どういう意味で使用されているのか不明ですが、この結果を見ると山の凹凸がはっきりしましたね。

そういう意味なのかもしれません。

Fractal Terraces Nodeを追加します。

段差が追加されました。

Erosionを追加しました。

Fractal Terraces Nodeで作成した段差が全部消えてしまいました。

とは言ってもかなり本物の山らしくなってきました。

Down Cuttingの値を変えてみました。

結果が変化しないと思ったら、以下のApply Changesのボタンを押す必要がありました。

Erosion NodeはApply Buttonを押す必要がありました。

こういうのは今までしっかりとToolの勉強したお陰で理解出来る訳です。

更にErosion Nodeを追加して山が完成しました。

最初にしては上出来だと思います。

でもNodeの機能なんかは半分も理解出来ませんでした。

<Baseの作成>

Worse Landを追加します。

Canyonを追加します。

Parameterを弄って以下の様にしました。

<MountainとBaseを統合する>

MountainとBaseをCombineしました。

ただ統合しただけだとしょぼいです。

Drop to Floorを使用してBaseの位置を下げます。

これ、実際はPost Processにありました。

Transformノードを使用して山の位置を移動します。

Zero Border Nodeを使用して境界線を消しました。

微調整して以下の様になりました。

更にErosionを追加します。

結果です。

凄い良いです。

<Waterの追加>

Lakeを追加しました。

川を追加します。

結果です。

<Snow Fallの追加>

結果です。

Snow Lineを調節して

こうなりました。

今週はここまです。

7.2 Gaea Beginner Tutorial Series : Part 2 - Terrain Creation [12]を勉強した感想

まだ全然理解出来ていません。

Shear Nodeの機能やErosion Nodeを2回重ねる意味とか全然分かりませんでした。更にToolの勉強した事も思い出せず、TutorialでぱっぱっとToolを使って何かをされるとどうやってそれをやったのかさっぱりわかりませんでした。Parameterの調整のしかたとかも分からなかったです。

更にPost Processのやり方や機能も全然分からなかったです。

でも、焦ってもしょうがないのでゆっくりやっていきます。

8.雪山のMapの作成

8.1 足跡にくぼみを追加したい!

先週見つけたTutorialに追加してUnreal CG氏のDeformable Mud and Muddy Feet - UE4 Material Tutorial [13]も

綺麗な足跡にくぼみを作成していました。

先週、調べたTutorialは

です。

どれも長編のTutorialです。

雪にくぼみを作成している事、UE5を使用していない事(UE5だとバグが発生するという報告を何人もしている)を考慮するとCodeLikeMe氏のLandscape Deformation in Unreal Engine [18]が最も適切な気がします。これを勉強する事にします。

8.2 CodeLikeMe氏のLandscape Deformation in Unreal Engine [18]を軽く見る

2020年に作成されたTutorialで思ってたよりも古いです。UE4のどのVersionを使用しているのか知りたかったんですがそれは分かりませんでした。

何とこのTutorial、Runtime Virtual Textureを使用します。

雪のMaterialはMega Scanのを使用していますね。

Virtual Textureを作成します。

まずは以下に示したCubeのような単純な形状でDeformationが出来るようにします。

このCubeに使用するDeformation 用のMaterialを作成します。

あ。段々、何をやるのか分かって来ました。

Virtual TextureでLandscapeの高さとMaterialをDeform するMaterialに送ってそこでDeformするんです。

多分、この考えで合っているはずです。

LandscapeのMaterialのTessellation ModeにPN Triangleをセットしました。

うーん。

DeformはLandscapeのMaterialでするのか。

まあ、全部見てから考えます。

うん。

Deformation 用のMaterial内でLandscapeのMaterialの情報を受け取ります。

LandscapeのMaterialの情報をStatic Meshに送る方法は普通のVirtual Textureのやり方と全く同じみたいです。

これをどうやってLandscapeのDeformationに繋げるのか。そこがまだ分かりません。

あ。間違えていました。

Deformation 用のMaterial内でLandscapeのMaterialの情報を受け取っていませんでした。

Landscape用のMaterial内でDeformation 用のMaterialの情報を受け取っていました。

先週、勉強したVirtual Textureの逆でした。

その後、得た値を以下の様な計算を追加して

World Displacementに繋ぎました

Tessellation Multiplierには

単なるParameterを送っています。

結果です。

うーん。

何でこれで出来るの?

良く分からん。

TessellationというかPN Triangleの辺りは、2021-12-06のblog

2021-04-04のBlogにもっと総括的なDisplacement Mappingと言う技術についてまとめてあります。

更に2022-02-21のBlogには2021-04-04のBlog2021-12-06のblogに何が書かれていたのかを簡潔にまとめた記事があります。

この辺を復習すれば、やり方は全部思い出せるはずです。

確か以下に示した様にVertex Normal ノードを使用していたはずです。

Virtual TextureがStatic Meshの位置をLandscape用のMaterialにパスしているんでしょうか?

あ。段々、何が理解出来ていないか分かって来ました。

まず私が先週勉強したVirtual TextureはLandscapeのMaterialがその情報をLandscape上に配置されているStatic MeshのMaterialにパスする方法です。

今回のTutorialではその逆でLandscape上に配置されているStatic MeshのMaterialの情報をLandscapeのMaterialにパスしています。

まずこれが良く分かっていない。

これをするとLandscapeのMaterial はStatic Meshの位置をVirtual Textureによって把握出来るって事でしょうか?

次にDisplacement Mappingのやり方です。

これはもう一回復習する必要がありますが、今覚えている範囲だとVertex Normal ノードの値が必要だったはずです。今回のTutorialではVertex Normal ノードの値を使用していません。

これが良く分からない。

もう少し詳しく述べると、今回のTutorialでやっている以下の計算がDisplacementの方向と大きさを決定しているのが良く分からないです。

この2点については後で調べます。これが理解できれば、この部分に関しては問題ないはずです。

先へ進みます。

今度はDecal ActorにこのStatic Meshに使用していたMaterialをセットしても同様な事が出来るのか確認します。

出来ません。

Material DomainがDeferred Dealになってませんでした。

それでも駄目でした。

成程、これが出来たら今まで作成した足跡をDecalで残す実装に繋げるだけで完成した訳です。

その代り、Planeを使用して代用します。

今度はPhoto Shopで以下の様な絵を作成しました。

Deform Source、つまりPlaneが使用しているMaterial内で以下の様に使用します。

すると窪みが以下の様に変化します。

これ意味は分かりますが、Virtual Textureは2つMaterial用とHeight 用をしっかり作成して厳密に運用した方が良い気がします。何かその辺が不安です。

Virtual Textureの勉強は、Tutorial一個しか勉強していないのではっきりとは言えませんが。

当然、次のStepはこのPlaneをThird Person Characterの足元にセットする事になります。

もう分かった。この後は先週勉強した足跡の作成と同じです。

はい。

足跡に窪みを作成する方法、理解出来ました。

所がこのやり方だと、

足跡の窪みが生成されませんでした。

Tutorialでは別な方法に変更してしまいました。

うーん。

これはもう少し粘って欲しかった。絶対この方法で出来ますよ。

でも自分で試すのは面倒なので、他の人のTutorialも見る事にします。誰かはこの方法で実装しているはずです。

PlaneをBPにしてThird Person Characterに追加しました。

今度は出来ました。

うーん。まあ同じ事ですね。

Play画面にしたらこのくぼみ消えてしまいました。

これ、足跡を作成する代わりにこのBPを生成すれば良いんです。後は足跡のTutorialでやったやり方と同じで出来るはずです。

もう窪みを生成するやり方分かりました。

一応、このTutorialは最後まで見る事にします。

やっぱりAnim BPでNotifyを作成しています。

ただ足の窪みのBPを生成するための実装方法はInterfaceを使用していますね。

この場合は単にCastしても良いと思いますが、あんまりCastとInterfaceとDispatcherの使い分け時が分かっていません。

以下の様になりました。

出来たんですが、Characterが窪みに落ちないで浮いています。

これを直すそうです。

Landscape用のMaterialの以下の部分にOne minusノードを追加してDeform Directionに-1をセットしました。

これで行くんでしょうか?

出来ました。

うーん。World Displacementの仕組みが今一分からない。

ここだけは勉強する必要がありますね。

後は微調整すれば完成かと思ったら、窪みのBPが重なると以下の様に窪みが無くなってしまいます。

これを直します。

色々やったんでどれがどうなっているのか見てるだけでは理解出来なかったんですが、結果は以下の様になりました。

多分ですが、重なっている箇所を無くしたんです。でもこんな深い雪の中を歩いたら足跡だけ残るっておかしいですよね。

もう少し雪のつもりが浅かったら完璧だったのにと思いました。

やっぱり最後に雪を浅く直しました。

これなら見た目は完璧です。

ただTextureがOverlapした時の雪の窪みの問題は解決していませんが。

8.3 CodeLikeMe氏のLandscape Deformation in Unreal Engine [18]を見た感想

実装は来週やります。

大体のやり方は分かりました。

分からない部分は、

  • Landscape上に配置されているStatic MeshのMaterialの情報をLandscapeのMaterialにパスする
  • Displacement Mappingのやり方

です。

これはこのTutorialとは別に勉強する必要があります。

後はやってみないと分かりません。やったら結構出来ない部分とかあるかもしれませんし。

Overlapした時のDisplacementが常に低い値を取るようにする設定は出来る気がします。

GDi4K氏のTutorialでは出来てそうです。

やっぱりGDi4K氏のTutorialは頭一つ分抜けているのか。

今週はGDi4K氏のTutorialはOpen LandのImportだけで終わってしまいました。GDi4K氏のTutorialをどうやって攻略するかは来週考えます。

<追記>

CodeLikeMe氏が追加のTutorial、Landscape Deformation in Unreal Engine II - Snow Deformation [21]を上げてありました。

こっちはBPがOverlapしてもDeformationが普通に出来るそうです。

9.UI Designの勉強

今週は何をする予定だったのか忘れてしまったので先週のBlogを見たら

と書かれていました。

これをまずやります。

その後で、

のdesignを考えてみたいと思います。

9.1 UIのTutorialを探す

UE4 UI Tutorial」で検索しました。

これはUIのdesignについてのTutorialじゃなくてUIの実装方法についてのTutorialでした。

うーん。

検索方法間違えた。

私が知りたいのはVisual 面でのDesign方法です。

そうDesigner向けのUI designのTutorialを探しています。

流石にManual 化されているでしょう。

どう検索すればそういう情報を得る事が出来るのか分かりません。

まずはキーワードを探す事から始めます。適切なキーワードさえ見つかれば欲しい情報にたどり着けるでしょう。

たまたま検索で出て来たんですが、So You Wanna Make Games?? | Episode 9: User Interface Design [19]を見てみます。Designer向けの動画みたいですので、何らかの情報が得られるでしょう。

UX designerが以下のようなFlow Chartを作成して

UI DesignerがそれぞれのBoxをDesignする

ってありました。

うーん。

初めて知った。UX designerってWeb のdesignをする人達の用語と思ったらGame のUIでも使用するんですね。

もうちっと具体的な方法を知りたいです。

いろんな関連動画を見てみます。

5 TIPS for making prettier UI for games, faster. || Resources and Tools for User Interface Design [20]が次のお勧めで出て来ましたのでこれも見てみます。

この人は、IndieでGameを作成している人でUIをDesignする時はこれだけは先にやっておけと言う事が経験上分かったので、まとめておきます。という話でした。

  • 色は先に決める
  • Fontも先に決めておく
  • Visual Mock-Upを先に決めておく
  • きれいなDesignAnimationを追加する前に、Playerが説明されなくても直観的に理解出来るDesignになっているか確認せよ。
  • Game以外のものから学べ

でした。

うーん。結構勉強になります。

今週は、こういうのをもっと探して勉強する事にします。

Design Doc氏のGood Design, Bad Design - The Best & Worst of Graphic Design in Games ~ Design Doc [22]です。

これシリーズもので13コまで確認出来ました。最初のヤツだけ見ました。

何ていうかGame 好きな人の個人的な主観って感じでした。

でもこれ74万回も再生されています。

こういうのが売れるDesignというか消費者が求めているDesignなんでしょうね。

次に出て来たのがPONETI氏のUI Design: How to create well-looking interface using assets. [23]です。

これはあんまり心に響くものがなかったですね。

もう疲れてしまったのかもしれません。

このくらいで止めておきます。

10.Blenderの勉強

今週はもうやる気がなくなってしまったので復習だけやります。

<Selection Method

全部やりました。

2022-02-14Blogの復習>

全部復習しました。結構忘れています。

2022-02-21Blogの復習>

Barrelは完璧に出来る様になりました。

2022-02-28Blogの復習>

Shrink とFlattingが出来ません。まあそういう時もあるでしょう。

2022-04-03Blogの復習>

今週の木です。

帽子を一寸だけ違う方法で作成しました。

Every Other Faceの結果です。

Knifeの結果です。

2022-04-25Blogの復習>

全部やりました。

11.まとめと感想

今週はこれで終わりです。

12.参照(Reference

[1] CGHOW. (2022, April 26). UE5 Niagara & Custom Stencil Buffer Tutorial | Download Files [Video]. YouTube. https://www.youtube.com/watch?v=pp5Z8_Tz0xU

[2] CGHOW. (2022b, May 18). Mesh Flipbook in UE5 Niagara Tutorial | Download Files [Video]. YouTube. https://www.youtube.com/watch?v=zJf1extn3kE

[3] Epic Games. (n.d.). Vignette. Unreal Engine Documentation.etrieved May 29, 2022, from https://docs.unrealengine.com/4.27/en- RUS/RenderingAndGraphics/PostProcessEffects/Vignette/

[4] Cloward, B. [Ben Cloward]. (2022, April 21). Moving, Rotating, and Scaling UVs - Shader Graph Basics - Episode 43 [Video]. YouTube. https://www.youtube.com/watch?v=aLCgoI0oYUo

[5] UnrealCG. (2020, June 25). Toon Shader & Custom Shadow - UE4 Postprocess Tutorial [Video]. YouTube. https://www.youtube.com/watch?v=mx_AvrZK3TA

[6] Cloward, B. [Ben Cloward]. (2020, April 16). World-Aligned Textures - UE4 Materials 101 - Episode 22 [Video]. YouTube. https://www.youtube.com/watch?v=pXOknekvmwE

[7] Epic Game Japan [Unreal Engine JP]. (2022, February 21). Unreal Engineでイケてるイラストを描くためのノウハウ大放出! | UE4 Manga Anime Illustration Dive Online [Video]. YouTube. https://www.youtube.com/watch?v=QuYIkSozV6w

[8] GDi4K. (2022, January 29). Super Simple RVT Blending Setup in Unreal Engine with OpenLand (Works with UE4 & UE5) [Video]. YouTube. https://www.youtube.com/watch?v=dQM1Jcp0wiM

[9] Epic Games. (n.d.-a). Runtime Virtual Texturing. Unreal Engine Documentation. Retrieved May 29, 2022, from https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/VirtualTexturing/Runtime

[10] Epic Games. (n.d.-b). Runtime Virtual Texturing Quick Start. Unreal Engine Documentation. Retrieved May 29, 2022, from https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/VirtualTexturing/Runtime/QuickStart/

[11] MR3D-Dev. (2020, September 9). Unreal Engine 4: Ultimate Beginner’s Guide to Runtime Virtual Texture Blending (RVT) [Video]. YouTube. https://www.youtube.com/watch?v=_u-HdkJ3woE

[12] Klaus. (2022, January 15). Gaea Beginner Tutorial Series : Part 2 - Terrain Creation [Video]. YouTube. https://www.youtube.com/watch?v=8smDHlNpoyg&list=PLyNtvXvNIFMMHnW1_-hXO3RNPp_Z5CExF&index=2

[13] UnrealCG. (2020, March 25). Deformable Mud and Muddy Feet - UE4 Material Tutorial [Video]. YouTube. https://www.youtube.com/watch?v=uuJi5QfRiGI

[14] UnrealityBites. (2022, May 5). Unreal Engine 5 - Footprints In the Sand (Landscape Displacement) [Video]. YouTube. https://www.youtube.com/watch?v=GhtZK8J2LcM

[15] GDi4K. (2022, March 29). OpenLand Deform Toolkit for Unreal Engine HeightField Mesh Based Trails, Foot Paths, FX (UE5 Ready) [Video]. YouTube. https://www.youtube.com/watch?v=FW4twCpIL6w

[16] Interface In Game. (2020, December 11). Screenshots | Interface In Game | Video games UI. Retrieved May 22, 2022, from https://interfaceingame.com/screenshots/

[17] Marc W. (2015, December 13). Sand Footprints in Unreal Engine 4 [Video]. YouTube. https://www.youtube.com/watch?v=SiXxQkc0xMc

[18] CodeLikeMe. (2020, November 28). Landscape Deformation in Unreal Engine [Video]. YouTube. https://www.youtube.com/watch?v=tgEQY8rz6f4

[19] Riot Games. (2018, December 13). So You Wanna Make Games?? | Episode 9: User Interface Design [Video]. YouTube. https://www.youtube.com/watch?v=sc3h5JXtIzw

[20] Kae, A. [Amalie Kae]. (2020, July 10). 5 TIPS for making prettier UI for games, faster. || Resources and Tools for User Interface Design [Video]. YouTube. https://www.youtube.com/watch?v=cQVe6D2flpI

[21] CodeLikeMe. (2020, November 30). Landscape Deformation in Unreal Engine II - Snow Deformation [Video]. YouTube. https://www.youtube.com/watch?v=XM8evH-T7U0

[22] Design Doc. (2017, May 21). Good Design, Bad Design - The Best & Worst of Graphic Design in Games ~ Design Doc [Video]. YouTube. https://www.youtube.com/watch?v=bE_ZuNp1CTI

[23] PONETI. (2021, July 26). UI Design: How to create well-looking interface using assets. [Video]. YouTube. https://www.youtube.com/watch?v=CBsFEvfmKag