UE4の勉強記録

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

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

f:id:kazuhironagai77:20210321230424p:plain

<前文>

引用とネタバレ。もしくは批評と著作権

引用の英訳はCitationだと思います。何で和英辞典には引用の英訳としてQuotationが紹介されているんでしょうか?Quotation って‘’の事でしょう。論文の書き方でも引用について説明する時はCitationって書いてあります。

しかし心配なので調べて見たら、英語のCitationとQuotationの定義も結構曖昧でした。その中で以下に示した3つの意見が多かったです。

  1. 同じ
  2. イデアを引用するのがCitation。文章をそのまま引用するのがQuotation
  3. ‘‘の中の引用した文章がQuotation。どこから引用したのか説明した部分がCitation

因みに、文章内で引用元を説明したのがCitationで、文章の下に引用元を詳しく解説したものがReference(参照)と言う説明もありました。

これ論文だったら、その論文を発表する雑誌の編集方針に従う訳で、別な雑誌が別な基準を示していたとしても、基準を明確に示してくれさえすれば問題ないです。

同じ事が著作権についても言えるわけで、国によって著作権の考え方が違っても明確に基準さえ示してくれれば問題ないはずです。

私は著作権について漠然と理解したのはアメリカに住んでいた時だったので、多分にアメリカ人の考える著作権的な考えが自分の中で正しい著作権として存在しています。そしてその考え方は日本でも通用するとずっと思っていました。

所が最近、アメリカ人の友人から「日本の著作権にはFair useの概念がない。」と言われかなりビックリし、本当かどうか調べました。その過程で日本の著作権に対する考え方を理解し更にアメリカの著作権と比較する事で、結構著作権の本質的な部分に気が付きました。

勿論それは、私の主観ですので、法律的に正しい訳ではないかもしれませんが、一遍の真実を含んでいると思いますのでここに書き記しておきます。

アメリカ人の考える著作権とは>

まず、アメリカ人の考える著作権について説明します。

最初に断っておきますが、あくまで一般的と言う注釈付きです。ので絶対アメリカ人全員がこの考え方を持っているとは断言はしません。ただしキリスト教徒かつ、大卒レベルのアメリカ人、大学でしっかり勉強したアメリカ人なら絶対共有しているイメージだとは、私は思っています。

宇宙は神様が作りました。そこから地球や海とか動物、そして最期に自分に似せて人を作りました。

では、人が作成したモノの所有権は誰にあるのでしょう。

はい。人が作成したモノの元は全て神様が作成したので…。

神様のモノです。

これは幾つかバリエーションがあって、人が作成したものはその人から神様が具現化したと考える人もいます。しかし結論は一緒で、全てのモノの所有権は神様に属します。

この全てのモノは神様のモノと言う考え方はまあ、日本人である私でも、納得出来るのですが、教会が全部持っててしまうとなると、全然納得出来ません。

それとはまったく別に、これ神様が作った物を元にしては作れないよね。というモノがあります。例えば、地球が丸い事を発見した事です。その当時の教会は「地球は平らである。」と主張してたので、教会=神様である限りは、神様は地球が丸い事を発見する事は出来ません。

じゃ誰が発見したんだとなると、人が発見した事になります。

ここでアメリカ人は、人は神様に似せて作られたので、神様しか出来ない新しいモノを作成する事は可能なのだ。とかなり宗教的な納得をしますが、当時の私もそんな理解をしました。(ただし、この人の中にアジア人が入っているかどうか、かなりの数の白人は、この場合の人の定義に、白人しかも一部の白人しか入れていない気がします。)

では、その人が作成したモノの所有権は誰に属するのでしょうか?

勿論、その作った人です。

その所有権はどこまであるのか?

神様が作った物は何処まで進んでも神様のものである様に、人の作った物も何処まで進んでもその人の物であるはずです。

それを法律として明確化したものが著作権です。

だから著作権は元々、神様の持つ権利と同等の強さを持つとんでもない権利なんです。

そしてこの地上でその神様の持つ権利を管理するのが教会であるように、人の作った物の権利を管理するのは大学なんですが、著作権に代表される人の権利を、旧約聖書に出て来る神様のように行使したら、研究が全く出来ない。なので権利はあるのだけども実行出来る部分に制限を付ける事にしました。その制限の基準がFair useな訳です。

そしてこのFair useの本当の意味は「常識の範囲で自由に運用してね。」と言う事です。

そしてこのFair useの中で非常に大きなウェイトを示すのが引用なんです。

だから日本ではFair useの概念がないと言うと「えっ」なるんです。

<日本の著作権への考え方>

自分で調べた限りの感想ですが、日本の著作権にFair useの概念がないというのは全くの誤解です。Fair useと言う曖昧な概念をそのまま導入すると、何はOKで、何が駄目なのか分からないので、具体的に著作権の例外事項を定めているだけです。その証拠に引用は著作権の例外として認められています。

明治時代に西洋の文明の本質を輸入し接ぎ木したのが日本の近代化なので、例え日本にキリスト教的な神様の所有物と言う概念が無くても日本の著作権は、暗黙的にですが、人の製作物に対して神の製作物と同等の権利を認めています。のでFair useの概念が本当になかったら実際の運用が全く出来ないです。

正直笑ってしまったのが「大学受験における入試問題に使用される文章は著作権の行使が出来ない。」と定めている文章でした。

アメリカと言うか、西洋的な考えに立つと、人の作った物の権利を管理するのは大学なので、大学こそが著作権をどの程度守るのかを決める訳です。法律はそれを文章化して、違反に対しての罰則を規定する事しかできません。上の文章はまさしくそれを体現しています。日本の話ですが。

これは日本における著作権の本質は、アメリカを代表とする西洋と全く変わらない事の証明でしょう。

はい。

私の結論としては日本の著作権の考え方、実行の仕方に他の西洋諸国との本質的な違いはない。と言う事です。

<引用とは何ですか?>

はい。ここで引用とは何ぞや。という事に対して私の考えを述べます。私の考えそのものはかなりアメリカの著作権の考え方に負っていますが、今までの議論から日本の著作権にもほぼそのまま当てはまると考えられます。

引用とは「○○さんはこう言っているけど。それって違うよね。」の○○さんの言っている内容が、引用に当たります。

ここで大切なのは、それって違うよねの後が、主体になっていないといけない事です。これから何故○○さんの言っている事が間違っているのか、そして何が正しいと考えるのかについて説明しなければ引用になりません。

所謂、転載やplagiarismは「○○さんの言っている事」の紹介が主体になり、自分の意見はありません。

<引用とネタバレ。もしくは批評と著作権

でも、それだと、自分の主張を言う為なら、ネタバレしても良いって事になりませんか?

もしくは勝手に引用されてボロクソに批判されても黙っていないといけないって事でしょうか?

との疑問が出て来ます。

それで最初のFair useの概念に戻る訳です。常識に基づいて判断してと。

自分が使用する側の時は、使用される側の立場に立って考えてねとか、今までの慣習ではどうなっているのか調べて見てね?とかそう言う事です。

 

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

<本文>

1.今週の予定

以下の事をやっていきます。

  • Level デザイン
  • Widget内のBPの整理
  • Effectの勉強と作成

2.Levelデザイン: Tutorialで勉強する

2.1 使えるTutorialを探す

Level Designの超基本はこれまでの勉強で理解しました。しかしもっと勉強すべき事はあります。色々なTutorial を見て参考になる優秀なものを見つけましょう。

判断の基準として以下の事を念頭に置いておきたいと思います。

  • 川のデザインが正しい。
  • 水のMaterialに最新のモノを使用しているか、使用しない場合は理由を明確に述べている。
  • Component EdgeSection Edgeそして Individual Quadの正しい解説をしている。

まず川のデザインですが、はるか昔に勉強したLevel designで川と言うのは、以下のイラストの様に上流が分岐していて下流に行く程、一本に成るらしいです。

f:id:kazuhironagai77:20210321230713p:plain

決して以下の絵のように上流が一本で下流に行く程、沢山の支流が現れる事はないそうです。

f:id:kazuhironagai77:20210321230728p:plain

所が、Level Designの初心者はかなりの確率で上流が一本で下流に行く程、沢山の支流が現れる川を作ってしまうらしいです。

まあ、ゲームなんで科学的に正しい地形をデザインしなければならない訳ではないですが、現実の地形に対してこの程度の注意も向けられない人が作ったtutorialは、大きな欠陥がある可能性が高いので使えるTutorialには該当しないでしょう。

次に水のMaterialですが、4.26 からはWater Simulationが付いていますし、それ以前のversionでは

f:id:kazuhironagai77:20210321230745p:plain

が使用出来るからです。

Unityではなく敢えてUE4を選択する人達の理由の一つが、その最新のグラフィックにあります。その利点が教えられないUE4のデザイン系のTutorialは価値がないです。

最後に、先週勉強したComponent Edge、Section Edgeそして Individual Quadの正しい解説がされていないTutorialも質が低いと思われるので避けます。

まず公式のOnline learningからは以下の教材を見てみようと思います。

f:id:kazuhironagai77:20210321230802p:plain

f:id:kazuhironagai77:20210321230811p:plain

f:id:kazuhironagai77:20210321230819p:plain

CourseとLearning Pathはどう違うんでしょうか?

調べたけど解説は見つからないですね。

YouTubeにはUE4のLevel DesignのTutorialをまとめた人がいました。

f:id:kazuhironagai77:20210321230840p:plain

この一番最初に紹介されているUE4: Good-Looking Randomization for Procedural Buildingsを作成したTech Art AidはMeshではなくInstanceを使用する事でLevel上のサイズをとても小さく出来る事を教えてくれた貴重なTutorialです。この選択は結構期待して良いかもしれません。ここに載っている Tutorialもチェックしてみましょう。

そう言えば、「マテリアルデザイン入門」にInstanceを使用する話が普通に解説されていて何かガックリした事を思い出しました。この本も今回、読み直しましょう。

Learningの一番左にLevel design Quick Startがあります。

f:id:kazuhironagai77:20210321230855p:plain

念のため調べて見たら、いつものヤツでした。

f:id:kazuhironagai77:20210321230912p:plain

流石にこのレベルのヤツは全部理解していると信じたい。今回はこいつはスキップします。

更に、UE4公式のDocumentationでは、

f:id:kazuhironagai77:20210321230930p:plain

Water、Foliage Tool、Fog Effect、そしてHierarchical Level of Detailのような私が見たいものズバリの内容がありました。

これらのTutorialはかなり良さそうです。

f:id:kazuhironagai77:20210321231137p:plain

全然関係ないですが、hierarchyの発音はカタカナで書くと「ハイ、ラ~キィ」で決して「ヒエラルキー」ではないです。

2.2 Tutorialの候補を絞る。

絶対やりたいのはDocumentのWater、Foliage Tool、Fog Effect、そしてHierarchical Level of Detailですが、なんせ文章なんでビデオで見るよりかなり面倒です。さらに読書は他の学習方法より効果が薄いらしいので最後に回します。同じ理由で「マテリアルデザイン入門」の読書も最後に回します。

となるとやっぱり最初にチェックするのは以下に示した公式のOnline learning の3つですかね。

f:id:kazuhironagai77:20210321231202p:plain

2.3 UE4公式のOnline Learning感想

2.3.1 World Building Kickstart

Sjoerd de Jong氏のTutorialでした。

彼のTutorialはLevel designに限らずどのTutorialも見て損はないです。前に彼が作ったMaterialのTutorialを見て大変勉強になったのを覚えています。

今回は全体像を把握するためにTutorialの半分位まで見ました。Level designに使用する機能を全部簡潔に説明しています。ただこれだけ見たのでは、実際に使用出来るまでには成れなさそうです。UE4には、こんな機能があるのかと言う情報源として使用するのが最適かもしれません。

後、彼もhierarchyを「ヒエラルキー」って発音していたんですが。前にインド人の先生でhierarchyを「ヒエラルキー」って発音する人が居て、hierarchyを「ヒエラルキー」って読むのは日本人だけじゃなかった。と思った事があったんですが。

ひょっとしてイギリス英語だとhierarchyを「ヒエラルキー」と発音するの?と調べたんですが、少なくとも私が調べた範囲では、イギリス英語でも「ハイ、ラ~キィ」と発音していました。

ドイツ語?と思ってそれも調べましたが、何か全然違う発音でした。

アメリカでcomputer scienceの勉強をしたら()、{}、そして[]の読み方を知らないって事はないので、アメリカ出身じゃない事だけは確かですが、彼、何処出身なんでしょうか?

2.3.2 Becoming an Environment Artist in Unreal

最初のイントロ部分だけ見たんですが、Landscapeの作り方についての解説は無いみたいです。

良く考えて見れば、Environmentの作成はLandscapeの作成だけじゃなくて、Lightingの設定やMaterialの作成もある訳でそっちが主体なのかもしれません。というかLevel designer = Environmental artist と勝手に思っていましたが違うのかもしれません。

そう言えば「Unreal Engine 4で極めるゲーム開発」にゲーム開発に関わる専門職の説明が載っていました。

見てみるとLevel designerはEnvironmental artistが作った建物なんかをLevel上に配置するのが仕事みたいです。つまり二つは別な職種みたいです。

このゲーム開発に関わる専門職ってあくまでも「Unreal Engine 4で極めるゲーム開発」における定義だと思っていたんですが、違うみたいですね。

ここでちょっとUE4の教育システムに対して苦言を言います。

この分類がUE4を使用したゲーム開発全般に通じる職種なのか、それとももっと大きくゲーム産業全体でこのような職種分けが行われているのか知りませんが、少なくともProgrammerである人がUE4の勉強をしたいと言ったら、この職種の中のEngineer になるための勉強をしたいと言う意味になるはずです。しかし私が今までUE4で見たProgrammer向けの教材のほとんどはBPの代わりにC++をScript languageとして使用するだけのもので、とてもこの職種で言うEngineerに当たる役割が果たせるように成れるとは思えません。

ゲーム産業全体でこのような職種分けが元々存在しているのなら、ゲーム産業内でEngineer としてやって行きたいprogrammer向けにこんな教育しか提供してこなかったUE4の教育システムはちょっと問題だと思います。

ゲーム制作ってProgrammerの分野でも花形ですのでGoogleAmazonでProgrammerやっているレベルの人でもちょっとゲーム作ってみたいと思う人はいっぱいいるはずです。そういう人たちがUE4のProgrammer向けの教材見て「俺ら向けの教材じゃないね。Unityでゲーム作ろう。」となっていたとしたら悲しいです。

今は、Online learningがあるのでProgrammer向けの教育も内容のレベルが上がっているのかもしれませんが、一寸文句を言わせて頂きました。

2.3.3 Constructing Believable Environment

これもEnvironmental artist用の教材ですね。ざっと目次を見ましたが、ほとんどLightingについての話です。Environmental artistは別名、Lighting artistとも呼ばれるらしいので、これはこれで納得です。

2.4 UE4公式のOnline LearningにあるLandscapeを勉強するための教材

がありました。こっちを勉強すべきでした。

f:id:kazuhironagai77:20210321231322p:plain

イントロ部分を見た所は、Landscapeの基本についての解説のようです。

軽くですが全部見てみます。

2.4.1 Accessing Project Files Using Marketplace Redemption Codes

Redeemして提供されているsampleからProjectを作成しようとしたら、見つかりません。

散々探しても見つからないのでlauncherの方からRedemption Codeを入力したら、あなたは既にこのprojectを持っています。と返答されました。

もう一回vaultを確認したらありました。

f:id:kazuhironagai77:20210321231357p:plain

ずっとTerrain‗ECで探していました。

2.4.2 Importing Terrain from a File

Landscapeの元をHeight map Fileから作成する方法が説明されています。

f:id:kazuhironagai77:20210321231419p:plain

これが知りたかった。

前にUEC++の勉強でPerlin Noise からLandscapeを作成ました。やり方は完全に忘れてしまいましたが、その過程でイメージをlandscapeとしてimport出来る事は何となく覚えていました。

このやり方が分かれば自作した地図からLandscapeが作成出来ます。

f:id:kazuhironagai77:20210321231435p:plain

あれ、提供されたProjectにはHeightmap用のPNGがないですね。

4.25だからかもと思って4.24で作り直しましたがやっぱりないです。

まあいいです。残りは自分で調べます。

2.4.3 Creating a New Terrain

Section のサイズ、Section / ComponentそしてComponentの数を決定しました。

f:id:kazuhironagai77:20210321231457p:plain

しましたが、これらのパラメーターが何を示しているのかについての説明が全くありません。

減点1ですね。

先週、まとめた内容をもう一度ここに記しておきます。

まず、Landscapeに置いて最初単位は1m^2です。固定されています。パラメーターをどう弄ってもこれは変わりません。

次の最小単位であるSection内にこの最小単位である1m^2の面が何個入るのかを決定するのがSection Sizeです。今回は63x63個入るようにします。入る1m^2の面の数が多くなればなるほどsectionのサイズが大きくなります。だからSection Sizeと名付けています。

次の単位はComponentです。基本的にSectionとComponentは1:1の関係ですが、一つのComponentに2x2、計4つのSectionを入れる事も出来ます。

最後にComponentの数ですが、今回は2x2で4つとしました。UE4はComponentの数は1024以下にする事を進めています。

63*2*2 = 254で1を引くとOverall Resolutionの253になります。

Componentは rendering, visibility calculation, そして collision を担当しています。

あれ?

一つのComponentが一つのHeight Map用のText を保持しているから一つのComponent内のSectionの数が増えると、計算は楽になる代わりに雑な作りになるはずでしたがrendering, visibility calculation, そして collisionもComponentで担当していると全部の計算が楽になりますね。

ちょっと確認してみます。

Landscape Technical Guideによると、Componentは、Componentは rendering, visibility calculation, collision の計算をして、更に一つのComponentが一つのHeight Map用のTextを保持しているそうです。つまり先週の説明は合っています。

Sectionは大前提としてLandscape LODの計算をするための最小単位だそうです。それでSection の数を増やす事で、Componentの数が減ればパフォーマンスは向上すると書かれていました。まあそうですね。rendering, visibility calculation, そして collisionも含めて全部の計算が楽になるわけですね。

2.4.4 Understanding Components

はい。ここでしっかりComponentについて説明されていました。

Componentがrendering, visibility calculation, collisionを担当する事、一つのComponentが一つのHeight Map用のTextを保持する事、Sectionを増やす事でComponentの数を減らしてその結果、Performanceが向上する事など全部説明されていました。

2.4.5 Managing our Landscape

LandscapeのManageのSection toolのSelection, Add, Delete, Move to LevelそしてChange Component Sizeについての解説です。

f:id:kazuhironagai77:20210321231535p:plain

Selectです。

Componentを選択します。

f:id:kazuhironagai77:20210321231551p:plain

Addです。

Componentを追加します。追加出来る箇所はComponentと隣り合っている箇所のみです。

f:id:kazuhironagai77:20210321231607p:plain

Deleteです。

選択したComponentを消去します。先程Addで作成したComponentを消去しました。

f:id:kazuhironagai77:20210321231622p:plain

Move to Levelです。

f:id:kazuhironagai77:20210321231651p:plain

と説明されています。動画でも同様の説明がありました。ありましたが、この意味が分かりません。

Change Component Sizeです。

Componentの設定を変更します。

f:id:kazuhironagai77:20210321231706p:plain

これって全部のComponentの設定を変えるのでしょうか?それとも一個だけ変える事も可能なんでしょうか?

こんな機能知らなかったです。

大変勉強になりました。

2.4.6 Quiz 1

満点でした。

流石にArtiest向けなのでクイズは簡単に作られています。

2.4.7 Brush Settings and Viewport Feedback

Sculpt Toolの使用方法についての解説でした。

f:id:kazuhironagai77:20210321231732p:plain

このcircleのサイズが

f:id:kazuhironagai77:20210321231748p:plain

以下の二つのParameterでコントロールされている事についての解説でした。

f:id:kazuhironagai77:20210321231801p:plain

流石にこれは知っています。

2.4.8 The Most Common Landscape Brushes

ここでは実際にブラシを使用してLandscapeの形を変形させました。

f:id:kazuhironagai77:20210321231822p:plain

Shiftを押すと逆になるのはすっかり忘れていました。

2.4.9 Using Advanced Forms of Sculpting

更なるツールの使い方の説明でした。

2.4.10 Utilizing the Region Tools

Selectionの使用方法についての説明でした。

f:id:kazuhironagai77:20210321231850p:plain

イラストを描くときに使用する選択のLandscape版ですね。

こういう機能はいっぺんに教わっても忘れてしまいます。使いながら覚えるのが一番良いですが、何せLandscapeの作成を趣味にする訳にもいかないので覚えるしかないですね。

2.4.11 Quiz 2

また満点でした。

テスト至上主義の弊害ですね。何もToolを使える様に成っていないのにテストだけ見ると理解したかのようになっています。

2.4.12 Understanding Material Layers

流石にもう飽きて来ました。

Landscapeがしょぼくて炎上したゲームでも紹介してこの機能を使えばそのLandscapeでもこんなに綺麗に仕上がります。みたいな紹介されないと正直、勉強する気になれないです。

数えたら後、10個もLectureがあります。

あー、きついです。

ここからのTutorialではLandscapeに色付けしていくようです。

更にInstructorがここでハッキリ忠告しています。「ここで習う程度の技術では、本物そっくりのLandscapeを作成する事は出来ないと。しかしそのために使用するToolの使い方を理解する事は出来ます。」と。

Material functionについての説明でした。

もう分かりました。

Landscapeを30個位、自分で制作しないとこれ以上の勉強は机上の空論に成ってしまいます。一端ここで区切りましょう。

2.4.13 ここまでのまとめ

まず、Landscapeに関して使えるTutorialを見つけると言う目的に対しての結論ですが、公式のOnline learning にある「World Building Kickstart」で十分と考えられます。

更にこのTutorialで基本を身に付けたら、公式のDocumentにあるWater、Foliage Tool、Fog Effect、そしてHierarchical Level of Detailを勉強すべきでしょう。その上でWater Simulationか、UIWSで水の製作の仕方を勉強すると良いと思います。

Landscapeの作成には地形を色付けする必要があり、その工程ではMaterialの作成が必要になります。「World Building Kickstart」ではQuiz 2 の後のLectureで解説しています。この部分を勉強する時は「マテリアルデザイン入門」も読み直しておくべきでしょう。

後、Environment artの勉強もする必要があります。これはLandscapeとは別の分野ですが、密接に関係しています。

2.5 兎に角Landscapeを作成

今まで学んだ事を使用してLandscapeを作ってみます。

出来ました。

f:id:kazuhironagai77:20210321231932p:plain

  • ManageのAdd やdeleteを使ってComponentを減らしたり増やしたりしました。
  • Selectionでマスクして一定の場所にだけFlatしたりしました。
  • Change Component sizeを使用してComponent のパラメーターを変更したりしました。
  • Erosion, hydro erosion, noiseも使用してみました。
  • Rampで坂を作りました。

ゲーム内の風景は以下の様に成っています。

f:id:kazuhironagai77:20210321231958p:plain

正直、これでも良いんじゃね。と言う気分です。

HeightmapとしてExportしてみました。

以下のボタンを右クリックでExport出来ます。

f:id:kazuhironagai77:20210321232011p:plain

正し、この単純な方法を見つけるのに結構時間かかりました。

何かUE4のdesignerの中には結構意地悪な回答して質問者を煙に巻いている人がいますね。

気を付けましょう!

Exportしたイメージはこんな感じです。

f:id:kazuhironagai77:20210321232027p:plain

白い方が高いみたいですね。

地面にあたる部分でも結構灰色ですね。

サイズは509x382 pixelでLandscapeのResolutionと同じでした。

f:id:kazuhironagai77:20210321232042p:plain

2.6 ゲーム内に作成する予定のLandscapeと同じサイズのLandscapeを作成

実際に作成する時と同じ条件でLandscapeを作成してみます。

f:id:kazuhironagai77:20210321232105p:plain

こんな状態です。

f:id:kazuhironagai77:20210321232119p:plain

この状態でHeightmapでExportしてみます。

Medi bangで開いて見るとまっさらのheightmapの色は128に成っていました。

f:id:kazuhironagai77:20210321232137p:plain

つまり、真ん中ですね。

そこに作成する島の絵を重ねます。

f:id:kazuhironagai77:20210321232153p:plain

以下の様になりました。

f:id:kazuhironagai77:20210321232209p:plain

試しにこれをheight mapとしてimportしてみます。

f:id:kazuhironagai77:20210321232232p:plain

一応出来ました。

微調整していたら川が無くなってしまいました。

f:id:kazuhironagai77:20210321232249p:plain

失敗です。

今度は以下の様に島と川だけのheight mapにしました。

これを加工します。

f:id:kazuhironagai77:20210321232303p:plain

これでも島とそれ以外の部分の差があり過ぎました。

f:id:kazuhironagai77:20210321232324p:plain

もう一回作り直します。

f:id:kazuhironagai77:20210321232342p:plain

今度は川の段差もほとんどありません。

f:id:kazuhironagai77:20210321232359p:plain

Landscapeの形状はこれでいいです。Level designerになる訳ではないのでこの位で十分です。

2.7 Tutorialの続き

先程のtutorialの続きをやります。残り10個なので頑張って終わらせます。

2.7.1 Painting Tools

凄い。下のscreen shotを見て下さい。 本物そっくりです。

f:id:kazuhironagai77:20210321232427p:plain

しかしどうしてコレが作成出来たのかが全く分かりません。

取りあえず手順を以下にまとめます。

最初にLandscapeを選択してLandscape Materialに付属のmaterial Landsape_Materialを選択します。

f:id:kazuhironagai77:20210321232454p:plain

するとLandscapeのPaintのTarget Layers内にGrassとRockが表示されます。

f:id:kazuhironagai77:20210321232514p:plain

f:id:kazuhironagai77:20210321232523p:plain

Grassの+を押すとWeight-Blend Layer(normal)とNon Weight-Blended Layerが表示されるのでWeight-Blend Layer(normal)を選択します。

f:id:kazuhironagai77:20210321232539p:plain

するとlandscapeがGrass一色になります。

次にRockの+を押して同様にWeight-Blend Layer(normal)を選択し、以下の設定に値を変えて

f:id:kazuhironagai77:20210321232557p:plain

ブラシでLandscapeをこすると、こすった所が、岩が草からむき出しになる絵が追加されます。

f:id:kazuhironagai77:20210321232613p:plain

うーん。良く分からん。

Landsape_Materialを開いたら以下の様に成っていました。

f:id:kazuhironagai77:20210321232628p:plain

成程、ここでMFunction_GrassとMFunction_Rocksがパスされている訳ですね。

2.7.2 Painting the Terrain

「2.7.1 Painting Tools」の続きです。それだけでした。

2.7.3 Foliage Edit Mode

Foliage の追加の仕方についての解説でした。

やり方を簡単にまとめるとFoliageを選択します。

f:id:kazuhironagai77:20210321232653p:plain

Add Foliage Typeに指定のmeshを追加します。

f:id:kazuhironagai77:20210321232709p:plain

現れたアイコンをクリックするとそのMeshの詳細が表示されます。

f:id:kazuhironagai77:20210321232727p:plain

これだけです。

この方法って実際のMeshじゃなくてInstanceを使用するんじゃなかったんでしたっけ。

うーん。良く分かりません。

2.7.4 Painting with Meshes

以下に示したFoilageのtoolの使用方法を説明しています。

まずPaintです。

f:id:kazuhironagai77:20210321232748p:plain

指定されたMeshをPaintします。

f:id:kazuhironagai77:20210321232805p:plain

Selectです。

f:id:kazuhironagai77:20210321232822p:plain

PaintされたMeshから一個だけ選択します。

f:id:kazuhironagai77:20210321232840p:plain

Lasso Selectです。

f:id:kazuhironagai77:20210321232855p:plain

円の中のMeshを全て選択します。

f:id:kazuhironagai77:20210321232914p:plain

Paint Bucketです。

f:id:kazuhironagai77:20210321232928p:plain

一括でLandscape全体にMeshを追加出来るとの説明でしたが、やり方が分かりません。

2.7.5 Using the Grass Tool

Material エディター内でGrass ノードをどのように使用するかについての説明と、そのGrass ノードを使う事によって自動で草のmeshを地形に追加する方法を説明します。

以下に草のメッシュを追加した後のscreen shotを示します。

f:id:kazuhironagai77:20210321232949p:plain

やり方を簡単に説明します。

FoliageからLandscape Grass Typeを選択します。

f:id:kazuhironagai77:20210321233005p:plain

Grass_2と名付けます。

f:id:kazuhironagai77:20210321233020p:plain

Grass Varietiesにgrassを追加します。

f:id:kazuhironagai77:20210321233035p:plain

以下の様にパラメーターを調節します。

f:id:kazuhironagai77:20210321233051p:plain

Landscape_Materialを開き

f:id:kazuhironagai77:20210321233105p:plain

LandscapeGrassOutputを追加します。

f:id:kazuhironagai77:20210321233120p:plain

f:id:kazuhironagai77:20210321233127p:plain

LandscapeGrassOutputのGrass Typesに先程作成したGrass_2 を追加します。

f:id:kazuhironagai77:20210321233148p:plain

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

f:id:kazuhironagai77:20210321233204p:plain

f:id:kazuhironagai77:20210321233210p:plain

LandscapeLayerSampleノードのパラメーターを以下の様にセットします。

f:id:kazuhironagai77:20210321233228p:plain

以下に示した様にLandscapeLayerSampleノードとLandscapeGrassOutputノードを繋げます。

f:id:kazuhironagai77:20210321233244p:plain

以上です。

このやり方は今まで見た事ないかもしれません。単に忘れているだけかもしれませんが。

2.7.5 Debugging Painted Layers

現在、2つのLayerを使用しています。

f:id:kazuhironagai77:20210321233307p:plain

しかし、どちらがどの程度Landscapeに使用されているのかを区別するのは大変難しいです。

これを以下の様に表示しる方法を説明しています。

f:id:kazuhironagai77:20210321233324p:plain

やり方は、LitからVisualizersを選択してそこからLayer Debugを選択します。

f:id:kazuhironagai77:20210321233341p:plain

ModesからLandscape、Paintを選択し

f:id:kazuhironagai77:20210321233410p:plain

Target LayersのLayersにあるそれぞれのMaterialのRやGにチェックを入れます。

f:id:kazuhironagai77:20210321233428p:plain

これで上記のようにlayer毎に色分けされたlandscapeを見る事が出来ます。

2.7.6 Landscape Size Guide

Landscape Technical Guideを絶対読んでおけよ。と言うかなり素晴らしいアドバイスでした。

2.7.7 Controlling Collisions

ActorとlandscapeのCollisionを正確にすればするだけMemoryの負担は増えます。

その調整をするのがLandscapeのDetailにあるCollision内のCollision Mip LevelとSimple Collision Mip Levelです。

f:id:kazuhironagai77:20210321233454p:plain

0に近い程、正確に計算します。そしてMemoryの消費も上がります。

2.7.8 Landscape Essential Concepts Next Steps

特に記録に残す内容はないです。

2.7.9 Quiz 3

2問も間違えてしまった。

Grass Toolが、BPを使用する方じゃない方だと思って即答して間違えたのが一つで、これはケアレスミスみたいなもんです。

Collision Mip Levelが何をコントロールしているのかの質問の解答ってLecture中に説明あったんでしょうか?

全く記憶に無かったです。

全然分からなかったです。

一応、全部のLectureを見終えました。

これでPaintのやり方もFoliageのやり方も大体分かりました。

達成感が凄いですが、全体を見ると全然進捗していませんね。

2.8 Paintしてみる

早速、教わったやり方でPaintしてみます。

MyPaint folderを作成して

f:id:kazuhironagai77:20210321233530p:plain

M_Ground_GrassとM_Rockをコピーしました。

f:id:kazuhironagai77:20210321233546p:plain

この二つをFunctionに変更するのですがやり方を忘れました。

調べます。

Material functionの作り方そのものを教えているサイトばかり引っかかって、MaterialをMaterial Functionに変更する方法を教えてるサイトは見つかりませんでした。

仕方ない。

Landscape essential concept内のMaterial Functionを開いてどう作っているのかを確認します。

Make Material Attributesノードを使用していました。

f:id:kazuhironagai77:20210321233602p:plain

これが知りたかった。

MF_Ground_Grassを作成しM_Ground_GrassのBPを丸コピーしてMake Material Attributesノードに繋げます。

f:id:kazuhironagai77:20210321233618p:plain

MF_Rockも同様にします。

f:id:kazuhironagai77:20210321233633p:plain

次にMaterial、landscapeを作成します。

早速、問題にぶち当たりました。二つのMaterial functionをblendしよう、Layer Blendを探したら沢山の種類がありどれを選べばよいのか分かりません。

f:id:kazuhironagai77:20210321233650p:plain

調べたら、Layer Blend ノードの正式名称はLandscape Layer Blend ノードでした。

ふう。一安心と思ったらInputがないです。

f:id:kazuhironagai77:20210321233705p:plain

終わった。

このノードも違うのか。と思ったらLayersに追加する事でInputを作成出来るみたいです。

f:id:kazuhironagai77:20210321233720p:plain

f:id:kazuhironagai77:20210321233726p:plain

開いて見ると、色々なパラメーターを指定しないといけないみたいですね。

f:id:kazuhironagai77:20210321233746p:plain

これらのパラメーターの正しい値は何となく想像も付きますが、一応Landscape essential conceptで確認してみましょう。

f:id:kazuhironagai77:20210321233805p:plain

Layerの名前は何でも良いのでinputに接続するMaterial Functionと同じ様な名前にすると思われます。やっぱりGrassやRockを指定していました。

BlendTypeはLectureでTarget LayerでこのLayerを指定する時にWeight Blendを選択していたので、

f:id:kazuhironagai77:20210321233822p:plain

勝手にWeight Blendである可能性が高いと思っていましたらやっぱりその通りでした。

Preview Weightは、LectureでこのMaterialをLayerとして使用したら全部GrassだったのでGrassが1でRockが0に何処かで指定しているはずと思っていました。それがここだった訳です。

Landscape essential conceptで使用された値と全く同じにします。

f:id:kazuhironagai77:20210321233839p:plain

Landscape essential conceptではAmbient Occlusion は接続していないんですが、MF_Rockでは使用しているんですが。

分からないですが一応繋げておきます。

f:id:kazuhironagai77:20210321233902p:plain

やっとM_Landscapeが完成しました。

「2.7.1 Painting Tools」の解説の通りですが、Landscapeを選択してLandscape MaterialにM_Landscapeを指定します。

f:id:kazuhironagai77:20210321233918p:plain

するとTarget LayerにGrassとRockが現れるので

f:id:kazuhironagai77:20210321233937p:plain

Grassの+を押してWeight…を選択します。

するとLandscapeが緑一色になりました。

f:id:kazuhironagai77:20210321233952p:plain

今度は、Rockの+を押して同様にセットします。

ブラシの設定は適当にして、岩をpaintしてみます。

出来ていますが、これじゃ駄目ですね。

f:id:kazuhironagai77:20210321234009p:plain

拡大してみると分かりますが、Rockに使用しているMaterialがちょっと想像と違っていました。

f:id:kazuhironagai77:20210321234032p:plain

色を変えて、かなり弱めにPaintしてみましたがTextureのパターンが目立って違和感が凄いです。

f:id:kazuhironagai77:20210321234053p:plain

Lectureで習った事は出来るようになったのは確かなので、この問題は来週、検討します。

2.9 Grass Toolを使用してみる。

最後にGrass Toolを使って草を生やしてみましょう。Quiz 3でも間違えてしまった所なので慎重にやっていきます。

手順は「2.7.5 Using the Grass Tool」に書かれている通りなのでParameterのみ記していきます。

f:id:kazuhironagai77:20210321234115p:plain

草のStatic meshはいっぱいあったので適当に一個選びました。

M_Landscapeに以下のコードを追加しました。

f:id:kazuhironagai77:20210321234133p:plain

想像してたのより10倍位やばい状態になっています。

f:id:kazuhironagai77:20210321234155p:plain

草の種類を変えます。

更にGrass Densityも思いっきり下げました。

f:id:kazuhironagai77:20210321234213p:plain

結果です。

f:id:kazuhironagai77:20210321234233p:plain

f:id:kazuhironagai77:20210321234242p:plain

PCが凄い音だして計算してました。

一応、自分でも使える事は確認出来きました。

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

3.Widget内のBPの整理

来週にまわします。

4.Effectの勉強と作成

来週にまわします。

5.まとめと感想

今週はLevel design、WidgetのBPの整理、そしてEffectの勉強をやる予定でしたが、Level designの復習で終わってしまいました。

Level designはまず優れたTutorialを探す事から始めました。公式のOnline learningにある

f:id:kazuhironagai77:20210321234321p:plain

はかなり良いTutorialと思います。

後、Landscapeを作成するLevel designerとEnvironmental artistは違う職種のようです。Environmental artistはLevel designerが配置する個々の部品を作成する人で、Lightingの専門家みたいです。

Landscape Essential Conceptsで勉強して、Landscapeの作成方法、Paintの使用方法、Grass toolを使用したFoliageの作成方法などは一応出来るようになりました。

来週の予定は、

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

f:id:kazuhironagai77:20210321234350p:plain

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

以上です。

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