UE4の勉強記録

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

「Unreal Engine 4.xを使用してRPGを作成する」の足りない部分を作成するMonster Zoneの作成 Part 4

f:id:kazuhironagai77:20210613195339p:plain

<前文>

子音+Lの音

Minimal Pairによる英語の発音聞き取り練習アプリを制作しています。

凄い効果があります。例えばThの場合です。THはFやSとペアを組みますが、ああこの音がThなのかと一瞬で分かります。そして一端分かったら決して忘れません。

しかしどうしても成果が出ないPairもあります。

それが子音+Lと子音+Rのペアです。PlayとPrayのペアみたいなやつです。全く区別がつかないと言うわけではなく、その場で二つの単語を聞き比べながらこの単語はどっちでしょうか?とクイズを出すと必ず正解出来ます。つまり音の違いは誰でも認識出来ています。所が次の日になると、音の違いが分からなくなってしまいます。

この子音+Lの音について新情報が入りました。

子音+Lの時のLの音ってLight LとDark Lのどっちだと思いますか?

私は頭ごなしにLight Lと思っていました。

正解は、半々だそうです。

子音+Lの時にMのような音が聞こえる時があります。この長年の謎が解明しました。子音+Light Lの時にはMに近い音が聞こえるんです。子音+Dark Lの時はM のような音は全くしません。

後、ラリルレロの音が全く聞こえない時もあります。例えばFlyの発音が、フイに聞こえる場合です。この発音を始めて聞いたときあまりに酷すぎると思いました。完全にフイと言っています。これでLかRか分かる訳ないです。

でもこの謎も解明しました。元々、Dark Lはウのような母音のような音がします。のでF + Dark Lがフに聞こえたんです。このフの音はFuやFooとは全く違うウの音なんでFLと分かる訳です。

それでも分からない部分は沢山ありますが、まあ一歩前進したのは間違いないです。

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

<本文>

1.今週の予定

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

  • Niagara Cascadeについて
  • 先週の改良点の直し
  • Monster Zone の更なる作成

2. Niagara の勉強

今週は先週、勉強したRibbonをもう一回やり直します。

先週、Reviewで横や上からEffectを眺めるとparameterとEffectの関係が結構良く分かる事に気が付きました。それで先週勉強したCreate a Ribbon Effect in Niagara [1]の勉強をやり直す事にしました。

2.1 先週の復習

先週、勉強した内容を復習して分からなかった事をまとめます。

f:id:kazuhironagai77:20210613195525p:plain

飛行機雲の作り方はまだ分かりませんね。後、花火の導火線を作成するのにRibbon Effectは丁度いいかもしれません。

Spawn Burst Instantaneous ModuleのParameterについて考察しています。

f:id:kazuhironagai77:20210613195551p:plain

ところが、後でSpawn Rate ModuleのSpawn Rate がCascadeのSpawn ModuleにあるBurst Listと同様の働きを担当しているんではないのか?の疑惑が出て来ます。

f:id:kazuhironagai77:20210613195610p:plain

これが「先週、分からなかった事1」です。

次の疑問ですが、Emitter State ModuleのLife Cycle Modeの値についてです。

f:id:kazuhironagai77:20210613195641p:plain

先週の結論では、

f:id:kazuhironagai77:20210613195656p:plain

となりましたが、それだとDefaultでSelfにセットされている理由が分かりません。「先週、分からなかった事2」です。

Torus Location Module のTours Modeについてです。

ToursとRingのどちらかが選択出来ます。

f:id:kazuhironagai77:20210613195716p:plain

この辺ももう少し具体的な違いが知りたいですね。

後、勿論、横や上からEffectを眺めて違いを確認します。これは「先週、分からなかった事3」にします。

そしてTorus Location Module のUPositionです。

f:id:kazuhironagai77:20210613195736p:plain

UPosition自体の意味も良く分かりませんが、以下に示した様なParticleとかEmitterなどのParameters自体が何なのか良く分かっていません。

f:id:kazuhironagai77:20210613195753p:plain

これらは「先週、分からなかった事4」です。

そしてAcceleration Force Moduleについてです。

f:id:kazuhironagai77:20210613195811p:plain

これは「先週、分からなかった事5」になります。

以上でした。

2.2 Niagara Moduleの解説について

Cascade には以下に示した様に、Particle System Reference [2]に全てのModuleについての解説が載っています。

f:id:kazuhironagai77:20210613195845p:plain

これと同じものがNiagaraにもあるはずです。まずそれを探します。

直ぐに見つかりました。Niagara Visual Effects [3] にありました。

NiagaraはModule毎ではなくGroup毎にまとめてありました。

f:id:kazuhironagai77:20210613195901p:plain

2.3 「先週、分からなかった事1」

<Spawn Burst Instantaneous ModuleのSpawn Rate Parameterについて>

Spawn Burst Instantaneous ModuleはEmitter Update Groupに属しています。

f:id:kazuhironagai77:20210613195928p:plain

Emitter Update Group [4] を見てみましょう。

f:id:kazuhironagai77:20210613195947p:plain

あれ、これだけ。

これではSpawn Burst Instantaneous ModuleのそれぞれのParameterがどんな働きをしているのか分かりませんね。

では、自分で実験してみるしかなさそうですね。

Niagara Emitter からDirectional Burstを選択して新しいEmitterを作成します。

f:id:kazuhironagai77:20210613200008p:plain

以下に示したようなeffectが表示されています。

f:id:kazuhironagai77:20210613200025p:plain

一秒毎に、ParticleがBurstされています。

Emitter State ModuleのLoop Durationが1.0にセットされてるからでしょうか?

f:id:kazuhironagai77:20210613200043p:plain

Emitter State ModuleのLoop Duration を9秒に変えてみます。

Timelineが9秒まで移動してからLoopするようになりました。

f:id:kazuhironagai77:20210613200115p:plain

勿論、ParticleがBurstされるのは9秒毎になりました。

f:id:kazuhironagai77:20210613200131p:plain

TimeLineの矢印が0.00を指す時にParticleがBurstしています。

これって?

試しに、Spawn Burst Instantaneous ModuleのSpawn Timeを5秒にセットしてみました。

f:id:kazuhironagai77:20210613200147p:plain

はい。今度はTimeLineの矢印が5秒を指した時にParticleがBurstしました。

f:id:kazuhironagai77:20210613200202p:plain

これがSpawn Burst Instantaneous ModuleのSpawn Timeの意味ですね。

解決しました。

<Spawn Rate ModuleのSpawn Rateについて>

Emitter Update Group [4]には以下の様な解説がされています。

f:id:kazuhironagai77:20210613200226p:plain

これだけでは良く分かりませんが、実際に試してみたら意味が分かりました。

まずSpawn Rate ModuleはSpawn Burst Instantaneous Moduleに付随して作動するModuleではないです。全く関係のない独立したModuleした。

Spawn Rate ModuleのSpawn Rate を1にセットすると

f:id:kazuhironagai77:20210613200244p:plain

1秒に1回、一個のParticleを放出しています。

今度は、Spawn Rate ModuleのSpawn Rate を5にセットします。

f:id:kazuhironagai77:20210613200300p:plain

1秒間に5回、つまり20秒に一回、1個のParticleを放出しています。

これがSpawn Rate ModuleとSpawn Rateの機能でした。

2.4「先週、分からなかった事2」Emitter State ModuleのLife Cycle Modeの値について

Life Cycle Modeの値がSystemの方が計算は速くなるそうです。それならばDefaultでもSystemにセットするはずです。なぜdefaultではSelfにセットされているのでしょうか?

今の時点ではこれを調べる手段がないですね。

これは諦めます。

と思ったらCreate a Ribbon Effect in Niagara [5] のEdit the Emitter Update Group Settingsの2にそのものズバリの説明がありました。

f:id:kazuhironagai77:20210613200327p:plain

良く読んでおけば良かったです。

2.5「先週、分からなかった事3」Torus Location Module のTours Modeについて

Torus Location Module のTours Mode はToursとRingのどちらかが選択出来ます。その違いについて調べます。

上から見てみます。

Torusの場合です。

f:id:kazuhironagai77:20210613200351p:plain

Ringの場合です。

f:id:kazuhironagai77:20210613200408p:plain

Torusの場合の方が大きい位の違いしか分かりません。

2.6「先週、分からなかった事4」Parametersについて

以下にParametersの要素の一覧表を示しています。これらが何なのかが分かりません。

f:id:kazuhironagai77:20210613200430p:plain

調べます。

UE4 - Niagara Parameters [7] に少しだけ解説がありました。

まずここに書かれているParameterは既に作成されているParameterで使用中か、これから使用されるモノだそうです。

以下に示したLockのiconですが、意味は編集したり、値を変更したり出来ないとの意味だそうです。

f:id:kazuhironagai77:20210613200450p:plain

以下に示した数字の部分は参照されている回数だそうです。

f:id:kazuhironagai77:20210613200507p:plain

後、それぞれのParameterの意味が分かれば良いですが。

ParticlesのParameterはカーソルを乗せるとそのParameterの機能が解説されています。

f:id:kazuhironagai77:20210613200526p:plain

EmitterのParameterはカーソルを乗せても何も表示されません。

もう少し経ったらEmitterのParameterの解説も表示されそうですね。これは待つ事にしましょう。

ただし、UPositionに関しては完全に理解出来ました。

f:id:kazuhironagai77:20210613200545p:plain

f:id:kazuhironagai77:20210613200552p:plain

上記の説明のようにRingの場合はCircle状のPositionを示しています。そしてParameterはAgeなので0から9秒の間のFloatを示しているはずです。それが以下のCircleの円周上の位置を示しているはずです。

f:id:kazuhironagai77:20210613200612p:plain

2.7「先週、分からなかった事5」Acceleration Force Moduleについて

Particle Update Group [7] に以下の説明がありました。

f:id:kazuhironagai77:20210613200640p:plain

この説明を見る限り単なる加速度ですね。

CGHOW氏のAll Forces Modules in UE4 Niagara Explained [8] にも簡単な説明がありました。

f:id:kazuhironagai77:20210613200658p:plain

f:id:kazuhironagai77:20210613200705p:plain

Captionのマイナスが切れてしまいましたが、‐980cmをZに追加すれば重力と同じになると説明しています。

やっぱり加速度を追加しているようです。

2.8 Ribbon Emitterについて

一つ大切な事に気が付いたのでここに書いておきます。

UE4のVirtual Effectは全てParticle で作成されているはずです。そのParticleにTextureを貼り付けたのがSprite、Static MeshをはりつけたのがMeshです。ではRibbon Emitterは何をParticleに貼りつけてんでしょうか?

分かりません。

しかしこれはarticle Effectの理論からUE4VFXを理解するためには解明する必要があります。

後で調査しましょう。

3. Cascadeの勉強

今週はContent ExampleにあるGPU Particle with Velocity Cone Moduleに使用されているModuleについて勉強します。

f:id:kazuhironagai77:20210613200740p:plain

f:id:kazuhironagai77:20210613200748p:plain

最初の二つのEmitterはGPU Spriteを使用していますね。最初の二つのEmitterのModuleの多くは+が付いていますがこれはGPU Spriteに関係しているのでしょうか?

Velocity Cone Moduleは先週散々勉強したので、今週はパスしますが、出来た当時は結構な大発明だったんでしょうか?

3.1 Sphere Emitterを調べる

順番は逆ですが最後のSphere Emitterから見て行きます。

f:id:kazuhironagai77:20210613200810p:plain

綺麗なEffectです。どうやって作成しているのでしょうか?

いろいろ試したら分かったのですが、この色はMesh Material Moduleで作成されています。

f:id:kazuhironagai77:20210613200827p:plain

f:id:kazuhironagai77:20210613200833p:plain

このModule、Materialに属するModuleですが、

f:id:kazuhironagai77:20210613200849p:plain

Particle System Reference [2] に載っていません。

f:id:kazuhironagai77:20210613200904p:plain

ので解説が見つかりません。

このModuleに関する疑問は、Required Module内にMaterialを指定する箇所があるのに更にMaterialを指定している所です。

f:id:kazuhironagai77:20210613200919p:plain

Mesh Dataの場合はMesh Material Moduleで別に使用するMaterialを指定する必要があるんでしょうか?

以下の様なMesh Particleを放出するEmitter を作成しました。

f:id:kazuhironagai77:20210613200934p:plain

f:id:kazuhironagai77:20210613200943p:plain

Mesh Material Moduleを追加します。

f:id:kazuhironagai77:20210613201017p:plain

Materialには以下の青色をセットしました。

f:id:kazuhironagai77:20210613201040p:plain

球が青くなりました。

f:id:kazuhironagai77:20210613201102p:plain

今度はRequired ModuleのMaterialに同様の青をセットしました。

f:id:kazuhironagai77:20210613201124p:plain

球に色は付いていませんね。

f:id:kazuhironagai77:20210613201139p:plain

どうしてこうなったんでしょう。

残りのModuleは全部知っているヤツですね。

3.2 Particle Emitterを調べる

以下にGPU Spriteを使用したParticle Emitterを示します。

f:id:kazuhironagai77:20210613201159p:plain

+のサインの意味が分かりませんね。GPU Spriteの場合+を使用しないといけないのでしょうか?

GPU Spriteを使用したParticle Emitterを作成してみました。

f:id:kazuhironagai77:20210613201213p:plain

別に+サインがModuleの名前の隣に現れたりはしていません。

色々調べたんですが分かりません。

調べている内に以下のtutorial(Introduction to Cascade [9] )を見つけました。

f:id:kazuhironagai77:20210613201230p:plain

公式のTutorialでContent Exampleで紹介されているEffectについての解説と作成方法を説明しています。

数年前にこのTutorialにある牛のおもちゃが落下するEffectを作成した事があったのですが、存在自体すっかり忘れていました。今、見直すとModuleの使用方法の解説は詳しくそれなりに勉強にはなります。これからはこのTutorialも参考にする事にします。

ただ全てのVideoのTutorialに言える事ですが、何故、その関数や機能、UE4のVisual Effectの場合ならそのModuleを使用するのかについての理論的な解説はこのTutorialもほとんどないです。

これは重大な問題なのでここで時間をとって詳しく解説します。

Programmingならば大体以下の手順で(ソフトウェアを)制作します。

  1. 作りたいソフトウェアの目的、機能、UIなどを紙の上でまとめます。
  2. こうやったらそのソフトウェアが作成できるとだろうと言う簡単な設計図を作ります。
  3. 試しに作成します。
  4. 出来なければ2に戻って設計図を直します。
  5. 出来たらテストします。
  6. バグが発見されたら直します。
  7. 全部直したら完成です。

UE4のEffectだって根本的にはProgrammingなのですから大体は上記の手順で作成が進みます。だからEffectのTutorialだってその手順を示すべきなんです。しかし何故かEffectに限らずUE4のTutorialは既に完成した設計図が何故か手元に最初からあります。しかもその設計図にはどのNodeやら変数やらEffectの場合はModuleを使用するのかまでしっかり書かれています。それをどうやって組み立てるのかだけしか教えません。まるでプラモデルでも組み立てているかのようです。

その様なTutorialからは何も学べないと言うのではないですが、設計図の作成方法を学ばなければ自分で新しく何かを作成する事は出来ません。

いろいろ弄っていたら+が表示されているModuleは、どちらかを選択しても両方が一辺に選択される事に気が付きました。

f:id:kazuhironagai77:20210613201304p:plain

これが+の意味なのかもしれません。

試してみましょう。

Linking modules within cascade [10]によると

f:id:kazuhironagai77:20210613201336p:plain

で出来るそうです。

出来ました。

f:id:kazuhironagai77:20210613201355p:plain

Sphere emitterの隣に新しいEmitterを作成してMesh Material Moduleを上記の方法でLinkしました。

+のサインが表示されています。

4. Monster Zoneの改良について

先週、Landscape4上に配置している全てのMonsterを倒してみました。その結果、色々直しが必要な個所が見つかりました。

以下にそれをまとめます。

  • Start画面の部屋がStarter Kitで作成されているのでFantasy感が薄い。
  • 戦闘後にLevelが上がった場合、一言「Levelが上がりました。」としか表示されません。勝利ポーズを変更してもっと細かい情報(攻撃力がどれくらい上昇したのかなど)を報告するようにします。
  • Monsterがたまにアイテムを落とすようにします。

更に、以下の改善点が述べられています。

  • 途中から凄い退屈になった。戦闘しても勝てるのが分かっているから作業感が半端じゃない。
  • 戦闘画面に移る時に、後ろからモンスターに襲われるときと、自分からモンスターの後ろを襲うとき、は普通の戦闘と同じ始まり方で良いのかと思った。
  • もっと戦闘にメリハリが欲しくなった。途中までは戦闘も楽しかったが、戦闘しても勝てるのが分かっているからつまらなくなる。
  • 一端倒したモンスターが絶対復活しないので帰りは楽だった。
  • バグらしいバグはなかった。のでその点は良かった。
  • 地面が明かる過ぎると思いました。

以下にそれぞれの改善方法について検討した内容を示します。

<Start画面の部屋がStarter Kitで作成されているのでFantasy感が薄い>

BeffioのMedieval KingdomのStatic meshを使用して作り直します。

f:id:kazuhironagai77:20210613201451p:plain

<戦闘後にLevelが上がった場合>

一言「Levelが上がりました。」としか表示されません。

勝利ポーズを変更してもっと細かい情報(攻撃力がどれくらい上昇したのかなど)を報告するようにします。

Levelが上がると以下のパラメーターの値が上昇します。

f:id:kazuhironagai77:20210613201512p:plain

更に魔法を覚える事もあります。

これらを一つ一つ文章で報告します。

例えば、

  • 最大HPが1上がりました。
  • 最大MP1上がりました。
  • 攻撃力が1上がりました。
  • 防御力が1上がりました。
  • 幸運が1上がりました。
  • 魔法、炎()を覚えました。

のようにします。

<Monsterがアイテムを落とすようにします。>

偶に、倒したMonsterがアイテムを落とすようにします。

そう言えば、武器は拾えるように以下に示したBPを前に作成しました。

f:id:kazuhironagai77:20210613201554p:plain

f:id:kazuhironagai77:20210613201603p:plain

f:id:kazuhironagai77:20210613201612p:plain

がアイテムは忘れていました。

PickUpItem WidgetでもItemを拾った場合は実装していません。

f:id:kazuhironagai77:20210613201633p:plain

以下のFalseの時の実装の事です。

f:id:kazuhironagai77:20210613201649p:plain

アイテムの獲得方法ですが、単に戦闘終了後に貰えるのではなく、以下の様なのを考えています。

戦闘終了後、アイテムが貰える場合は、9体ある像のどれかに一回だけ話せるようになります。

f:id:kazuhironagai77:20210613201707p:plain

天使の像です。

f:id:kazuhironagai77:20210613201732p:plain

50%の確率でアイテムが貰えます。

裏切りの像です。

f:id:kazuhironagai77:20210613201749p:plain

25%の確率で特別なパスが貰えます。

像1です。

この像の名前は像1としか書かれていません。逃亡した奴隷の像とでも名付けます。

f:id:kazuhironagai77:20210613201807p:plain

50%の確率でHPを全快にしてくれます。

角の像です。

何ですかね。この名前のセンスは。せめて角のある人の像と名付けて欲しいですね。

f:id:kazuhironagai77:20210613201824p:plain

50%の確率でMPを全快にしてくれます。

頭蓋骨です。

f:id:kazuhironagai77:20210613201840p:plain

50%の確率でHPとMPを全回復します。しかし10%の確率で死にます。

以下の3体の像に関してはまだ何も考えていません。

f:id:kazuhironagai77:20210613201856p:plain

こんな感じで戦闘後のアイテムが貰えるようにします。

以下はそれ以外の問題点についてです。

  • 途中から凄い退屈になった。戦闘しても勝てるのが分かっているから作業感が半端じゃない。
  • 戦闘画面に移る時に、後ろからモンスターに襲われるときと、自分からモンスターの後ろを襲うとき、は普通の戦闘と同じ始まり方で良いのかと思った。
  • もっと戦闘にメリハリが欲しくなった。途中までは戦闘も楽しかったが、戦闘しても勝てるのが分かっているからつまらなくなる。

これらは一見別々な問題について語っている様で、同じ問題について論じています。戦闘の結果、勝利するのが100%予測出来るのでつまらなくなっているんです。

f:id:kazuhironagai77:20210613201934p:plain

最初の10回位までは戦闘も楽しいんです。何故かと言うと以下のサイクルが発生するからです。

  1. 何とか実力でモンスターを一体倒す。
  2. しかし次の戦闘に勝つための十分なHPとMPはない。
  3. たまたまLevelが上がる事でHPとMPが回復。次の戦闘も勝つ事が出来る。

今回の戦闘は勝てる。次の戦闘は勝てない。の状態で戦闘に勝ちます。しかし戦闘画面からLandscape4に戻ったら別なモンスターと直ぐに戦闘になります。そうなったら戦闘で負けて死にます。その予測がかなり濃厚になった時にLevelが上がる訳です。Levelが上がる事でHPとMPが回復して次の戦闘は勝てるように成る訳です。

これは楽しいです。

所が、LevelがMaxまで上がると今回の戦闘も勝てる、次の戦闘も勝てる状態になります。それがつまらなくなるんです。

それでこんな事を考えました。

今までWarpは無料で出来るように作っていました。これを有料にします。といってもお金ではありません。パスというアイテムが必要になります。Map1からLandscape4にWarpするにはパスが1枚必要です。みたいにします。このパスはお金では買えません。

戦闘に勝つとこのパスを手に入れられるようにします。

Levelが低い時は兎に角。HPとMPを回復させる必要があります。

f:id:kazuhironagai77:20210613201959p:plain

ので天使の像にお祈りして回復アイテムをもらう一択になります。

LevelがMaxになり回復アイテムがそんなに重要でなくなったら、裏切りの像でお祈りしてパスを集める戦略に変更出来ます。

f:id:kazuhironagai77:20210613202018p:plain

これで戦闘も退屈ではなくなるはずです。

となると最初にする事はMonsterを倒した時にアイテムが手に入るようにする事ですね。

<一端倒したモンスターが絶対復活しないので帰りは楽だった。

何時、Monsterは復活出来るのかを決めていませんでした。

以下の条件でMonsterは復活すべきです。

  • ワープをした時
  • 宿屋で寝た時
  • Saveした時
  • 夜になった時

縄張り内のMonsterを全部倒した場合、帰りは楽になります。でも夜になればMonsterは復活するので楽なのは一時だけです。いいと思います。

<地面が明かる過ぎる>

以下にLandscape4の地面を示します。

f:id:kazuhironagai77:20210613202052p:plain

確かに明るいです。

地面をもっと暗くする方法は幾つか考えられます。

まずはDirectional LightのIntensityを下げる方法です。

f:id:kazuhironagai77:20210613202108p:plain

次はSky Lightの以下のParameterを弄る事です。

f:id:kazuhironagai77:20210613202124p:plain

更にLandscape4はまだGood Skyを実装していません。Good Skyを実装して昼夜が出来たら、地面が明るすぎるのは朝の一時期だけになるかもしれません。

f:id:kazuhironagai77:20210613202144p:plain

まずはGood Skyを実装する事から始めます。

5. Monster Zone の更なる作成

残りのMonster Zoneの作成もしていきます。

f:id:kazuhironagai77:20210613202219p:plain

5.1 Monster Zone 4 の作成

やり方は先週作成したMonster Zone 3と全く一緒です。

先週、Monster Zone 3を作成した方法はマニュアル化出来ているはずなので、全く同じ方法でMonster Zone 4を作成してみます。

Block、Territory、Triggerを追加します。

f:id:kazuhironagai77:20210613202242p:plain

Monsterを静的に配置します。

f:id:kazuhironagai77:20210613202257p:plain

以下の様になっています。

f:id:kazuhironagai77:20210613202316p:plain

Monsterを動的に生成するためにMonster Spawn DataをRPG Game Instance BPに作成します。

f:id:kazuhironagai77:20210613202331p:plain

この配列に先程、静的に配置したMonsterのデータを写します。

f:id:kazuhironagai77:20210613202346p:plain

このData TableからMonsterを生成するようにします。

Monster Zone ActorのGet Monster Spawn Data関数をMonster Territory Number が4だった場合にも対応できるようにします。

f:id:kazuhironagai77:20210613202402p:plain

これでMonster Zone 4のMonster は動的に生成されるはずです。

Monster Zone 4のMonster が倒された時にMonster Spawn Data Landscape 4-4のデータを書き変えるようにしましょう。

RPGGameBaseBPのRemove Defeated Monster関数にMonster Territory Number が4だった場合の対応を実装させました。

f:id:kazuhironagai77:20210613202418p:plain

これでMonster Zone 4 でMonsterと戦闘しても問題ないはずです。

ここまではMonster Zone 3の作成方法と一字一句同じやり方で出来ました。

しかしRemove Defeated Monster from Landscape4()関数の内容がかなり複雑になってしまいMonster Zone 4の実装にかなり時間がかかりました。

f:id:kazuhironagai77:20210613202437p:plain

先週は要らないと言いましたがやはりMonster Zone の部分は関数化する必要があります。後でやります。

テストします。

Block 4に侵入しました。

f:id:kazuhironagai77:20210613202506p:plain

Monsterが生成されています。

次にBlock 4から退散してみます。

f:id:kazuhironagai77:20210613202601p:plain

戦闘してみます。

f:id:kazuhironagai77:20210613202617p:plain

Monster Zone 4に発生するMonster 9匹を倒しました。特にバグが発生する事もありませんでした。

Block内に侵入したり退出したりを繰り返しました。

f:id:kazuhironagai77:20210613202634p:plain

これも大丈夫でした。

正し、死体になったMonsterが引きずられるように移動するバグはそのままです。これは後で直します。

5.2 Remove Defeated Monster from Landscape4関数の直し

Remove Defeated Monster from Landscape4 Helper関数を作成します。

f:id:kazuhironagai77:20210613202655p:plain

実装部は以下の様になっています。

f:id:kazuhironagai77:20210613202722p:plain

Remove Defeated Monster from Landscape4関数の実装部は以下の様になりました。

f:id:kazuhironagai77:20210613202740p:plain

正直あんまり綺麗になっていません。Switch 関数の場合にどうやってNodeを整理するかの正しい方法が分かりません。

取り敢えずこれでテストしてみます。

Monster Zone 1をテストしました。問題ないです。

Monster Zone 2もテストしました。問題ないです。

Monster Zone 3もテストしました。流石に飽きて来ました。全部のモンスターは倒しませんでしたが、多分問題なしです。

Monster Zone 4もちょっとだけテストしました。多分問題なしです。

5.3 Monster Zone 5、6、7 の作成

残りのMonster Zoneも作ってしまいます。

Monster Zone 5です。

f:id:kazuhironagai77:20210613202808p:plain

テストもしました。

f:id:kazuhironagai77:20210613202823p:plain

25体もMonsterがいるので最強装備で倒しました。バグはありませんでした。

Monster Zone 6です。

f:id:kazuhironagai77:20210613202856p:plain

21体のMonsterを全部倒しました。

f:id:kazuhironagai77:20210613202913p:plain

バグはなかったです。

Landscape 4の最後のMonster Zone であるMonster Zone 7を作成します。

f:id:kazuhironagai77:20210613202944p:plain

36体のモンスターを配置しました。

テストで全部倒しました。

f:id:kazuhironagai77:20210613203006p:plain

バグはなかったです。

これでMonster Zoneは完成です。

5.3 Monster Zone のバグの直し

今週は時間が無くなってしまったので来週やります。

6. まとめと感想

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

  • Niagara の勉強としてRibbon Effectの復習
  • Cascadeの勉強としてMesh Material Module、別々のEmitterにある二つの同じ種類のModuleをLinkする方法
  • Monster Zoneの改良というかこのゲームの改善すべき点に対する考察
  • 残りのMonster Zoneの作成

来週は以下の事をやります。

  • Niagara の勉強とCascadeの勉強
  • Monster Zoneのバグの直し
  • ゲームの改善点の直し

今週はやる気が出なくて、一日お休みしました。休んだらやる気が戻りましたが正直、二度とやる気が戻らないかと思って焦りました。やる気を維持する為には、良く寝る事と成果を吐き出せる場所がある事が大切と理解しました。

7. 参照(reference

[1] Epic Games. (n.d.-a). Create a Ribbon Effect in Niagara. Unreal Engine Documentation. Retrieved June 13, 2021, from https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Niagara/HowTo/RibbonEffect/

[2] Epic Games. (n.d.-f). Particle System Reference. Unreal Engine Documentation. Retrieved June 13, 2021, from https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/ParticleSystems/Reference/

[3] Epic Games. (n.d.-e). Niagara Visual Effects. Unreal Engine Documentation. Retrieved June 13, 2021, from https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Niagara/

[4] Epic Games. (n.d.-c). Emitter Update Group. Unreal Engine Documentation. Retrieved June 13, 2021, from https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Niagara/EmitterReference/EmitterUpdate/

[5] Epic Games. (n.d.-b). Create a Ribbon Effect in Niagara. Unreal Engine Documentation. Retrieved June 13, 2021, from https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Niagara/HowTo/RibbonEffect/

[6] gameDev Outpost. (2020, September 17). UE4 - Niagara Parameters [Video]. YouTube. https://www.youtube.com/watch?v=7Nally9pWq4

[7] Epic Games. (n.d.-g). Particle Update Group. Unreal Engine Documentation. Retrieved June 13, 2021, from https://docs.unrealengine.com/4.26/en-US/RenderingAndGraphics/Niagara/EmitterReference/ParticleUpdate/

[8] CGHOW. (2021, March 19). All Forces Modules in UE4 Niagara Explained [Video]. YouTube. https://www.youtube.com/watch?v=iW867tJ93lU

[9] Unreal Engine. (n.d.). Introduction to Cascade | v4.2 | Unreal Engine. YouTube. Retrieved June 13, 2021, from https://www.youtube.com/playlist?list=PLZlv_N0_O1gYDLyB3LVfjYIcbBe8NqR8t

[10] Epic Games. (n.d.-d). Linking modules within cascade - UE4 AnswerHub. UE4 ANSWER HUB. Retrieved June 13, 2021, from https://answers.unrealengine.com/questions/407178/linking-modules-within-cascade.html