UE4の勉強記録

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

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

<前文>

<何故か日本で報道されないアメリカの中絶問題>

今、アメリカと言うか英語圏、つまり世界中で最も深刻な話題と言えば、アメリカの日本で言う最高裁判所に当たるSCOTUSが、あらゆる中絶を違憲と見なす判決を下す。と言う情報がLeakされた事件です。

このNews世界中で騒がれていますが、何故か日本では全く聞きません。

そこで、私はこのアメリカの中絶問題、何でそんなに騒がれているのか?なにが問題なのか?などについてここでまとめてみました。

あらゆる中絶を違法と見なす事が、何でそんなに騒がれているのかについてですが、中絶が殺人になります。

罰金とか、違法だけど罰則なしとかじゃなくて殺人罪になります。

更に、あらゆる中絶が対象になるので、レイプされた場合でも中絶出来ません。日本や韓国などの東アジア文化圏ではわりかし聞く経済的な理由で中絶する事など論外です。

妊婦の命に危険がある場合は例外になると言う話も聞いたんですが本当かどうか分かりません。

たしか今年の始めくらいに、テキサス州の妊婦が命に危険があるので特別に中絶を認めてほしいという上告がSCOTUSに却下されたと言うNewsを聞いた事があるので、妊婦の命に危険がある場合も中絶は実際は駄目になると思います。

つまり、アメリカに住んでいたら、例えレイプされた場合でも(そして恐らく妊婦に命の危険がある場合も)妊娠したら、子供産まないと殺人罪になるって事なんです。

レイプされた女性がその時に妊娠した子を産まなくちゃいけないって、そんなの精神崩壊間違いなしでしょう。とかは議題にすら上がっていません。

なんでこのNewsがそんなに騒がれているのか理解出来たと思います。特に女性は。

次に英語圏のメディアが述べているこの事件の何が問題なのかについてまとめます。

まず、ほとんど全てのメディアが述べた点ですが、今回、あらゆる中絶が違憲であると判断したSCOTUS のjusticesの内の4人が、任命される前の議会の聴聞会だか宣誓時に、今までSCOTUSで判断された内容を覆す事は絶対にしないと、宣言しているんです。

SCOTUSは1973年の Roe v. Wadeの判決によって中絶の権利を認めているんです。だからSCOTUS のjusticesの内の4人が中絶が違憲であると言う判決を下したってのは、彼らは聴聞会だか宣誓時に嘘ついていたって事になるんです。

これがメディアが報じた一個目の問題点です。

これが問題だって事は私でも分かります。

SCOTUS のjusticesが嘘ついていたら、誰が裁判の時に本当の事を言う必要があります?誰も宣誓なんか守らなくなります。

2個目の問題点として良く言われているのが、SCOTUSが自分達の解釈を今までの判例を無視して行った事に対してです。今までのJudgesはこれまで下された判例は守っていましたが、この件に関しては過去の判例を全く無視しました。

私、この論点、最初良く理解出来なくて、一個目の問題点とどう違うのか良く分からなかったんですが、一個目はJudgesのモラルについての問題点だったのに対して、これはSCOTUSのこれからの判決はこれまでの判例を全く無視して行うと言う宣言だったんです。

これって法律の専門家でない私は良く知らなかったんですが、今まで合法だったものが一瞬で違法に出来るって意味だったんです。

例えば、ゲイのカップルが結婚して何年も暮らしていたとします。ある日、SCOTUSがゲイの結婚は違憲と判決を下したとします。

するとそのゲイの夫婦はその場で逮捕されたりする訳です。

そういう解説をされるとこの点も問題だと理解出来ました。

3番目の問題点として私が選んだのはこの点です。個人的には物凄くしっくりしました。

ある調査によると右左関係なくアメリカ人であらゆる中絶に反対しているのは20%だけだそうです。で、50%の人はレイプされた場合とか妊婦に生命の危険がある場合は中絶しても良いと考えているらしいです。しかしそういう調査結果が出ているにも関わらず、あらゆる中絶が禁止さるようになった事です。つまりこの件に関してMajorityの意見が無視され、一部の人の意見だけが実行されるようになりました。この一部の人達の意見が特定の宗教団体や特定の宗教の教えに基づいている場合、この政治体系を民主主義(Democracy)に対して神権政治(theocracy)と呼ぶそうです。

つまり、アメリカは実態としては既に民主主義ではなく神権政治に移行してると考えられるようになったと言う事です。

これはかなり考えさせられる意見でした。

こんな感じで結構、世界で大きな問題になっているアメリカの中絶問題について今週はまとめました。

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

<本文>

1.今週の予定

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

  • Niagara: CGHOW氏のTutorialをやる
  • Materialの勉強
  • RPGStoryの改善
  • Map1Bugの直し
  • Open Worldの検証
  • Gaeaの勉強
  • 雪山のMapの作成
  • Game DesignポケモンHxHの念能力( 戦闘システムの作成)
  • Blenderの勉強

後2つやりたい事があります。

一つ目は、最近日本語のUEのTutorialをたまに見るのですが中々質の高いTutorialがある事に気が付きました。といっても軽く見るだけで、実際に実装する所までやったわけではないので、実際に試してみたら感想が変わるかもしれません。ので一個か二個試してみたいです。

もう一つは、最近Epic GameのLauncherの表示が変更されてLearningのPageが無くなってしまいました。

Epic Game社の中でUEのLearningに対する取り扱いがどうなっているのか調査したいです。

2.Niagara: CGHOW氏のTutorialをやる

もう今週は、先週解けなかったYin Yang FX in UE5 Niagara Tutorial [1]の回転の問題をやるだけです。

2.1 先週の勉強の整理

先週、あんまりGifをBlogに載せると一カ月に使用出来るDataの範囲を超えてしまうかもと心配してほとんどScreenshotにしたら太極図の回転状態が良く分からない記録になってしまいました。

簡単に説明し直すと、先々週Yin Yang FX in UE5 Niagara Tutorial [1]を見ながら作成した太極図は以下のように原点を外れると、太極図そのものが原点を中心として回転し始めます。

この原因を探ろうと色々やったのですが、結局分からなかったです。

まあ、まだNiagaraを完全に理解する実力が足りなかったって事でしょうがないです。

とあきらめようとしたら、Tutorialの逆の順番で作成した太極図が原点からずれても、太極図を中心にして回転していました。

もう一つ

Playを押すと太極図の回転が止まってしまいました。

この原因も追究します。

2.2 Play画面で回転しない原因を調べる

Particle Update SectionのRot Module の

回転の値を上げると

普通にPlay画面でも太極図は回転しました。

Play画面は大きいのでGifでAnimationを撮影するとまたDataが大きくなってしまうのでScreenshotだけ取りました。

2.3 原点からずらしても太極図の回転が太極図を中心にして行うようにする

とうとう原因を見つけました。

先週、逆な順番に作成した太極図は、Particle Update SectionのRot(scratch Module)の

実装でParticle Positionの値をMultiply Vector with Quaternion Moduleに接続する時に、

上記のPosition ->Vector Moduleを使用しています。

所が先々週作成した、太極図では

が使用されていました。

このModuleをPosition ->Vector Moduleに変更すると

原点を外れても太極図を中心として回転するようになりました。

Position to Vector ノードの実装を見てみると以下の様になっていました。

単にPositionの値をVectorにパスしているだけじゃなくて色々やっています。

全部の実装を理解する事は出来ませんが、Engine.Owner.SystemLocalToWorld ノードとPositionノードを使用している所を見るとここでWorld Spaceに変換していそうです。その後でStatic Switch ノードがあるのでどこかでLocal Spaceにするかworld Space

にするかの設定が出来るのかも知れません。

そのStatic Switch ノードにはEmitter Local Spaceと書かれていますが、Parametersを見ると確かにEmitter Local SpaceというBool型のAttributeがありました。

Position to Vector ノードの実際の実装がどうなっているのかはともかく、Position to Vector ノードとPosition ->Vectorノードが全く違う機能である事は確認出来ました。

因みにTutorialの方ではPosition to Vector ノードが使用されていました。

うーん。

当初の目的は解決出来たのでYin Yang FX in UE5 Niagara Tutorial [1]の検証はここまでとします。

3.日本語のTutorialをやってみる

最近、日本語のUEのTutorialがYouTubeのお勧めに表示されるようになりました。試しに見たらかなり内容がしっかりして驚きました。

ので実際にそのTutorialで勉強してみる事にします。

ただし、今まで日本語の資料やtutorialを避けていたのは理由があります。それは引用(Citation)しているのに許可を取れとか無茶苦茶な事を言ってる輩が日本人の中には結構いる事です。

その辺で問題になりそうになった場合は消します。

今回、勉強するのは以下の2つのUE5のTutorialのChannelです。

https://www.youtube.com/channel/UCJmujNFxZjHU_Rr-k75Tn1w

https://www.youtube.com/channel/UCmg2dfHA5y4eBUw4DNd3tDg/featured

この2つのTutorialは段違いで質が高かったからです。更にこれらの作者はUEにかなり詳しい印象も受けました。

他にも凄い日本語のUEのTutorialがあるかもしれませんが、今回は私の目に留まったこの2つを勉強してみる事にします。

3.1【UE5ゲーム制作】Control Rigを使用して、坂道などの傾斜のある地面でも、足の向きを傾斜に沿わせる方法を解説します【逆引きUE[2]を勉強する

あんまり長いTutorialをやる時間もないですので、UE5のTutorialの中で一番短いのをと思ったらそれがあんまり面白そうじゃないので2番目に短いTutorialであるこれを選びました。

<軽く見る>

前に一回見たんですが、実際に自分で実装する気はなかったので、何を言っていたのか全く覚えていません。もう一回軽く見てどうやって勉強するかの検討をつけます。

途中まで見ましたが、普通にTutorialの指示通りにやれば出来そうなのでそのままやってみます。

<実装してみる>

まず確認ですが、Play画面でThird Personを坂道に立たせてみます。

確かに足が浮いています。

Control Rigの書き換えですが

ABP_Mannyから行っています。

でもPlay画面で動いてるのはQuinnの方です。大丈夫なんでしょうか?

このControl Rig ノードですが、どんな機能なのか全く知りません。知らなくても理解出来るんでしょうか?一寸不安になって来ました。

CR_Mannequin_BasicFootIKをDuplicateしたClassを開き

FootTraceノードの実装を書き換えるそうです。

これって書き換えたら、別なClassで問題とか起きないんでしょうか?

一寸不安になっていたら、この関数ノードはこのクラス内で作成されたものでした。

それなら書き換えても大丈夫ですね。

Tutorialの教え通りに書き換えます。

ここでAim Mathノードの機能とか、FootTraceの実装について色々調べた内容を記録していたんですが、突然Wordが応答不能になって書いた記録が消えてしまいました。

大体思い出しながら書き直すとFootTraceの実装は以下の図の赤線の部分をTranceしている事まで理解出来ました。

そして、このTutorialを前に見た時にこのTranceが何をしているか確か解説していた事を思い出しました。

しかしその場所が見つからないので色々調べたら、別のTutorialでした。

そのTutorialは【UE5ゲーム制作】標準で実装されているControl RigによるFoot IKを解説します [3]でした。

こっちを先に勉強すべきでした。

突然ですが【UE5ゲーム制作】標準で実装されているControl RigによるFoot IKを解説します [3]の勉強に切り替えます。

3.2 UE5ゲーム制作】標準で実装されているControl RigによるFoot IKを解説します [3]の勉強をする

前にこの方の動画を見た時、非常に分かり易くて、日本にもこういうUEのTutorialを作る人が現れたと驚いたんですが「【UE5ゲーム制作】Control Rigを使用して、坂道などの傾斜のある地面でも、足の向きを傾斜に沿わせる方法を解説します【逆引きUE】[2]」はあんまり分かり易く無くて心の中で「あれっ?」と思っていました。

そしたらそのTutorialは「【UE5ゲーム制作】標準で実装されているControl RigによるFoot IKを解説します [3]」の続編だったみたいです。

それなら分かりにくくても当然です。

いきなりFoot IKについてバシッと解説していて笑った。このBlogでは消えてしまいましたが、Foot IKが何なのか結構調べてました。

Foot Tranceノードに指定されているIK_foot_LがIk Foot Boneに指定されている事は理解出来ましたが、

これが何が目的なのか全く分からなかったです。

このTutorialによると、以下のような段差のある場所で立った時でも両足がつくようにするためのものだそうです。

分かり易い!

最初からこっちで勉強すれば良かった。

Tutorialの言っている内容を確認する時にCaptionで確認するのが習慣の私は、今回のTutorialでもCaptionを押して確認したんですが、

Foot IK系が、出会い系って表示されていました。

このクラスのTutorialだと日本語が母語じゃない人も見に来ると思われますが、Captionがこんな滅茶苦茶だと、外国人にはかなり理解が難しくなりますね。

聞くより読む方が簡単なのはどの外国語も同じです。また全く日本語読めなくてもCaptionを表示して全部CopyしてDeep Lに突っ込むと言う手もあります。

しかし読み手やDeep Lがどんなに優秀でも出会い系をFoot IK系に訳す事は出来ないでしょう。

うーん。

この辺はGoogleの音声文字起こし機能が向上するのを期待しましょう。

こっちはABP_Mannyの実装から解説しています。

開くとこうなっていました。

これはUE4でいう所のAnim Classだ。

実際調べて見たらThird Person BPのMeshには

ABP_Mannyではないですがその隣のABP_Quinnがセットされていました。

でも何でAnim ClassにControl Rigノードがあるんでしょう?

うーん。

前のTutorialを見直したら、しっかりAnim ClassであるABP_MannyからControl Rigノードを開いていました。

この辺は全く勉強した事ないので、勉強しても内容が心に引っかかってこないで直ぐに忘れてしまいます。

気にしないで先に行きます。

Foot Traceノードの解説をしています。

分かり易い。このBlogでは消えてしまったんですが、先程、30分位掛けて自分でNodeやBoneを追いかけて理解してました。

この説明聞いたら一発で理解出来ました。

一個だけ気になったのはTranceのEndの位置です。Tutorialの説明を聞いているとStart から50cm下がった位置と言っているように感じますが、実際はRootから50cm下がった位置ですよね。

Play画面でAuto Compileに一番下の選択肢を選ぶと

以下の様にTranceするStart 地点とEnd地点が表示されるそうです。

早速試してみます。

結果です。

表示されているけど何か違う。なんで俺のは男なの?

まあいいです。先へ行きます。

そして以下の二つの変数の値の解説です。

これです。

完璧に理解しました。

この部分の解説、滅茶苦茶、分かり易いです。

以下の様な段差で両足を着くために、足裏のIKからTraceしていたなんで驚きです。

<Step2

Tutorialの解説を聞く前に一寸だけ自分で考えてみます。

Interpolateしてるんですが何をInterpolateするんでしょう?

しかも結果をClampしてます。Get Z Offset Targetの値が例えば30だったとして、それをそのままClampしたら1ですが、それはオカシイでしょう。

分かりません。

Tutorialの解説を聞きます。

分かりました。

いきなりTargetの値にしたらCharacterの足がワープして地面についてしまう訳です。なので足の位置を順々に動かして最後にTargetに定めた位置に到達するようにしているんです。

そして1 Frameか指定された秒かは分かりませんが、一回に動く値は±15な訳です。

でもClampは何に使用されているか分かりませんね。

うーん。でもこんだけ理解出来たら十分です。

<Step3

これも自分で考えてみます。

これはZ Offsetの小さい値をSet Z Offset Pelvis変数にセットしているだけですね。

Over extensionが何なのか分かりませんね。

Tutorialの解説も分かり易く解説されていましたが、解説している内容は上記の私の解釈とほぼ同じ事を言っていました。

<Step4

Step4はModify Transformを使用して指定されているBoneの位置をそれぞれの変数が指定した値だけ移動させています。

最後のPelvisですが、本当にPelvisがセットされていました。

Pelvisって以下の場所です。

ここと足の一番低い場所と同じだと尻もち着いた状態になる気がします。

良く分からないです。

Tutorialの解説を聞いてみます。

分かりました。

Set Z Offset Pelvis変数はPelvisが下げる距離をセットしているんでした。だから最終地点は足とは違う訳です。

<Step5

これは先にTutorialの説明を見てしまいました。

一応、Tutorialの説明で納得しましたが、IK Foot LとFoot Lって同じだと思っていたのでその辺が良く分からないです。

これはUEのAnimationをまだ勉強してないからで、Animationを勉強した後で考える事にします。

3.3 UE5ゲーム制作】標準で実装されているControl RigによるFoot IKを解説します [3]を勉強した感想

中々、勉強になりました。

特にStep 2とStep 4の実装部の機能はこのTutorialの説明が無かったら自分だけでは理解出来なかったです。

説明も分かり易くて、複雑な内容を簡単にしかし正確に説明しているのは驚嘆です。

後、Lerpの発音がしっかりラァープになっていてレープとかリープとか言っていなかったです。結構、英語が堪能な印象を受けました。

英語圏のTutorialと比較してもこれ位しっかりしたTutorialを作成している人は限られている気がします。

Epic MegaGrantsについてはあんまり詳しくないのですが、Tutorialの作成も対象だった気がします。このLevelのTutorialを作成しているのならEpic MegaGrantsを受け取るんじゃないの思いました。勿論、審査が公平に行われたらと言う条件付きですが。

3.4 [UE4 Craft Game Develop VTuber]Kurie Meiku氏のどれかのTutorialを勉強する

もう予定の時間を大幅に過ぎてしまったので、[UE4 Craft Game Develop VTuber]Kurie Meiku氏のTutorialは来週やろうかと思ったんですが、Tutorialにどうしても見たい内容があります。

一つ目がこれです。

日本語の内積にあたる英語はDot Productなんです。でも英和辞典をみるとInner Productになっています。そして英文のInner Productを見ると、Dot ProductとInner Productは違うと解説されているんです。

これ厳密な定義を調べてノイローゼになりました。日本の物理学者もしくは数学者でこの問題を正直にかつ正しく定義している人がいないんです。そんな適当な事しているのかと最後、ブチ切れて終ったのを覚えています。

もう一つどうしても見たいのがこれです。

このやり方全く知りません。

と言うかこの人のTutorial全部、面白そうです。

もう時間が無いので、今週は【UE4/UE5ゲーム制作講座】超基礎編・これを見れば内積(Dot Product)がわかる!(半分) [4]だけ見る事にします。

3.5 UE4/UE5ゲーム制作講座】超基礎編・これを見れば内積(Dot Product)がわかる!(半分) [4]を勉強する

まず内積をDot Productと訳していますね。ここは絶対に深堀しません。

内積の定義と解説の部分を見ました。

完全に理系の人ですね。理系の人の説明って感じでした。

2021-10-03のBlogにまとめてありますが、Dot Productの解説はBen Cloward先生のDot Product Node - Shader Graph Basics - Episode 7 [5]の光源と白板の説明の方が直観的に理解出来て、理系でない人にも分かり易いと個人的には思っています。

うーん。

内積の実装をしています。

説明が一々正確です。

Radianの定義なんて完全に忘れていました。360 Degrees/2 paiが1radianって事なのか。この定義は覚えやすいです。

こういうのパッと説明出来るところが凄いですね。

アメリカの大学にいた時に理系の人の優秀さはその人が円周率をどれだけ覚えているかと比例するという伝説があって、Stock Optionで憶単位の金を稼いだ同級生は円周率を百桁覚えていました。

因みに私は何度やっても3.14までしか覚えられません。

この人、何者?

というかCaptionが全然、日本語拾えないので折角Screenshot取っても円周率を一気に何十桁も読み上げてるシーンだって分からないです。

東〇生なの?

Dot Productが0の所で0になりません。

面白すぎる。

横から見たら重なってなかったです。

あ。

今まで角度の計算が、理論と合わない事が何度も有ったんですが、これでした。すっかり3Dである事忘れていました。

後、内積の計算だと(Cosの計算?)だと判明しない点があるとか、

壁走りに使用出来る

みたいな紹介がありました。

これで内積のTutorialは半分だけ終わりだそうです。

3.6 UE4/UE5ゲーム制作講座】超基礎編・これを見れば内積(Dot Product)がわかる!(半分) [4]を勉強してみて

やっぱりこの人も非凡な才能を持っています。

Dot Productなんて今更、勉強する事ないだろうと思っていたら結構知らない事がありました。

数学はかなり得意だったんですが、この人の数学力は次元が違いそうな気がします。なんてゆうか普通の数学が得意な人が100位の数学戦闘力を持ってるとすると5000位持ってそうな感じです。

でも英語は苦手そうです。

Toleranceの読み方を知らないみたいでしたし。

後、UEのEditorを日本語設定で使用してる人初めて見ました。

とは言ってもVtuberとか作成して面白く教えようとしているのは、視聴者の事を考えていてとても素晴らしいと思います。

実際、見ていてとても楽しかったですし、全然ストレスなく最後まで勉強出来ました。

4.Materialの勉強

今週は、Materialの勉強は軽くしておきます。

4.1 Outlineについて

日本語のTutorialと公式のTutorialはほとんど見ない私ですが、これだけは凄かったので記録に残しておきます。Unreal Engineでイケてるイラストを描くためのノウハウ大放出! | UE4 Manga Anime Illustration Dive Online [6] です。

この中でPPLineDrawing(線画フィルター)が紹介されていましたが、

Outlineの極致だと思いました。

今週は、これ以上勉強する時間はないですが、先週のOutlineの問題点である

もこれを使用したら解決するかもしれません。

忘れないようにここにメモしておきます。

4.2 Toon Shader & Custom Shadow - UE4 Postprocess Tutorial [7]の続き

今週もToon Shader & Custom Shadow - UE4 Postprocess Tutorial [7]の実装をやっていきます。

<Landscape のMaterial

Landscapeはまだ作成していませんがLandscape用のMaterialを先に作成します。

Tutorialから分かる範囲で再現しました。

何点か分からない所があります。

まずLandscape用のMaterialにも拘わらず、TexCoord[0]ノードを使用しています。

解説によると以下の部分はMacro Variationを作成するための実装であると言っています。

でも実際のLandscapeを見るとMacro Variation観察出来ない、

うーん。

僅かにあるかも。

後、使用しているTextureがどんなのが必要なのか不明です。

まあ、Landscape用のMaterialは後で改良するので今はこんな感じでも良いです。

Landscapeを作成してこのMaterialを追加してどんな感じになるか確認します。

以下の条件で作成します。

あ。そうだLayerを使ってみましょう。

LandscapeにLayerが使用出来る事、先週初めて知りました。

ので試してみます。

公式のDocumentであるLandscape Edit Layers [8]にLayerの使用方法が載っていました。

このサイトによればLandscapeを作成する時に以下のEnable Edit LayerにCheckを入れればLandscapeでLayerが使用出来るそうです。

え。

もうLandscape作っちゃったよ。

仕方ない一回消して作り直します。

以下の方法で新しいLayerを追加出来るそうです。

こんな感じに作成しました。

Layerは2層にしました。

LayerのLandscapeです。

デコボコ地面を作成しました。

Layer1のLandscapeです。

山を作成しました。

山を別なLayerで作成したのはScript初心者にありがちな絵の下手な人が描く山(以下の図にある山のような形状)を

Layerを使用するとどれだけ本物らしく出来るのか見るためにです。

結果です。

うーん。

何とも言えない。

少しはマシな気もしますが、World MachineやGaeaでLandscapeの勉強をしたので、単に私のLandscape作成LevelがUpしただけかもしれません。

Post Processを追加します。

線が太すぎます。

微調整が必要です。

以下の様になりました。

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

一応、色は砂漠風の色にしました。

結果です。

色々、感想を言う前にMacro Variationが効いていません。

良く見ると僅かに効いていますね。

もう少し強くしましょう。

0.9から0.5に変更しました。

結果です。

LandscapeがTileを貼ったように見えるのを避ける為に使用されているMacro VariationのNoiseがTileを貼ったよう繰り返されています。

でも地面を歩いている時は全然、Tileの感じが出ません。取りあえずはこれで行きます。

やっぱり奥のOutlineが気になります。

もう一回Tutorialを見て奥のOutlineの直し方を確認します。

何と、Multの値を調節して奥にある大量のOutlineを消していました。

うーん。なんでMultで消えるの?

これは後で検証します。

結果です。

かなり良くなりましたね。

この辺とかかなりカクカクしています。

Landscapeの設定で、

100倍に設定しているのでHeight Mapの一Pixelが1mになります。

そのせいでこんなカクカクが生じているのか?

それともLandscapeの作成で使用したErosionの設定に改善の余地があるのか?

それともScalingのZの高さとHeight Mapの高さにずれがあるのか?

X,Yは505cm*100=505mだかz軸は256cm*100=256mだと、そんなにオカシクない気もします。

Foliageもついでに作成しようとしたんですが、思っていたよりかなり複雑なので、来週やる事にします。

今週のMaterialの勉強はここまでとします。

5.RPGStoryの改善

今週は、これまでのやや混乱したStoryを整理して書き直したいです。

5.1 今までの内容をBlog毎に整理する

まずこれからやります。

2022-04-25blog

ここではStoryを1章から9章に分けて作成しています。かなりの大作ですが、今読むと辻褄が合わない部分がかなりあります。

しかし、今読み直しても、話としてはかなり面白いので、話の骨子はこのままで行きたいと思います。

読み直して、結構重要な事を忘れていました。

これです。

それでですね。もう宮沢賢治銀河鉄道の夜からも一端、離れた方が良い気がしています。自分の興味が湧かないんです。これ以上。

切符だってそんなに強烈に人を引き付ける物じゃないですよ。身近な親しみのあるものではありますが。

いや切符は良いかもしれませんが、銀河鉄道が一寸とってつけたような存在になっています。別世界転送装置とか別世界移動門とかにした方が、まだ理解しやすいと思います。それを使用するのに切符が必要になるなら、まだ分かり易くて良いと思います。

別世界移動魔法門とかにしてその門は魔女が管理しています。それぞれの門の格によって管理している魔女の被っている帽子の色が違うようにします。赤い帽子は最高のランクでだれも被っているのを見た事がない。とかにした方が全然分かり易いです。

となると題も「金の切符と赤い帽子の魔女」とか「黄金の切符を探して」とかの方が分かり易いですね。

ただ「ジョバンニと赤い帽子の魔女」と言う題は綺麗です。

第一章については以下のEventを組む必要があります。

このEvent自体は面白いので「序章;武器を手に入れろ」とか「Mission:武器を手に入れろ」で最初のEventにします。

この後に第一章の話が始まるようにします。

5章までの話は今回、全部書き直します。

そのために忘れている事が無いように、全部読み直しました。

2022-05-02のBlog

ここには12使徒の名前が載っていますね。これ後で出てくる果物の名前よりは全然増しな気がします。

第一章のEventをここでは

としています。

先週考えた話とどっちが上でしょうか?

これは後で考えます。

2022-05-09Blog

こっちの話の方が断然面白いです。

後、このGameの裏テーマとして

があります。

これ今の村長の腰巾着が、実は前の村長の忠実な僕で、今の村長に村を追い出されないために、腰巾着をやっているってのも後から分かる訳です。一見道化のようなPlayerを笑わすためのだけに存在しているNPCにもそういうつらい過去や今を生き抜くための知恵みたいなものがある事がこのEventからPlayerに伝わる訳です。

完全にアホとの決別が出来ます。

「登場人物、全部バカ」とか言われないで済みます。

後、登場人物や武器の名前、世界の名前、王国の名前などを決めています。これって結構重要です。

見直したんですが、7つの大罪たちの名前が弱いです。弱いと言うが意外性が無い。

そこで思いついたんですが、実際の12使徒の名前を使ったらどうでしょうか?

今の世界のキリスト教の指導者の奢りっぷりを見てると12使徒の名前を7つの大罪の名前に使用するのは皮肉が効いていて面白いと思います。

それぞれの12使徒の有名な話を調べてそれに類する7つの大罪を選びます。

<<バルトロマイ>>

皮はぎの刑で殉教したそうです。バルトロマイは父親の名前で本当の名前はナタナエルと言う説もあるそうです。

<<アルファイの子ヤコブ>>

特に有名な話はないそうです。

<<アンドレ>>

エスが五千人に食べ物を与える話に出て来るそうです。そこでアンデレはパンと魚を持った少年を連れてきてイエスに紹介し、食べ物が増える奇跡を導く役割を果たしている。そうです。

怠惰 (sloth)の名前にしましょう。怠惰 (sloth)の正体は巨大な魚ですから丁度良いです。

またこの人も漁師だったそうです。

<<ユダ>>

ユダは有名すぎます。こいつは使いません。

<<ペテロ>>

エスが捕まった時、イエスを3度否認した話が有名です。

これは人間味が出ていて良い話です。なのでこの名前も使いません。

<<ヨハネ>>

黙示録を書いた人だそうです。

<<トマス>>

情熱はあるが、イエスの真意を理解せず、少しずれている人物。とかユダの本名とかボロカスに書かれています。かなり正常な批判精神がある人だったみたいです。そりゃ科学的に批判されちゃ奇跡なんて無くなっちゃいますから、批判されまくるでしょう。

この人は12使徒の方の名前に使用しますか。

<<ゼベダイの子ヤコブ>>

同じく12使徒であるヨハネと兄弟だそうです。漁師だったそうです。

<<フィリポ>>

何をした人なのか不明です。

<<マタイ>>

税金を回収する仕事をしていた人だそうです。

マタイの福音書の著者と言われているそうです。

<<タダイ>>

この人は本名がユダで、裏切り者のユダと混同されるのであんまり有名じゃないそうです。

<<熱心党のシモン>>

ほとんど何をした人なのか不明だそうです。

良く聞く福音書とかって12使徒が書いたんだとばっかり思っていましたが、それも調べます。

マルコ・マタイ・ルカ・ヨハネが書いたそうです。

ヨハネとマタイしか12使徒にいないじゃないですか?

マルコとルカについて調べます。

マルコはペテロの通訳をした人だそうです。後パウロの何かをした人らしいです。パウロって12使徒じゃないんですかね。上の12使徒には名前が無いですね。

ルカは医者だったそうです。この人もパウロの何かをやっていたそうです。

いや、聖書ほとんど読んだ事のない私でもパウロは知っていますし、パウロの話は結構好きな話です。

パウロは12使徒じゃないの?

調べたらパウロは13番目の使徒だそうです。

ほー。面白い。

簡単に12使徒について調べましたが、アンドレ以外、奇跡を使って人を騙したみたいな話はないですね。

まあ、名前を使うだけですし、あんまり7つの大罪と関係なくても良いかもしれません。

奇跡と12使徒で調べれば良かったんです。

今度はこっちで調べる事にします。

5.2 伝説の武器の名前

今週、物語を全部書き直そうと思いましたが、7つの大罪の名前すら決まっていませんので無理です。それよりも名前とかそれに関する物を深堀するのが先です。

ので伝説の武器を深堀します。

無限に水が湧く壺が出て来る神話は2つ見つかりました。

北欧神話に出て来る海とつながったコップとロシアの民謡にある水の枯れないひしゃくの話です。

北欧神話なら雷神が出て来るから武器は北欧神話から取る事にします。

12使徒について調べないといけないのに更に北欧神話についても調べないといけないのか。

でも王国の名前はギリシャ神話から取ると決めてしまいました。ギリシャ神話と北欧神話じゃ話しがちょっと被っていますよ。

今週は、ここまでとして一週間また熟成させます。

6.Map1Bugの直し

今週は以下のBugを直します。

  • 転職石を使用出来るのはLevel10になってから。
  • 詩人のセリフを変える
  • NPCが夜になっても消えません。

6.1 転職石を使用出来るのはLevelが10になってから

以下の実装を追加しました。

テストします。

テストのために転職石(狩人)の値段を0にしました。

押しても何の反応もありません。

後はLevel10になったら使用出来るかどうかの確認です。

Level 10 に必要な経験値は2500です。

ゴブリンを倒すと2500XPがもらえるようにします。

戦闘しました。

表示がオカシイです。

以下のHPとMPから推測すると

全部の経験値は可算されているみたいです。

この表示がおかしいというか前の表示を消してしまったのは後でタイプライターEffectを追加する時に直します。

転職石(狩人)を弟子Level10の時に使用しました。

無事狩人になれました。

6.2 詩人のセリフを変える

これは、物語が決まるまでどんなセリフを詩人に読ませるのかも決まっていないので今回はやりません。

6.3 NPCが夜になっても消えません

まず夜にしないといけません。Level BPを開いてTime of Dayを30分から1分に変更します。

確認します。

夜になったらNPCは消えました。

ひょっとするとStart 画面からMap1に移動した時だけおきるBugなのかもしれません。

Start 画面からMap1に移動してみます。

夜になったらNPCは消えました。

うーん。

出来てます。

7.Open Worldの検証

先週の続きのVirtual Textureについて勉強します。

先週、勉強したHow to Blend Objects with Your Landscape - UE4 Runtime Virtual Texturing (RVT) Tutorial [9] の実装を行います。

7.1 How to Blend Objects with Your Landscape - UE4 Runtime Virtual Texturing (RVT) Tutorial [9]を実装する

Tutorialは4.26か27を使用しているので、4.27で試してみます。

Rural AustraliaをImportしました。

結構時間が掛かりました。

Example Mapの03に

SM_Log_L_01を配置しました。

結果です。

全く同じと言う訳にはいきませんが、かなりTutorialのSceneと似た感じに出来ました。(以下にTutorialのSceneを示します。)

使用している倒木は全く同じかもしれませんね。

で、Tutorialの例だと倒木と地面がはっきり分かれていてこれはダメだ。と素人にも分かるようになっています。

所が、私が同じと思われるStatic Meshを配置した所、Tutorialの例程はおかしさが目立っていないんです。

一寸だけこのStatic Meshの位置を高くします。

するとTutorialみたいな倒木と地面が全く混じっていないかなりおかしいImageが出来ます。

これは厳密に言えばVirtual Textureとは何の関係もない問題です。

しかもVirtual Textureを使用した後でこの倒木の位置を少しだけ下げています。

Virtual Texture自体は凄いTechnologyですし、Unreal Sensei氏のTutorial自体が抜きんでて凄いのも否定しませんが、この比較はちょっとFairじゃない気がします。

これ、3D Graphics系の論文でも散々見ました。最初に今までの3Dと論文で紹介されている新しい技術を使用した3Dの比較が提示されていて、確かに凄いとなるんですが、良く読むとその論文に書かれている新しい技術がその凄い3Dの凄い所と一致してないかったりします。

Virtual Textureの勉強とは関係ないのでこの話はここまでとしてTutorialの続きを行います。

<Set Up

Project SettingからEnable virtual texture supportにCheckを入れます。

Projectを再起動します。

再起動したら20分位かかりました。

はい。Virtual Textureが使用可能になりました。

この後、さらに20分位Shaderの読み込みにかかりました。

「うーん。新しいPCを買うべき時は既に来ていますね。もう覚悟決めるしかないか!」と思ったらUnreal Sensei氏が「この再起動はかなり時間が掛かります。」と言っていました。Unreal Sensei氏のPCはかなり高品質、最新鋭なはずです。それでもかなり時間が掛かったならPC新しくしての関係ないのか。もう少しこのPCで頑張ろうかな。となりました。

Virtual Textureを2個作成します。

Material & TexturesのRuntime Virtual Textureを選択します。

こんなところにあったのか!名前もRuntime が最初に付くんですね。

Virtual Textureを2個作成しました。

先週、このTutorialを一回勉強しているので既にVirtual Texture作成の流れは掴んでいるので安心して進めます。もし全体の流れが分からない状態でいきなりTutorialを見ながら実装を始めていたら何でVirtual Textureを2個も同時に作成するんだ!ってなっていたと思います。

VT_Heightの方を開きVirtual Texture ContentにWorld Heightをセットします。

今度は、両方のVirtual TextureのSize of the virtual Texture in Tilesの値を8から10に変更します。

うーん。これ何の設定を変更しているんでしょうか?

Tutorialでは解説なしで先に進んでしまっています。

Size of the virtual Texture in Tiles にCursorを乗せると以下の説明が出て来ました。

普通のTextureだとTextureのサイズあります。1024x1024とか512x512とか言うやつです。それのVirtual Texture版みたいですね。

ただTileが何を言っているのかは不明です。一個一個のTileのサイズは256だそうです。と言う事は16個のTileが生成されるんでしょうか?

Virtual TextureにもLandscapeのComponentやSectionの概念みたいなものがあるのかもしれませんね。

次に、Landscapeのどの場所をVirtual TextureでCaptureするのかを指定します。

その為にRuntime Virtual Texture Volumeを使用します。

Level上に配置します。

サイズを変更しますが、変更後のサイズはLandscapeと同じにします。

やり方は、

まずRuntime Virtual Texture VolumeのVirtual TextureにVT_Heightをセットして

Bounds Align Actorのスポイトを選択して

LandscapeをClickします。

自分のProjectのScreenshotを取ろうとしたらスポイトが消えてしましました。のでTutorialから取りました。

するとBound Align ActorにLandscape1がセットされました。

こんなの普通にLandscape1ってタイプしても一緒だろうと、試しにタイプしてみましたら、一緒でした。

そしてSet Boundをクリックします。

結果です。

うーん。Landscape全体と同じサイズにはなっていませんね。

Tutorialもなっていないので多分合っているんでしょう。

Runtime Virtual Texture VolumeをDuplicateして

複製したRuntime Virtual Texture Volume のVirtual TextureにVT_Matをセットします。

<Capturing the Landscape Material

先週は、ちょっと最初混乱しましたが、ここで何をやっているか完全に理解しました。

Landscapeの情報をCaptureしているのは間違いないんですが、ここで行っているのはLandscapeのMaterialの情報をStatic Meshに流しているんです。そのための中継点としてVirtual Textureが存在しているんです。

更に、得たLandscapeの情報はStatic MeshのMaterialにProjectionされる形でBlendされます。のでNormal はWorld Spaceに変換する必要があります。

LandscapeのMaterialを開きます。

かなり本格的なLandscape用のMaterialですね。

Layerだけでこんなにあります。

更にWorld Position Offsetに以下の実装と

Pixel Depth Offsetに以下の実装が追加されています。

この二つは何をやっているのか分かりませんね。

でも今回はMaterialの解読が目的ではないので、この部分はSkipします。

Virtual TextureにLandscapeのMaterialの情報を流すためにRuntime Virtual Texture Outputを追加します。それぞれのInput Valueを以下の様に繋ぎます。

これNormal VectorのTangent SpaceからWorld Spaceへの変換とは別な話ですが、実際にLandscapeで使用されているNormal Vectorはこの後で、

がおこなわれています。

こっちのNormalizeは正規化のNormalizeで法線のNormal Vectorとゴッチャになりやすいですが全く別の意味です。

これしなくてもあんまり結果は変わらないのかもしれませんが、敢えてこの部分を無視した理由は知りたかったです。

さあ、次はNormal Vectorの変換か。と思ったらWorld Heightの値のパスの仕方についてです。

はい。

こういう所をしっかり教えてくれるのがUnreal Sensei氏の良い所です。言われてみればその通りですが、これを自分から思いつくのは結構大変です。

最後に、Normal Vectorの座標をTangent SpaceからWorld Spaceに変換しました。

これでLandscapeのMaterialでの設定は一応完成です。

今度はRuntime Virtual Texture Outputで放出したDataをどのVirtual Textureに送るのかを指定します。

Landscapeを選択し

DetailのDraw Virtual TexturesにVT_HeightとVT_Matをセットします。

これでLandscapeのMaterialの情報をVirtual Textureにパスする所までは完成しました。

今度はVirtual Textureに保持されているLandscape のMaterialの情報をStatic Meshである倒木のMaterialに渡します。

これが倒木のMaterialです。

実装部です。

何だこれ?

一寸だけ読んでみます。

うん。Textureに入っているデータが通常と一寸だけ違っているです。が本筋からずれるのでこれ以上は止めます。

ここにVirtual Textureの情報を持ってきてBlend Material Attributeノードを使用してこのMaterialとBlendします。

当然Blend Material AttributeノードのAには今までのMaterialの値、BにはLandscapeのMaterialの値、AlphaにはLandscapeのHeightの値が入ります。

まずAlphaの値から取得します。

Virtual Texture Sample Parameterノードを作成し名前をVT Heightにします。

以下の実装でこのMaterialを使用しているStatic MeshのそれぞれのPixelの高さを得ます。それに対してLandscapeの高さを引きます。

ところがこの計算方法だと、Static MeshのScaleが変わった時に対応出来ないそうです。

それて以下の計算を足します。

先週のBlog

と書いていますが、今週になってみても意味分かりません。

分からんので続きをやります。

それではParameterをいじってみます。

Virtual Blend Heightが1の時です。

数値を上げます。

うーん。別に普通ですね。

大体、Virtual Blend Heightの値が3で倒木が真っ黒になります。

倒木のZ軸のScaleを2倍にします。

2倍にしても真っ黒のままですね。

Virtual Blend Heightの値を1に戻したら真っ白になりました。

倒木のScaleが変わってもVirtual Blend Heightの値が1の時に0、3の時に全部を示すようになっているみたいですね。

あー分かりました。

以下に簡略化した図を作成しました。

オレンジの部分が倒木です。

赤い点がAbsolute World Positionです。

黒い矢印の長さが以下のSubtractの値です。

Object Boundの値が青の矢印の長さになります。

次の以下の部分の計算で、

以下の赤線で囲った値と同じになります。

ここに以下の赤線で囲った値を引きます。

例えば、Virtual Blend Heightが1の場合は

加えた値と同じだけ引きます。

しかしVirtual Blend Heightが1以上の場合は(例えば1.05の場合)

一寸だけ余計に引く事になります。

つまり、黒い部分が増えるようになります。

この青い線(Object Bounds)とWorld Positionの一点からLandscapeまでの距離を表す黒い線はScaleの変化に同率で変化します。

ので、この計算でScaleの変化を無効化出来るわけです。

ここでVirtual Textureを勉強する時間が無くなってしまいました。

Rural AustraliaをImportしたりCompileしたりした時間が予想外に掛かったからです。全部終わらなかったです。来週続きをやります。

8.Gaeaの勉強

8.1 Gaea Beginner Tutorial Series : Part 1 – Interface [11]の続きを勉強します

今週はTool Boxについて勉強します。

<Tool Box

以下の部分です。

GraphにConstantノードがあります。

この値を別なGraphのノードにPassしたいとします。

ConstantノードのOutputから左Clickしながら線を引っ張ります。

線を引っ張った後で左Clickを放すと以下のBoxが表示されます。

ここからMake Portalを選択します。

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

今度は、別なGraphにあるPerlinノードのInput Pinを左Clickしながら引っ張って

線を出して以下のBoxを表示します。

Portalを選択すると先程Outputを作成したConstantノードがあるのでそれを選択します。

すると

となります。

ここのPointは線を引っ張った後にBoxが現れる事で、線を引っ張らないとBoxは現れません。

別な方法として、Nodeを選択した状態でKeyboardのcを押すと以下のBoxが表示されます。

この後、Outputが複数あるNodeの場合も解説していましたが、直観で理解出来る内容なのでここにあえて記述する事はしません。

今度はTool Boxの表示方法についてです。

Tool Boxの右上の三本線マークをクリックしてFullを選択します。

するとTool Boxが上下一杯になりTutorialの表示と同じになります。

こっちの方が断然見やすいです。

9.雪山のMapの作成

先週の足跡の作成の続きでDynamic Footprint System Part 2/2 - Unreal Engine 4 Tutorial [10]を勉強します。

9.1 Dynamic Footprint System Part 2/2 - Unreal Engine 4 Tutorial [10]を勉強する

<Defining the Surfaces

Third Person BPがどのSurfaceに立っているのかを知るための実装です。

Project SettingのPhysicsを表示します。

その中のPhysics SurfacesのSurface Type1 とSurface Type 2にそれぞれGrass, SnowとSetします。

この機能を使用するのは初めてです。

この後、Physics Materialを使用しています。

が、これ使用するの初めてです。

更にTutorialだと地面のMaterialの所で作成しています。

Tutorial内では地面のMaterialはこんな感じで使用されています。

これは同じ様な物を先に作成しておいた方が、良いかもしれませんね。

作ってしまいます。

Materialはその辺にあるのをコピペしました。

これでやって見て駄目ならその時直します。

Physics Materialから新しいClassを2つ作成します。名前はPM_GrassとPM_Snowとしました。

それぞれを開いてSurface typeにGrassとSnowをセットします。

今度は、先程作成した地面用のMaterialを開きます。

Result Nodeを選択するとDetailの欄にPhysical Materialが表示されています。そこに先程作成したPhysics Materialをセットします。

M_FP_GrassにはPM_Grassをセットしました。

M_FP_SnowにはPM_Snowをセットしました。

こんな機能があるなんて初めて知りました。

Physics Materialとその使用方法については後で勉強する事にします。

<Spawning The Footprint

Third Person Character を開きます。

Event Graphの空いている箇所にCustom Event を追加します。名前はTutorialと同じFootprint_Rにします。

Line Trace BY Channelノードを追加します。

このNodeはあんまり使用した記憶はないですが、前の節で勉強した【UE5ゲーム制作】標準で実装されているControl RigによるFoot IKを解説します [3]の知識から、どんな機能なのか推測出来ます。

TraceをStartとEnd内で行い、何かがHitした場合Trueを返します。Out HitはHitしたActorを返すんじゃないでしょうか?

当然、無視するActorもあります。Actors to Ignoreにそれをセットする訳です。その中で特に自分は無視するのが普通なので、それは特別にIgnore Selfがある訳です。

続きです。

Third Person Characterの位置をStart Positionに指定しています。End Positionはそこから100を足しています。

100を引くんじゃないのと思いましたが、Third Person CharacterのMeshを見たら、Pivot Pointが底にセットされていました。底から上に向かってTranceするみたいですね。

次の実装です。

うーん。想像していた通りですが、このやり方だとLandscapeのMaterialのLayer毎の対応は出来なそうです。

それともPhysics MaterialをそれぞれのLayer毎にセットする方法があるんでしょうか?

兎に角、続きをやります。

以下のBooleanを作成してセットします。

Tutorialによるとこのやり方、非常に稚拙に見えますが、後に足跡をSpawnする時に他のやり方と比べてCodeの数が劇的に減るそうです。

そのままCopyしました。

次の実装です。

ここで先週作成したFoot_Rが出て来る訳ですね。

緻密な設計です。

<Spawn Correct Footprint Type

次の実装です。

ここでBPクラスであるFootprint_RからDecal MaterialであるGrass Matを取り出しています。確かにFootprint_RのComponentにはGrass Matがあります。

これが先週言っていた、BPにした方が整理しやすい。というやり方なんでしょうね。

うーん。

取りあえずはTutorialを全部終わらしてからこの辺の実装方法について考えます。

雪の場合も同様に作成します。

同様に左足用を作成します。

<Calling The Event

を開きます。

今度はここのEvent Graphに実装します。

まずThird Person CharacterのReference nodeを作成します。

これはまあ準備体操みたいなもんです。

AnimNotify_FootprintRを呼び、以下の実装を行います。

ふうーん。

これが先週、Animation_Sequence Classで作成したNotifiesを

Eventとして発動する方法なのか。

何回か実装した事はあるかもしれませんが、理論的に理解したのは今回が初めてですね。

Animation_Sequence Classで作成したNotifiesは、Animation BP内でしか受け取る事が出来ないんでしょうね。それて

Animation_Sequence Class のNortifies―>Animation BP―>Third Person Characterと繋げている訳です。

このTutorial、非常に分かり易いですが、中身は結構複雑ですね。

でも理解しました。

AnimNotify_FootprintLの実装も追加しました。

これで完成のはずです。

テストします。

うーん。

足跡は出来ていますが一寸オカシイです。

まず草の上ですが、片足だけ表示されています。

次に雪の上ですが緑色のFootprintがあります。

まずSnowを走っている時の左の足跡が草の上を走った時の足跡になる問題ですがThird Person Characterの以下の赤線で囲った部分の実装が間違っていたので直しました。

結果です。

足跡の色は直りましたが、足跡が右足しかないです。

左足だけFade Start Delayを15秒に遅らせました。

右足の足跡が消えた後も、消えない足跡がありました。

と言う事は左足の足跡は元から出来ていたのに気が付いていなかっただけみたいです。

9.2 Dynamic Footprint System Part 2/2 - Unreal Engine 4 Tutorial [10]を勉強した感想

先週のTutorialも合わせての感想になりますが、非常に分かり易かったです。

きちんと動いていますし、足跡の作り方の理屈が、非常に分かり易かったです。

Matt Aspland氏のTutorialは今まで、あんまり見た事無かったですが、これからは沢山参照する事にします。

10.Game DesignポケモンHxHの念能力( 戦闘システムの作成)

10.1 先週の勉強の整理

先週、やってた内容がかなりトッ散らかっているので、それを整理します。

まず、以下の点についてこれから改善していくといっています。

  • UI
  • 戦闘場
  • Animation
  • Camera
  • Effect
  • Story

そしてその手始めにUI(Widget)の作成を始めました。

UIの作成で今作成中のRPGは何も考えずに作成してしまったため会話のUIだけで3種類も出来てしまいました。この間違いを二度と起こさないため先に作成に必要なUIを抽出してしまおうと考えました。

しかし普段、Gameをしない私はどんなUIがGameに必要なのか今一分かっていません。

それでこれです。

この一つ一つを見て、どのUIはどんな風に作成するのか勉強していました。

10.2 UIの勉強について

それでこれ見て思ったんですが、UIの勉強はそんな簡単には終わらないと。デザインに関してだけでも最低で一カ月はかかると。

「Game Design:ポケモン+HxHの念能力( 戦闘システムの作成)」は一端お休みして、UIのデザインの勉強に集中した方が良いと思うようになりました。ので今週からUIデザインの勉強を「Game Design:ポケモン+HxHの念能力( 戦闘システムの作成)」の代わりにやる事にします。

11.UI designの勉強

Interface In Game [11]を見ながらUIをDesignしてみます。

最初のCharacterですがInventoryの画面が出て来たり、Characterの選択が出て来たりしていて決まったUIがあるわけではないので無視して次に行きます。

<Credit画面>

GameをClearした時に流れる製作者一覧ですね。

映像が後ろに流れているのが一般的なようです。

大体のGameがExecutive Producerが一番最初に来ています。どんな仕事をする人なんでしょうね。その後にDirectorが来ていますが、DirectorはArt、Sound、Game、Technicalなど色々な種類のDirectorがいますね。

<Dialogue画面>

これは先週、勉強しました。

<Game Over 画面>

Game Overになった時に表示される画面です。Playerが死んだ事を告げるImageと続きを始める為のボタンがあるUIが表示されています。

映像が流れるタイプの結構ありますが、シンプルにPlayerが死んだ事を告げるだけのUIも多いです。

<In Game

これも何をさしているのか不明です。Skipします。

<Inventory画面>

3Dモデルが表示されていてItemや武器を装備するとその3DモデルのImageも変化します。

純粋にInventoryなUIとItemや武器の管理から、地図やSystemの管理まで一括で出来るUIの物も有ります。

Inventory画面はUIの作成の中心になるものだと思われ、ここでUI画面を見ただけでは何が必要なのか全然分かりません。これは後で別枠で勉強する事にします。

<Level選択画面>

単純なLevelの選択というよりStageの選択ですね。地図が開いてどのStageに移動するのか。みたいなのが多かったです。

<Load画面>

Load画面はどれくらいのLoadが終わっているのかを示す読み込みのWidgetと待っている間退屈しない映像がほとんどにありました。Gameの設定を解説する文章があるのは意外と少なかったです。

<Lobby画面>

Lobby画面って何かと思ったらGameが始まる前の待機画面の事でした。今のGameはOnline対戦が主流なので対戦相手が揃うまでLobby画面で待つんですね。

このUIは私には関係ないのでSkipします。

<Map画面>

Map画面はMapを表示する画面の事で色々な個所で使用されています。まずLevel画面です。Level画面で色々な場所を選択する場合、地図でその場所を表しているのが多いです。

後、単純にGame内で地図を見る為の画面である場合も多いですね。

<Menu画面>

Menu画面ってさっきのInventory画面とどう違うのと思ったんですが、一緒のやつもあるし、全然違うUIをMenuとよんでいるのもありますね。

全然違うUIの場合、音の大きさとかControllerの設定なんかを調節するUI画面の事をMenu画面と呼んでいる事が多かったです。

<Overlay画面>

Overlayって何?と思ったら、今ある画面を何かで覆い隠すEffectの事を指すそうです。これはUIではないのでSkipします。

<Progress画面>

Progress画面って何の画面なんでしょう?

Levelが上がったり、MissionをClearして報酬をもらう画面の事でした。

ここで本当に時間が無くなってしまいました。

今週はここまでとします。

12.Blenderの勉強

今週も復習だけやって終わりにします。時間が無い!

<Selection Method

やりました。

2022-02-14Blogの復習>

やりました。

2022-02-21Blogの復習>

Barrelが上手く行かない時はEdgeが複数生成されています。

2022-02-28Blogの復習>

今週の木です。

2022-04-03Blogの復習>

一応、記録のためにChecker Deselectを使用した図を載せておきます。

残りの内容も全部復習しました。

2022-04-25Blogの復習>

Flattenを選択した時の図です。記録のためにScreenshotを取りました。

選択した面の平均のNormalに対してFlattenした場合です。

軸に対して平行でないです。

13.まとめと感想

「もう一つは、最近Epic GameのLauncherの表示が変更されてLearningのPageが無くなってしまいました。Epic Game社の中でUEのLearningに対する取り扱いがどうなっているのか調査したいです。」これについては今週はやる時間が無くなってしまいました。来週まとめます。

14.参照(Reference

[1] CGHOW. (2022, April 11). Yin Yang FX in UE5 Niagara Tutorial | Download Files [Video]. YouTube. https://www.youtube.com/watch?v=vPzLeEqNPi8

[2] UE Memorandum. (2022, April 17). 【UE5ゲーム制作】Control Rigを使用して、坂道などの傾斜のある地面でも、足の向きを傾斜に沿わせる方法を解説します【逆引きUE】 [Video]. YouTube. https://www.youtube.com/watch?v=zca8dQB-3yg

[3] UE Memorandum. (2022a, April 9). 【UE5ゲーム制作】標準で実装されているControl RigによるFoot IKを解説します [Video]. YouTube. https://www.youtube.com/watch?v=hyJ1pid0Ed0

[4] Kurie, M. [Kurie Meiku]. (2022, April 24). 【UE4/UE5ゲーム制作講座】超基礎編・これを見れば内積(Dot Product)がわかる!(半分) [Video]. YouTube. https://www.youtube.com/watch?v=IBO_V48dYW4

[5] Cloward, B. [Ben Cloward]. (2021, July 22). Dot Product Node - Shader Graph Basics - Episode 7 [Video]. YouTube. https://www.youtube.com/watch?v=sD6y-hUxEck&list=PL78XDi0TS4lEBWa2Hpzg2SRC5njCcKydl&index=8

[6] 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

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

[8] Epic Games. (n.d.). Landscape Edit Layers. Unreal Engine Documentation. Retrieved May 15, 2022, from https://docs.unrealengine.com/4.27/en-US/BuildingWorlds/Landscape/Layers/

[9] Unreal Sensei. (2021, April 23). How to Blend Objects with Your Landscape - UE4 Runtime Virtual Texturing (RVT) Tutorial [Video]. YouTube. https://www.youtube.com/watch?v=xYuIDFzKaF4

[10] Aspland, M. [Matt Aspland]. (2020, December 19). Dynamic Footprint System Part 2/2 - Unreal Engine 4 Tutorial [Video]. YouTube. https://www.youtube.com/watch?v=9HlZ-6aFk1I

[11] Klaus [klaus]. (2022, January 12). Gaea Beginner Tutorial Series : Part 1 - Interface [Video]. YouTubehttps://www.youtube.com/watch?v=H-vTeYYHJPM&list=PLyNtvXvNIFMMHnW1_-hXO3RNPp_Z5CExF&index=1