UE4の勉強記録

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

「Unreal Engine 4.xを使用してRPGを作成する」の足りない部分を作成する  マップの作製など Part 3

f:id:kazuhironagai77:20210328225746p:plain

<前文>

日本人が無邪気に信じる言論の自由アメリカにもないです。

英語の勉強方法に一寸だけ関係する内容を書いたりしていますが、結構な確率で英語の勉強をしている日本人で、アメリカが全ての点で日本よりも優れている国であると信じてる人に会います。10年以上アメリカに住んでいた私がハッキリ言いますが、そんな事は無いです。

言論の自由に限っても、アメリカの方がタブーは多い位です。今回、アジア系を狙った殺人事件がAtlantaで起きましたが、この事件の犯人は「このアジア人達が自分を性的に興奮させる可能性を起こすから殺した。」と動機を述べ、かつその殺された人達の職業が知れ渡った時、ほとんどのアメリカ人が「それなら殺しても仕方ないね。」と思っていたんです。

まずある種の女性を見て性的な興奮をするかどうかは個人の問題で、その人自身の責任でしょう。その責任を他人かつ一部の人種のせいにして、その人種の人達を殺す事はRacism以外の何物でもないです。それをみんなアメリカ人は分かっていたんですが、アジア系のアメリカ人はその差別を受け入れろと言うある種の忖度をアジア系に強制しているんです。

この事件がRacismであるとはっきりと述べたのは、現在、私が知る限りでは黒人のコメンテーター、一人だけです。タブーに切り込むのは非常に勇気が要りますし、彼にしたって何でアジア人のために自分のキャリアをリスクに賭けてまでそんな事を言うのかかなり悩んだはずです。

そんな中で、中国政府がアメリカ政府に面と向かって「人の国の人権問題にクビを突っ込む前に自分の国の人権問題、解決しろよ。」と言ったのは、ハッキリ言って勇敢だと思いました。

あるVtuberに対する嫌がらせで中国がかなり嫌いになっている私ですら、今回の中国政府の発言は肯定的に捉えるしかない位ですので、アメリカ国内における中国政府の評価は、アメリカのタブーに真正面から挑戦したとして、本音の部分では好意的に受け止められるでしょう。

勿論、今回の件だけを切り取って、米国の没落と中国の勃興が始まったと言うつもりはありません。これは中国人自身も良く言うように「中国人は口だけ。言う事は凄いが全然実行が伴わない。」だけかもしれないからです。しかし口だけだってアメリカのタブーに真正面から挑戦した事は評価すべきでしょう。

難民問題と日本の深謀

読書病と言う病気が本当にあるのか知りませんが、あるのなら中学時代の私は読書病でした。買った文庫本だけで800冊以上、記憶にあるだけで最低2回は読み直していました。好きな本なら数十回は読んでいましたし、それでももっと本が読みたくて本屋で本を買うフリして一冊丸々立ち読みしてしまう事もよくやりました。

その時の友達の親で読書が趣味の方が居たのですが、その人は私にどんどん本を貸してくれました。その時に読んだ本で、多分80年代位に書かれたPHPの文庫本だったと思うんですが「将来、中国から大量の難民がやって来て日本が崩壊すると恐怖を煽っている人がいるが、日本がお金持ちに成れたのは科学技術を用いて人を傷つける武器ではなく、人の役に立つ商品を作ったからだ。その事を中国に教え、その方法も中国に教えれば、中国自体がお金持ちに成って、敢えて日本に難民として来たいとも思わなくなる。」と書いてありました。

また大量のメキシコ人が国境を越えてアメリカに侵入しようとしていると言うニュースを聞いてその事を突然思い出しました。前に不法に侵入した人達は、バイデン政権下で特別にアメリカ人に成れる事が判明したので更なる不法移民がアメリカに押し寄せる事は間違いないです。

今、日本人で中国から大量の難民が来る事を恐れている人は、ネトウヨと呼ばれる一部の夢の世界で生きてる人達を除いてほとんどいないでしょう。むしろ日本人の方が中国に行って働きたいと思うくらいです。それは中国が豊かになったからです。そして中国が豊かになったやり方は、まさしく科学技術を用いて人の役に立つ商品を作ったからです。

当時の日本人はそこまで考えて中国に技術を教えていたんです。

自分の周りの国を、暗殺やクーデターのようなダーティな手段を使用してでも潰して常に弱くしておくアメリカと、周りの国にお金の稼ぎ方を教えて豊かにした日本、難民問題に関してはどちらが正解だったのでしょう。

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

<本文>

1.今週の予定

今週は、

  • DocumentのWater、Foliage Tool、Fog Effect、そしてHierarchical Level of Detailを読みます。
  • 日本語の資料で関係している箇所もチェックします。
  • UIWSの使用方法も勉強します

f:id:kazuhironagai77:20210328225957p:plain

  • Paintの見た目がオカシイ所を直します。(出来ればlayerをもっと増やしたいです。)
  • Grass toolで2種類以上の草を生やします。(見た目の違和感も無くしたい。)
  • Map1のLandscapeを完成させます。

以上をやっていきます。

WidgetのBPの整理、そしてEffectの勉強は時間があったらやります。

2.Documentの勉強

2.1 Foliage Tool

一番、先週勉強した分野に近いFoliage についてのDocumentを最初に読む事にしました。

使用しているVersionが4.26でした。4.26からFoliageの配置が変わっています。(正確には4.25から変わっていました。)

f:id:kazuhironagai77:20210328230100p:plain

2種類のMeshが追加出来るとの説明がありました。

Actor FoliageとStatic Mesh Foliageです。

f:id:kazuhironagai77:20210328230115p:plain

Static Mesh FoliageがInstance (instanced static mesh component)を使用した場合に該当しているのでしょうか?

  • 先週のBlogを読み直していたらInstanced static mesh component InstanceStatic meshから作成されたそれぞれのObjectInstanceと呼んでいました。この二つは全く違うモノなのでInstanced static mesh componentを言うときはInstance (instanced static mesh component)と呼ぶ事にします。
  • Instanced static mesh componentは以下に示したイメージのような大量のstatic meshinstancePCに負担をかけずに表示する時に使用するClassの事です。

f:id:kazuhironagai77:20210328230154p:plain

Size、Density、Erase Densityについての解説がありました。

f:id:kazuhironagai77:20210328230221p:plain

Sizeが300の時です。

f:id:kazuhironagai77:20210328230237p:plain

Sizeが1000の時です。

半円の大きさをコントロールしているのが分かります。

f:id:kazuhironagai77:20210328230252p:plain

次はDensityについてです。

Sizeが1000でDensity 0.5 で試します。

f:id:kazuhironagai77:20210328230308p:plain

生成される岩の位置は毎回変わりますが、岩の数は常に2個です。

今度は、Densityを1にします。

f:id:kazuhironagai77:20210328230330p:plain

今度は生成される岩の数が3つになりました。

Densityが高いほど、生成されるinstanceの密度が高くなるようです。

Documentを読むと1の時にそれぞれのMeshのMesh Properties に書かれているMaxのDensityに成るように設定されていると書かれていました。

これの事でしょうか?(1Kuuと言う単位は知りませんが、多分1 kilo Unreal Unitの略でしょう。)

f:id:kazuhironagai77:20210328230351p:plain

試しに10に変更してみます。

以下に示した様に大量の岩が出現しました。

f:id:kazuhironagai77:20210328230408p:plain

定量的に判断したいので2にセットして試してみます。

以下に示した様に1の時の2倍の6個の岩が出現しました。

f:id:kazuhironagai77:20210328230423p:plain

何で生成するためのInstanceの数をコントロールするParameterが2つもあるのか分かりませんが、Densityの使用方法は理解出来ました。

Erase Densityについてです。

これは、Ctrl + Shift + クリックで生成したInstanceを消す時の割合を決定するための値のようです。

0で試すと半円内の全部のInstanceが消えます。1の時は全く消えません。0.5の時は6個の内2個消えました。残り2個になったら消えなくなりました。

解説を読んだら以下の様な説明がされていました。

f:id:kazuhironagai77:20210328230451p:plain

これを読むとInstanceを消すと言うより、濃すぎるDensityでpaintした箇所を薄くするために使用するみたいです。濃く塗ってしまった箇所を初めからやり直す必要が無くなると書かれています。

次はFilterについての解説です。

f:id:kazuhironagai77:20210328230523p:plain

Filterで選択したタイプのActorにのみFoliageを追加する事が出来ます。

それだけです。

Toolの中で赤枠で囲った機能の解説です。

f:id:kazuhironagai77:20210328230540p:plain

解説を見ないで覚えてるだけで説明してみます。

  • SelectInstance1個だけ選択する時に使用するはずです。
  • Paintはいつも使用するやつです。
  • Reapplyは全く分かりません。
  • SingleInstanceを一個だけ追加します。
  • Fillは選択したlandscape全体にInstanceを追加します。
  • Eraseは多分Erase Densityと同じでしょう。

解説を見ます。

Reapplyは既にPaintした箇所のparameterを変更する時に使用するそうです。

Fillの説明が以下の様に書かれていましたが良く分かりませんね。

f:id:kazuhironagai77:20210328230607p:plain

後は、大体合ってました。

次はSelectで選択したInstanceに対してどんなActionが取れるかの説明がされていました。

End Keyだけ良く分かりません。Instanceを接地する機能なんでしょうか?

Paint、Reapply、SingleのActionについての解説がありましたが、大体知っている事なので省略します。

Fillの解説でFillはLandscape上をInstanceでFillするのではなく、Statice Mesh上をInstanceでFillすると解説されてました。

Erase Toolは選択した箇所を全部消すようです。Erase Densityは指定したDensityに減らすので機能としてはReapplyに近かったです。

Cullingについてです。

f:id:kazuhironagai77:20210328230627p:plain

遠くのMeshはCullingされて作成されません。その距離を指定するのがMaxのようです。しかし01でいきなりCullingをすると見た目が変になるのでCullingを始める距離をMinで指定して完全にCullingでmeshを消す距離をMaxで指定するようです。

LODについてです。

LOD自体の細かい設定を理解していないので、パスします。

Lightingについてです。

Lightingで注意しなければならないパラメーターは2つだそうです。

まずLight Map Coordinate Indexの値とUV channelの値を同じにする必要があるそうです。

f:id:kazuhironagai77:20210328230649p:plain

f:id:kazuhironagai77:20210328230658p:plain

Mesh Editorで確認しましたが、同じ値に初めからセットされているようです。

次はLight Map Resolutionです。

f:id:kazuhironagai77:20210328230716p:plain

f:id:kazuhironagai77:20210328230723p:plain

この数字は小さくないといけないと説明されていました。

その理由は(Defaultでは100個の)InstancesのShadow mapを一つのクラスターにして保存するのでそのクラスターのTextureのResolutionが4094x4096を超えないようにするためだそうです。

64 x 10 = 640 なので十分小さいでしょう。

Foliage Scalabilityについてです。

Foliage Scalabilityとは何ぞやと言う事ですが、FoliageにあるStatic Mesh Foliageの使用方法の説明のようです。

f:id:kazuhironagai77:20210328230744p:plain

先週、Landscape Grass Typeの使用方法について学んだので、Static Mesh Foliageの使用方法も勉強しておきましょう。

Static Mesh Foliageを作成したらMeshにStatic mesh を指定して、Enable Density Scalingをチェックします。

f:id:kazuhironagai77:20210328230824p:plain

作成したStatic Mesh FoliageをPaintのAdd Foliage Typeに追加します。

f:id:kazuhironagai77:20210328230841p:plain

Paintで塗った後です。

6個の岩があります。

f:id:kazuhironagai77:20210328230902p:plain

Playしてゲームを実行します。

@を押してコマンド入力可能にします。

foliage.DensityScale 0.1 を入力します。

f:id:kazuhironagai77:20210328230920p:plain

岩の数が1個に減りました。

こうやって使用するそうです。

以上でした。

2.3 Water

次は水のDocumentを読んでみます。

来ました。

Water pluginの説明です。

f:id:kazuhironagai77:20210328230941p:plain

これの使い方が勉強したかった。

まず、ビデオがありました。35分もあります。

f:id:kazuhironagai77:20210328230958p:plain

見ました。

高等なテクニックは全く理解出来ませんでしたがLandscapeを作成した後、

f:id:kazuhironagai77:20210328231013p:plain

をドラックして追加すれば海が出来るみたいです。

更に、

f:id:kazuhironagai77:20210328231027p:plain

を追加すれば湖が出来き、

f:id:kazuhironagai77:20210328231041p:plain

を追加すれば川が出来るみたいです。

取りあえず、これを試してみます。

何か出来るんですが、サンプルの様にLandscapeの形状が勝手に変わってくれません。

自分でLandscapeのScriptで形状を変化させる必要があります。

凄い調べたら答えらしきものが分かりました。

Landscapeを作成する時に、以下に示したEnable Edit layersをチェックする必要がありました。

f:id:kazuhironagai77:20210328231105p:plain

やっと以下のような海、湖、そして川を含んだ地形を作成出来ました。

f:id:kazuhironagai77:20210328231122p:plain

見た目もしょぼいし、川と海や川と湖のつなぎ目も変ですが、最初の一歩としては十分です。

それではDocumentを読んでいきます。

Enabling and Using Water

Water pluginを使用出来る状態にする手順が説明されています。

Water Tool Features

このpluginに付属のToolについてです。具体的なToolの使用方法はこの後で解説しています。

Water Body Actors and Spline-based Tools

Water Body Actorには以下の種類があります。

f:id:kazuhironagai77:20210328231146p:plain

先程使用したのは、Ocean、Lake、そしてRiverです。

Water Body Actor の特徴はa spline-based workflowです。

Water Body Actorは以下の事が出来ます。

  • 移動、回転、拡大縮小、そして複製。
  • Alt + ドラッグで新しいSpline 点を作成。
  • 水の流れるスピード、深さそして音をそれぞれの点で調節。
  • 水の特徴を調節するために、それぞれの点からメニューにアクセス出来る。
  • Landmass pluginにある非破壊のLandscape Edit Layersを使用する事で自動的にLandscapeに干渉出来る。

最後のLandscape Edit layersを使用するためには、Landscapeを作成する時にEnable Edit layersをチェックする必要があります。

Landmass Pluginは既にチェックされているので使用するために時に何かをする必要はないです。

f:id:kazuhironagai77:20210328231215p:plain

Gerstner Waves

正直、初めて名前を聞きました。これは波の動きを表す方程式のようです。

この方程式については後で詳しく調べます。

Fluid Simulation and Gameplay Physics

波にさらわれた浮遊物や波の波紋、水飛沫、そして泡を作成するための機能のようです。

表示されているイメージにGIFと書かれれていたのでクリックしたらイメージが消えてしまいました。

force impulsesについての説明があります。浮遊物を表すactorそれぞれが持つ値で、その浮遊物の掛かる力を表すパラメーターだそうです。でも実際は良く分かりません。使って見ないと。今回はこんなパラメーターがあるよ。位の理解にしておきます。

Water Mesh Actor

全ての海、湖そして川は一枚のWater Mesh Actorで作られているそうです。

川と海の様に重なっている箇所は一枚のメッシュを共同で使用するみたいです。本当でしようか?

先程自分で作成したヤツの川と海のつなぎ目をBrush Wireframeにして表示してみました。

f:id:kazuhironagai77:20210328231237p:plain

川と海のメッシュの大きさは違いますが、確かにつながっています。(赤枠で囲った部分)

GIFのアニメーションがこのWater Mesh Actorの特徴を分かり易く説明していました。

簡単に説明し直すと。

最初は以下の図の様に成っています。

f:id:kazuhironagai77:20210328231255p:plain

中心と端のVertex以外のvertexが以下の図の様に移動します。

f:id:kazuhironagai77:20210328231311p:plain

これで波が起きる状態を表します。

天才的なアイデアです。

Vertex Shaderでこの動きを管理しているんでしょうか?

先程の海と川と湖を作成したプロジェクトでWater Mesh Actorを調べたらありました。

f:id:kazuhironagai77:20210328231327p:plain

このクラスのパラメーターで重要なヤツの解説がされています。

一回も使った事がないパラメーターの役割を説明されても理解出来る訳在りません。スキップします。

一応以下のパラメーターについての説明があったとだけまとめておきます。

  • Force Collapse Density LevelTile SizeExtent in TilesTessellation FactorLOD ScaleFar Distance Material、そしてFar Distance Mesh Extentです。

Rendering Features

Renderingの中で重要な部分を説明している様です。

Underwater Post Process materialは、水中からの景色を担当しているみたいです。

川と海の水の繋がりについて

川のActorが担当しているみたいです。

このDocumentに例として紹介されている川と海の繋がっている部分は非常にきれいです。

私が作成したのを以下に示しますが川と海の違いがはっきりしています。

f:id:kazuhironagai77:20210328231352p:plain

これって直せるんでしょうか?

Caustics generation tools(水面のキラキラを作成するツール)

流石にこれをいじるレベルにはまだ達していませんので今回はスキップしておきます。

Water Bodies

海、湖、川などの紹介です。

以上です。

2.4 Fog Effect

こんな沢山のDocumentの集まりでした。

f:id:kazuhironagai77:20210328231418p:plain

Level designに霧は必要ですが、霧を追加するのは最後で良いので今回の勉強はパスしておきます。

2.5 Hierarchical Level of Detail

Hierarchical Level of Detail ってHLODの事だったです。何か勘違いしていました。Level designの高レベルな(つまり抽象的な)構造の説明だと思っていました。

これも今回はスキップします。

3.Landscapeの作成に関しての勉強:日本語資料

マテリアルデザイン入門」にstatic mesh の代わりにInstance (instanced static mesh component) を使用する事でmemoryの負担を大幅に減らす事が出来る話が普通に解説されていたと思ったら、単なるMaterial instanceの作成方法でした。全く違う話でした。

Landscapeに関係している13章から15章まで軽く読みました。それぞれの話は大変興味深いですがMaterial 中心の話なのでmaterialの勉強する時にじっくり読む事にします。

一番重要なのは、遠距離と近距離でTextureのサイズを変える方法ですが、

個人的に特に面白いと思ったのは、

  • World Position Offsetノードの解説。
  • Two Side Signノードと法線の向きの関係を図で解説した所

でした。

World Position OffsetもWater Mesh ActorもVertex Shader内で頂点を動かしているんでしょうか?

Two Side Signノードと法線の向きに関してですが、法線は物理を勉強してない人には馴染みのない概念です。法線に対して何かしたら予想と違う挙動をして困ってしまった。と言う経験をした人は結構多いと思います。コラム内で法線の挙動を表すために使用されている図は、法線の挙動を非常に分かり易くかつ正しく可視化していて、驚嘆しました。

法線に関してですが、昔、Vertex shader内で頂点の法線を正規化(normal vectorをnormalize!?)するとFragment shader(direct xではpixel shader ?)内でその正規化した法線を元にpixel毎の法線が生成されますが、その法線は単に正規化した頂点の法線を補間しただけで、pixel毎の法線が正規化した訳ではないのでFragment Shader内でpixel毎の法線をもう一度正規化すると影の付き方がこんなに違うと立方体を例にして見せた時がありました。

興味すら持ってもらえなかったです。

この法線の図も多分、興味持って貰えないのでコラム送りになったのでしょうが、私的には読んでいて大興奮する箇所でした。

4.UIWSの使い方について

せっかくWater pluginの使い方を覚えましたが、今作成しているゲームのVersionは4.24なのでwater pluginは使えません。

代わりにUIWSを使用しようと思います。

f:id:kazuhironagai77:20210328231524p:plain

このPluginのdocumentを見たのですがあまり詳しい説明はないですね。YouTubeには何個かTutorialがありました。

取りあえずInstallしてYouTubeのtutorialを見てみます。

何個かYouTubeのtutorialを見た所、以下のUIWS ManagerをLevel内に配置して

f:id:kazuhironagai77:20210328231550p:plain

更にUIWS Water Bodyを配置すれば、水面が出来るみたいです。

f:id:kazuhironagai77:20210328231604p:plain

こんな感じでした。

更に、Third Person Character が水に干渉出来るようにThird Person CharacterのMeshのRenderの以下の設定を変更しました。

f:id:kazuhironagai77:20210328231619p:plain

水中を歩いていると水しぶきや波紋が見えます。

f:id:kazuhironagai77:20210328231634p:plain

これだけしか分かりません。

正直、water-pluginを見た後だと、かなりしょぼく見えます。

そうだ提供されているサンプルを見てみます。

View OptionのShow Plugin Contentをチェックして

f:id:kazuhironagai77:20210328231650p:plain

UIWS Contentを表示させます。

f:id:kazuhironagai77:20210328231706p:plain

その中にあるUIWS Demo Levelを開きます。

f:id:kazuhironagai77:20210328231722p:plain

水飛沫が表現されています。

f:id:kazuhironagai77:20210328231736p:plain

Water pluginを見た後だからかもしれませんが、正直な感想を言うと、水飛沫じゃなくてプラスチックの削りカスが生成されているみたいです。

f:id:kazuhironagai77:20210328231754p:plain

キャラを滝に飛び込ませるとしっかり水飛沫がキャラに反応しています。

反対側の滝にも飛び込んでみました。

f:id:kazuhironagai77:20210328231810p:plain

こっちの滝はかなり滝でした。水飛沫の量が多すぎるとプラスチック感が出るみたいです。

生成された水面を見ています。こっちはかなり水面しています。

f:id:kazuhironagai77:20210328231826p:plain

水面下からの画像です。

f:id:kazuhironagai77:20210328231840p:plain

これも水面下から見てる感は凄いですがWater pluginと比較すると一寸落ちる気がします。

まあ、文句ばかり書きましたが、十分凄いですので、これを使用して海と川を作成する事にします。

川も作成してみました。

f:id:kazuhironagai77:20210328231900p:plain

川の頂点を増やす方法は、頂点を選択した状態でalt + ドラックでした。Duplicateを作成するのと同じ要領でした。

Third Person Characterと川が干渉しません。

f:id:kazuhironagai77:20210328231915p:plain

製作者が結構真剣にUserからの質問に答えてると聞いたので、同じ疑問を持った人もいるかもと思い調べたらありました。

f:id:kazuhironagai77:20210328231931p:plain

Uiws boyのBPを開いて見るとRippleとコメントに書かれた箇所でApply Force at Locationが使用されていました。

f:id:kazuhironagai77:20210328231945p:plain

この関数の使用方法が分かれば川にキャラが侵入した時に波紋や水飛沫が発生するように出来そうです。

この関数と川との干渉は後で検討します。

滝も川を曲げて作成しました。

f:id:kazuhironagai77:20210328232002p:plain

正面から見るとかなり凄いですが、横から見ると単なる線です。

f:id:kazuhironagai77:20210328232027p:plain

先程の水飛沫ですが、Particle systemで作成していました。

f:id:kazuhironagai77:20210328232043p:plain

プラスチックの破片が飛んでいるみたいと散々悪口言いましたが、Particle systemから自作するのは大変なのでこれを使用する事にします。

以下の水飛沫用に以下のParticle が提供されていましたので、これらも使います。

f:id:kazuhironagai77:20210328232059p:plain

残りは川や海を作成しながら勉強するようにします。

5.Landscapeの直し:準備編

5.1 Tutorialで勉強

偶然でしょうがYouTubeのお勧めに「How to HIDE Texture REPETITION in Unreal Engine - UE4 Tutorial」と言うLandscape作成のビデオが表示されていました。そこでこんな駄目なLandscapeを制作していませんか?と紹介されていた駄目なLandscapeが、私が作成したLandscapeをそのまま載せたんじゃないかと言うくらいそっくりでした。

そのビデオで紹介されていた駄目なLandscapeの例

f:id:kazuhironagai77:20210328232137p:plain

先週、私が作成したLandscape。あんまりにもそっくり。

f:id:kazuhironagai77:20210328232155p:plain

お茶飲みながら見てたんですが、もう少しでこぼすとこでした。

これは全部見るしかないと思い、ちょっとそのTutorialで勉強する事にしました。

  • 質の高いTextureを使用する。Mega ScanTextureを使用する。
  • Macro variationのあるtextureを使用する。
  • Distance blendを使用する
  • Materialを変化させる。

などが解説されていました。

うん。

このTutorialに沿ってやり直しますか。

やり直しますが、それはLandscape作成の基本を勉強すると言う意味でやり直します。Photo realistic renderingにシフトする訳ではないです。

マンガの絵がオカシイと言われ続けウン十年ですが、写実的に正しくなくてもマンガは売れています。

ゲームはほとんどやらない私ですがアニメや漫画は良く見ます。アニメや漫画でよく言われるのが「キャラは記号である」と言う事です。あるキャラは“強い”という記号を表している。別なキャラは“美人”という記号を表している。と言う意味です。

この記号と言う概念は、キャラだけでなくその世界観にも繫がります。

例えば、カイジと言うマンガは独特の世界感があります。その作者の独特な絵柄がその独特な世界観を表す記号になっていて絵柄をパッと見るだけで読者は、ああ「カイジの世界なのか」と納得します。

写実的に正しい描写はこの物語において大切なそのキャラが持つ記号やそのゲームが持つ世界観を曖昧にしている気がします。

その辺の現実は受け入れた上で勉強します。

5.2 Landscapeもう一度

この作者の前のtutorialで最初からLandscapeを作成しているのがあります。Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4です。それで勉強する事にします。ただそのTutorial、4時間もあります。取りあえず最初の10分だけ見てみます。

10 分だけ見ました。本当の初心者向けのTutorialです。Unreal Engineのinstall 方法から説明していました。

Mega Scanを使用するやり方は2時間後から始まっています。しかも5分で終わっています。その後からLandscapeの作成が始まっていますのでこの後半の2時間だけ見れば十分みたいです。

ですが、復習も兼ねて一応全部見てみます。

5.3 Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4を勉強して:前半部

お菓子を食べながら映画でも見る感じで軽く見ました。

それぞれの章で知らなかった事や、大切だと思った事を以下にまとめました。

User Interface

この赤で囲った画面の部分の名前知っていますか。3D viewportと言うらしいです。

f:id:kazuhironagai77:20210328232310p:plain

4.25からModeがtoolに移行してModeのある場所にはPlace Actorが配置されているんですね。私は今しばらく4.24でやっていくのでこの辺は後の楽しみとします。

このオレンジの三角をクリックすると、タブが表示されるのも知りませんでした。

f:id:kazuhironagai77:20210328232332p:plain

こんな感じです。

f:id:kazuhironagai77:20210328232346p:plain

<3D Navigation>

Standard NavigationとGame style Navigationの二つの操作方法があるのは知りませんでした。自分がどんな方法で操作しているのかもう意識していないので分かりません。多分全部知っているでしょう。

<Viewport Settings>

この部分の説明です。

f:id:kazuhironagai77:20210328232428p:plain

この意味知っていますか。

f:id:kazuhironagai77:20210328232446p:plain

ExposureってHDRの事だと思うんですがLevel designの時それをOn Offするためだそうです。

<Manipulating Object>

Gを押す事で、以下に示したようなeditorでのみ表示されるウィジェットの表示を消す事が出来るそうです。  

f:id:kazuhironagai77:20210328232533p:plain

これも知りませんでした。

<Intro to Materials、Physically Based Rendering、Migrating and Downloading Unreal Assets>

特になかったです。

<Advance Materials>

色を管理するTextureのみsRGBにチェックを入れます。

f:id:kazuhironagai77:20210328232624p:plain

Normal map や Roughnessを管理するTextureはsRGBのチェックを外します。

何となくは覚えていましたが、念のために記録しておきます。

Normal mapにはDirect XタイプとOpenGLタイプの2種類があってUE4はDirect Xタイプを使用しています。

OpenGL用のNormal mapを使用する場合はTexture のFlip Green Channelにチェックを入れます。

f:id:kazuhironagai77:20210328232646p:plain

正直この事は全く知りませんでした。

<Creating a 3D asset>

特にないです。

<Reflections and Post Process>

Screen space reflection とその停止方法が知らなかったです。

Screen space reflectionの停止方法について解説します。

Post Process Volumeを追加します。(下の図はView modeでReflectionを選択しています)

f:id:kazuhironagai77:20210328232735p:plain

Rendering FeaturesのScreen Space ReflectionsのIntensityをチェックします。

f:id:kazuhironagai77:20210328232752p:plain

値を0にセットします。

Screen space reflectionがOffになりました。

f:id:kazuhironagai77:20210328232809p:plain

床に移っていた家が消えました。

<Lighting: Static vs Movable>

特にないですが、Lightに関しての自分の知識が正しかった事の確認は出来ました。

<Lighting: Types of Lights>

Rect lightを知らなかったです。

Sky lightとatmospheric fog の関係を説明していたのですが良く理解出来なかったです。この辺はLighting の勉強する時にしっかり復習します。

Static lightingとStationary lightingの具体的な違いを知りました。Stationary lightingはDynamic shadowをcast出来ます。

2020-11-08のブログ

f:id:kazuhironagai77:20210328232857p:plain

と書いていましたが、この辺の理由もStatic lightingとStationary lightingの違いから説明出来そうです。

<Lighting: Build Lighting - realistic interior>

これは、実際に提供されているsampleをdownloadして自分で試さないと完全な理解は出来ませんね。

建築業界の人には必須かもしれませんが、あんまり興味ある話ではないです。

5.3 Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4を勉強して:Mega Scanの使用

地面に岩のTextureがタイルのように繰り返し貼り付けられているのを目立たなくするためには、まず「質の高いTextureを使用すべき。Mega ScanのTextureを使用すべき。」と「How to HIDE Texture REPETITION in Unreal Engine - UE4 Tutorial」で説明されています。

そのためにはUE4からMega Scanの使用方法を勉強しなければなりません。

ここでします。

Bridgeをdownloadすれば良いみたいです。

適当に入力してたらDownload出来たみたいですが、このTutorialの説明、親切じゃないです。

調べたらMegascans to Unreal Engine 4 Workflow - How to install Bridge plugin in UE4にdownloadするための手順が一つ一つの説明されていました。こっちのやり方に沿ってやればよかったです。

以下の箇所のDefault Projectの部分に適当なFolderを指定したのですが大丈夫でしょうか?

f:id:kazuhironagai77:20210328232943p:plain

「Megascans to Unreal Engine 4 Workflow - How to install Bridge plugin in UE4」では何も指定していませんでした。

Projectを開いて見たらMega scansのTool buttonが出来ていました。

f:id:kazuhironagai77:20210328233016p:plain

よし、試しに何かBridgeからUE4に送ってみます。

兎に角、質の高いRockのTextureがほしい私は、Rockで検索して適当に選択していったら以下のAssetが出て来たのでこれをDownloadします。

f:id:kazuhironagai77:20210328233045p:plain

TutorialではBridgeの右側に設定を選択出来るDetailみたいなのが表示されていますが、私のにはありません。

f:id:kazuhironagai77:20210328233104p:plain

ないんですが、右上の矢印をクリックしたらDownload出来ました。そしてもう一回クリックしたExport出来ました。

UE4をみたらDownloadされています。

f:id:kazuhironagai77:20210328233123p:plain

出来たと思ったら、全部4kじゃないですか。

やっぱりBridgeのDetail画面をどうにかして表示して2kに設定しないと。

Assetをクリックして選択した状態になったら普通に表示されました。

f:id:kazuhironagai77:20210328233141p:plain

もう一回やります。

f:id:kazuhironagai77:20210328233157p:plain

今度は2kでImport出来ました。

一応Bridgeからassetを得る事が出来るようになったので、Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4に戻ります。

5.4 Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4を勉強して:Landscapes

重要だと思った事をまとめておきます。

Section、Componentについての説明はありませんでした。しかしLandscape Technical Guide のリンクを紹介してそこで紹介されている設定から合っているのを選べば良い。と説明していました。

Landscapeにおいて特別な技法は紹介していませんでした。

山や谷を本物そっくりに作成する方法が紹介されるのかと期待したのですが、そういうのは無かったです。本物そっくりのLandscapeが作成したい時は、World machineやGaiaを使用して作成するそうです。「マテリアルデザイン入門」でもLandscapeはWorld machineを使用して作成したものをHeight mapにしてImportしたと書かれていました。

一寸だけ調べて見ます。

World machineで調べたら、以下のソフトが検索で出て来たのですが、

f:id:kazuhironagai77:20210328233233p:plain

似たような名前で、World Creatorと言うソフトもありました。

f:id:kazuhironagai77:20210328233256p:plain

World machineと言っているように聞こえるですが、ひょっとするとWorld Creatorと言っていたのかもしれませんね。

Gaiaも調べて見ます。

これの事かと思ったらこっちも

f:id:kazuhironagai77:20210328233316p:plain

Gaeaと言う似た名前のソフトがありました。

f:id:kazuhironagai77:20210328233336p:plain

LandscapeがUE4より簡単に作成出来かつ無料ならこっちのソフトの使用も考えてみます。

後で、検討しましょう。

Paintの設定の仕方は、先週勉強した「Landscape Essential Concepts」のPaintのやり方とほとんど同じでした。確認のために「マテリアルデザイン入門」も見ましたら、こっちでも同じやり方していました。

あんまりにもやり方が同じ過ぎて、ちょっと気持ち悪い位です。

5.5 Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4を勉強して:Foliage

特にないです。

5.6 Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4を勉強して:Blueprints

Tick関数を使用した時に、Delta secondで時間を調整していたのですが、私の作成中のゲーム、このやり方でやってなかったかもしれません。後で確認します。

初心者にはかなり難しい内容のような気がします。作れるんでしょうか?

5.7 Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4を勉強して:Creating a Photorealistic World

のっけから、超重要な情報がありました。

f:id:kazuhironagai77:20210328233412p:plain

UE4であるfolderをMove toした後、前のFolderが残っているので消去しようとすると出来なかったり、「これこれのfileが残っています。本当に消していいんでしょうか?」と聞かれたりします。その時はこのFix Up Redirectors in Folderを選択するそうです。すると前のFolderに残っているfileが無くなって安全に消せるようになるそうです。

試してみました。

Imported Assets フォルダーを作成してその中にGood Skyを移動させました。

f:id:kazuhironagai77:20210328233430p:plain

残ったGood Skyのフォルダーを消そうとすると、消せません。

Contentを選択して、Fix Up Redirectors in Folderを選択します。

すると残ったGood Skyのフォルダーが消せました。

Landscape内をスムーズに移動するためには、Camera Speedの値を最大にすると良いみたいです。

f:id:kazuhironagai77:20210328233448p:plain

流石に一時間以上の作成は見ていられなくて途中で飛ばしてしまいました。

5.8 Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4を勉強して:まとめ

ハッキリ言って直せる所と直せない箇所がある事が分かりました。

  • Textureは、Mega Scanを使用する。->出来るようになった。
  • Photorealistic なLandscapeは別なソフトで作成する必要がある。->今日は無理。

しかしTutorialの内容は理解したので次の「How to HIDE Texture REPETITION in Unreal Engine - UE4 Tutorial」を勉強してタイルのようなTextureを直そうと思います。

5.9 How to HIDE Texture REPETITION in Unreal Engine - UE4 Tutorialを勉強して

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

<質の高いTextureを使用する。Mega ScanのTextureを使用する>

Mega Scanを使用出来るようにしました。

<Macro variationのあるtextureを使用する>

GoldのmaterialにMacro variationがあるみたいに言っていたので、開いてみたらありました。

f:id:kazuhironagai77:20210328233607p:plain

ありましたが、これで距離によってTextureが変わるのでしょうか?

良く分かりません。

<Distance blendを使用する>

やり方は大体理解出来ました。「マテリアルデザイン入門」に書かれている方法と同じに見えますが、作成した後でそれも検討します。

<Materialを変化させる>

Palinノイズを使用して地面と草を分けたりしています。

6.Landscapeの直し

それでは先週作成したLandscapeを直していきます。

Foliageは邪魔なので外します。

f:id:kazuhironagai77:20210328233707p:plain

6.1 Landscapeの直し

UE4のLandscapeではphotorealisticな地形を作成するのは限界があるのは分かりましたが、だからと言って以下のようなlandscapeで良い訳はないです。

f:id:kazuhironagai77:20210328233731p:plain

出来るだけ自然な形になるように直していきます。

f:id:kazuhironagai77:20210328233820p:plain

6.2 Mega Scanから Dirt MaterialをImport

soil_dirt_pjExP0をMega ScanからImportしました。

f:id:kazuhironagai77:20210328233841p:plain

Material Functionに変更して

f:id:kazuhironagai77:20210328233901p:plain

M_Landscapeに使用してみます。

f:id:kazuhironagai77:20210328233920p:plain

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

f:id:kazuhironagai77:20210328233936p:plain

近づいて見ると、タイルタイルしています。

f:id:kazuhironagai77:20210328233957p:plain

6.3 Macro variationのあるtextureを使用する

M_Metal_Goldから丸々コピーしました。

f:id:kazuhironagai77:20210328234032p:plain

近くを見ると、Textureがタイルタイルしているのは変わりませんが、遠くが斑模様になってちょっとだけリアルに見えます。

f:id:kazuhironagai77:20210328234051p:plain

以下にMacro variationを外した状態を示します。一目瞭然です。

f:id:kazuhironagai77:20210328234107p:plain

6.4 Distance blendを使用する

Distance blendを作成する前に、Textureの大きさを変えたら本当にタイルタイルしている状態が消えるのか試してみました。

0.25を掛けています。Textureは4倍の大きさになっているはずです。

f:id:kazuhironagai77:20210328234129p:plain

それでもタイルタイルしています。

f:id:kazuhironagai77:20210328234154p:plain

このTextureは駄目なヤツかもしれません。

別なTextureに替えました。

f:id:kazuhironagai77:20210328234219p:plain

既にタイルタイルしていません。

一番タイルタイルしている距離でも以下に示したようにほとんど分かりません。

f:id:kazuhironagai77:20210328234245p:plain

ゲームを始めてもTextureがタイルタイルしている所はないです。

f:id:kazuhironagai77:20210328234305p:plain

一応勉強と言う事で、Dirtの方だけ実装してみました。

f:id:kazuhironagai77:20210328234345p:plain

TutorialではDistance_Blendのパラメーターは単なる数字ですが、

f:id:kazuhironagai77:20210328234409p:plain

以下の様になっています。想像しているよりもかなり複雑な関数のようです。

f:id:kazuhironagai77:20210328234428p:plain

結果の違いは良く分かりませんが、

f:id:kazuhironagai77:20210328234446p:plain

敢えて結果の違いが可視化されている箇所を探すと

f:id:kazuhironagai77:20210328234507p:plain

数メートル下がるとイメージが以下の様に変化します。

f:id:kazuhironagai77:20210328234527p:plain

正し、Textureが良いので、イメージが変化しなくてもタイルタイルはしません。

作り方は分かりました。

6.5 Materialを変化させる

これ実際に作成してしまうと、折角塗った個所が上書きされてしますので、コードだけ真似て見ました。

f:id:kazuhironagai77:20210328234558p:plain

この状態でUVをTexCordから直接とるのは間違っている気がしますが、今回は形だけの作成なので深くは検討しません。

残念ながら時間が無くなってしまったので今週はここまでです。

7.まとめと感想

今週は以下の事をやりました。

  • DocumentLandscape関連の所を読みました。WaterFoliage Toolです。
  • Fog Effect、そしてHierarchical Level of Detailは、直接は関係なかったので今回は読まなかったです。
  • 日本語の資料は「マテリアルデザイン入門」を少しだけ読みました。
  • UIWSの使用方法も勉強しました。
  • LandScapeの直しとして「How to HIDE Texture REPETITION in Unreal Engine - UE4 Tutorial」と「Unreal Engine 4 Beginner Tutorial - Create Worlds in UE4」を勉強しました。
  • そこで勉強した知識を活用して先週作成したLandscapeを改善しました。

来週は

  • Landscapeの直しの続き(Tutorialの2と3も勉強する)
  • Foliageの改善(Cull Distanceの使用)
  • 水の追加
  • Projectに使用する実際のLandscapeの作成

などを行いたいと思います。

今週はかなり疲れました。