<前文>
<アメリカ史観における原爆投下>
火垂るの墓と言うアニメがあります。
アメリカ人の間では概ね「当時の日本人の目から見た戦争の悲惨さを描いた良作である。」との評価を得ています。
このようにアメリカ人は、結構、相手の立場に立って考える事が出来き、その結果、自分と違う考え方の人との接点を見つける事が出来ます。
所で逆に、我々日本人は、アメリカ史観から見た第二次世界大戦をどれだけ理解しているのでしょうか?
そしてそのアメリカ史観に基づいて、日本の国益や日本人の利益を守るための議論をどれだけ出来るでしょうか?
今週はそんなお話です。
アメリカ政府は、連日のロシア軍のウクライナへの攻撃に対して、アメリカではプーチン大統領並びにロシア軍に対して戦争犯罪を犯していると大抗議しています。
しかし一般のアメリカ人からは、
「ウクライナ市民への攻撃や都市への空爆が戦争犯罪なら、広島や長崎への原爆投下は戦争犯罪じゃないのか?」
との疑問が挙がりました。
これに対するアメリカ人が考える正しい解答がRedditに載っていました。
多くの日本人にとっては、この考え方は初めて聞くモノだと思います。しかしその考え方は、日本人なら全員、知っておくべき内容だと思いました。ので、今週はそれを紹介します。
まず、戦争犯罪は負けた方だけが裁かれると言う考え方です。
戦争で勝った方の戦争犯罪は裁く方がいないのでやったもん勝ちと言う考え方です。
個人的には、これはかなり真実な気がします。
この人達は、広島や長崎の原爆投下も戦争犯罪であるが、アメリカの戦争犯罪を裁ける国はないから、裁かれていないだけ。と考えています。
次の意見は、最初のに似ていますが、戦争で負けるのが戦争犯罪になると言う考え方です。
正義も糞もない考え方ですが、これもかなり真実です。勝った方が負けた方に全部、責任を押し付けてお終いと言う考え方です。
ただ、これを公に認めると次の戦争から何をしても勝つしかなくなります。
それこそ、核でも化学、生物兵器、何でも使用するようになるし、戦争が始まったら焦土になるまで戦い続けるしかなくなります。だからこの意見を言う人は、回りからかなり批判されます。が、その批判はこの解答に対してあんまり説得力がないです。
この意見を言う人達が、根拠にするのがNuremberg裁判で、戦争が終わってからドイツを裁く法律を作って遡ってナチスを裁いた事を上げています。
ここまでは知的階級というか、法律や歴史、国際関係の専門家の意見で、アメリカ人全体からすると極めて少数です。少数ですが専門家の意見なのでそれなりに尊重されて扱われます。
こっからが一般的なアメリカ人の考え方になります。
広島や長崎の原爆投下が戦争の早期終結につながったので、必要悪だった。
この意見を聞くと、日本人ではかなり怒る人がいますが、実はこの意見、アメリカ人の間でもかなり穏健派に属する人達の意見です。左派の人が多く、マイノリティーのために自らを犠牲にして活動してくれたりする良い人が多いです。
次の意見がアメリカ人の大半が思っている意見で大体、70~85%位のアメリカ人はこの意見が正しいと思っています。
日本は、原爆を落とされてもしょうがない程、悪い事(特に中国に対して)をしていたので、広島や長崎の原爆投下は犯罪ではない。
はい。
原爆投下より罪が重い事って何なんでしょうね?
例え旧日本軍部の関連が、そんな凄い戦争犯罪をしていたとしても、その罪を関係ない市民が償う必要があるんでしょうかね。
もう、日本人としてはこの考え方に対しては色々言いたい事がありますが、兎に角、これが大多数のアメリカ人の考える広島や長崎の原爆投下への正しい歴史観です。
そして、ここからが私が言いたいポイントです。
この考え方が正しいかどうかが問題ではなく、この考え方を軸にして世界の人は議論を発展させて、何が正しいのかを決定していくんです。
例えば、そのRedditの議論は、以下の様な流れで進んでいきました。
まず、ロシアよりの意見を代弁する人たちが、日本と同じ罪をウクライナがやっている。だから原爆使用しても犯罪じゃないと言おうとしています。
それに対してアメリカよりの意見を代弁する人たちは、日本の罪はそんな軽いもんじゃないです。とんでもない罪を犯していたんです。と主張して始めています。どんな罪なのかは分かりません。
そこに中国が直ぐに乗って来ました。
私は、昔から中国の政府機関がReddit内でスパイ活動を行っていると思っていますが、この意見を言っている人も中国のスパイだと思います。
日本が第二次世界大戦中に中国に対して犯した犯罪はとんでもないものである。それはアメリカの言っている通りである。更に日本はその事に対して十分な謝罪がされていない。と主張します。
それに対して、アメリカ寄りの意見を代弁する人たちは、前後の日本人は2発の原爆投下で悔い改めた(Repentance)のでもう今の日本人に罪を問う必要はない。と返します。
(この悔い改めた(Repentance)も英語で議論する時には非常に重要な概念になりますが、今回の主旨とは離れてしまうので無視します。)
すると中国側は、本当にそうでしょうか?と突っ込んできます。
そこで中国側は731部隊と皇族との関係を持ち出し、日本が皇族を戦犯として裁いていないのは日本人が悔い改めた(Repentance)ふりをしているからである。と主張し始めます。
これは、アメリカよりの意見を言う人たちにとってもかなり衝撃(正直、私もびっくりしました)だったらしく、中国の言っている事は一理あります。と答えていました。
もっともうがった見方をすれば、中国の発言は日本がこんなに悪い事をしていたから原爆落としても良いと言うアメリカ人の主張を補佐してくれる意見です。なのでアメリカ人にとっては受け入れられやすい意見でもあります。
そして中国側が、アメリカ側にこう切り出しました。
日本が、第二次世界大戦中に中国に対して犯した犯罪を、これからアメリカが厳しく取り締まるなら、中国としてはアメリカに協力しても良い。と
そしてアメリカよりの意見を代弁する人達も何となくですが、それがBestかなって感じで話が進んでいきました。
これ読んで私は、今回の戦争で中国がロシアを裏切ってアメリカに付く事が有れば、それはアメリカが日本を中国に売る約束を裏でした時だなと思いました。
まあ、それは兎も角としても、中国にしてもロシアにしても、英語で議論する時は、アメリカ史観に合わせて論理を展開します。そして日本や日本人も英語で会話する時、つまりほとんどの外国人と会話する時は、そのアメリカ史観に基づいて議論しなければ、自分達の意見を聞いてもらえない事態になります。
それでは今週の勉強を始めます。
<本文>
1.今週の予定
先週と基本的に同じです。
- Niagara: CGHOW氏のTutorialをやる
- Material :Projectionの勉強の復習
- RPGのStoryの改善
- Open Worldの検証
- World Machineの勉強
- 雪山のMapの作成
- Game Design:ポケモン+HxHの念能力( 戦闘システムの作成)
- Blenderの勉強
Lumenの勉強は中止します。
2.Niagara: CGHOW氏のTutorialをやる
今週は Coin FX in UE4 Niagara Tutorial [1]を勉強する事にしました。
こんな感じのEffectです。
これも多分ですがMeshを使用して作成するはずです。
2.1 Coin FX in UE4 Niagara Tutorial [1]を軽く見る
どうやって勉強するのかの作戦を考えるためにまず軽く見ます。
前半は、コインのEffectの作成についてで、使用するコインをMayaで作成しています。
後半が、以下のMaterialを使用した
以下に示したようなEffectの作成をしています。
こっちの方が複雑で、一回見ただけでは何をやっているのか良く分からなかったです。
まあ、やってみましょう。
2.2 Coinを作成する
以下の様に作成しました。
ちょっとだけTutorialとは違いますが、取りあえずこれでやってみます。
以下の部分を変更して、FBXでExportします。
UE5でImportしました。
CoinのUV Mapです。
Materialを以下の様に作成しました。
こんな色になりました。
角度を変えてみます。
Meshの粗さは目立ちます。
色々微調整して以下の様にしました。
取りあえず、これを使用します。
2.3 Coin Emitterを作成する
いつものようにNSにFountainを追加して作成します。
Render SectionのSprite Renderer Moduleを消してMesh Renderer Moduleを追加します。
Mesh Renderer ModuleのMeshに先程作成したCoinを追加します。
こんな感じです。
この時点でかなり良い感じです。
要らないModuleを全部外して、
以下の様な状態にしました。
Coinの数を10枚に増やします。
Emitter Update SectionのSpawn Burst Instantaneous Moduleの
Spawn Countを10にします。
当然、これだけだと、同じ位置に10枚のCoinが生成されているだけなので
Initialize Particle SectionにSet Particle Position Moduleを追加して
以下の様な設定にします。
Zの高さをそれぞれのCoinに沿って変えたいので、Return Normalized Exec IndexにCoinの厚さを掛けた物を返します。
結果です。
うーん。Coinの厚さが200cmもあるのかこれは。
実際にPlay画面で見るとそんなに厚くはないですね。
精々、40 cm位です。
単位が良く分からないです。
このCoinが空から落ちて来るEffectを作成します。
Particle Update Sectionに先程、Particle Spawn Sectionに作成したPositionをDuplicateしてセットします。
Coinが落下するAnimationを表示するように以下の設定を組みます。
結果です。
ゆっくり過ぎて落下している感じじゃないです。
Life timeを調節する事で落下速度を早くします。
Particle Spawn SectionのInitialize Particle Moduleの
Life Timeを0.5に下げました。
更に、Emitter Update SectionのEmitter State Moduleの
Loop Durationに1.5をセットします。
こんな感じに成りました。
随分、早くなりました。
今度はCoinが落ちる時に、少しばらける様にします。
まず、Particle Update SectionのPositionの
Curveの値を以下の様に変更します。
そしてBの値を
以下の様にCurveにします。
結果です。
Tutorialの続きを見てたら、さっきのCurve間違っていた。こっちが正しかったと突然変更になりました。
こんな感じです。
色々な数のCoinに対応出来る様に改良します。
Emitter Parameterに新しいParameter、Position Gap Calを追加します。
Emitter Spawn SectionでPosition Gap Calの値をセットします。
後はこのParameterを必要な個所で使用するだけです。
Emitter Update SectionのSpawn Burst Instantaneous Moduleの
Spawn Countに先程、作成したParameterであるPosition Gap Calをセットします。
更にParticle Spawn SectionのSet Particle Position Moduleの
BにMultiply FloatをセットしてAに20.0、BにMake Float From Intをセットし
BにPosition Gap Calをセットします。
最後にParticle Update SectionのSet Particle Positionの
BのCurveに以下の値をセットします。
結果です。
Coinが5枚の時です。
7枚の時です。
勿論、10枚の時も大丈夫です。
Userが自由にこの値を変更出来る様にします。
以下に示した様にEmitter Spawn SectionのPosition Gap Calを
User Parameterに変更します。
やり方は以下の様にRead from New User Parameterを選択するだけだそうです。
SystemのSystem SettingにUser Parameters Moduleが追加されました。
選択すると以下に示した様になっていました。
Level上に並べてそれぞれの
を変更すると以下に示した様になりました。
角度によってはかなり綺麗に見えます。
ただ、はっきり言って汚くなっている箇所も結構あります
以下に示した黒い部分の境界はカクカクし過ぎて汚いです。
なんでこういうのが発生するのかは分かりません。
PCの能力不足でしょうか?
2.3 アニメ調のEffectに変更してみる
先週の考察で、まず黒枠の作成が必要であると悟ったので、
以下の方法でNormal のBの値が低い部分を黒くしてみました。
結構望み通りの黒枠が出来ました。
所が横から見ると、
Coinの横が真っ黒になってしまっています。
これ以外の方法は思いつきませんでした。
これから黒枠の作り方を研究します。
こんなの簡単に思いつくだろと思ったんですが以外と難しいです。Normal Mapの隣の値が取れるのなら、それと比較する事が出来るんですが、そのやり方が分かりません。
Fresnelノードを使って2色にします。
うーん。
あんまりですね。
これは適当にやっても上手く行くものではないですね。
本当は、今週からは、このように自分で工夫して改良して独自のアニメ調のEffectの作成をする方を主力にして行こうと思ったんですが思ったより難しいです。
これだけやっていると本当に時間の無駄になりかねないです。
それで考えたんですが、黒枠が出せれば後は黒枠とCGHOW氏のTutorialをミックスさせることでアニメ調のEffectに改良出来ると思うんです。
まず黒枠の作成方法を勉強してみるのが手かもしれません。
3.Material : Projectionの勉強の復習
今週はProjection Series の最後のTutorial、Tri planar Projection Normal Maps - Shader Graph Basics - Episode 30 [2] を復習します。
3.1 前の勉強の復習
以前、何を勉強したのかの確認を行います。
<2022-02-06のBlogの復習>
兎に角、難しくて理解出来ないかもしれないと書いてあります。それでも敢えてまとめると以下の様に成ると書かれていました。
今、ほぼ完全に理解した後でこのまとめを見ると大体合っています。
全然理解出来ない状態からは程遠いです。
それでは具体的に見て行きます。
前の週に作成した上下左右のあるTexture用のTri-Planar ProjectionのMaterialを使用しています。Material Functionは使用していませんね。
アー良かった。
先週、Material Functionを作成するのは面倒だったので結局やらなかったんです。今週、Material Functionの作成からやり直さないといけなかったら大変でした。
View Port 1のView ModeをWorld Normalにセットしています。
地味な部分ですが、この辺のやり方は完全に忘れていました。
その通りですが、今回はこの辺の復習はパスする事にします。前回、全部確認して一応、自分の解釈で合っているとの確証を得たのと、これ以上掘っても新しい事実はそうそう見つからないと考えられるからです。
その後で、正しいNormal Mapと先週、作成したTri-planar Projectionを使用したNormal Mapを比較して先週、作成したTri-planar ProjectionがNormal Mapを正しく表示していない事を確認しています。
確か、これより簡単に確認出来る方法を後で、編み出したはずです。その辺はしっかり確認する事にします。
この後、何でNormal Mapを使用した場合、間違った結果になるのかについて解説しています。
この辺は全く覚えていません。
以下の様にまとめられていました。
うーん。
Normal Mapを展開するCoordinateと通常のTextureを展開するCoordinateが違うと言う事は分かっていますが、どう違うのか今でも分かっていません。
更に、Normal Mapを展開するのはTangent Spaceですが、通常のTextureを展開するのはどのCoordinateなのかも分かっていません。上記に書かれたようにWorld SpaceだとするとProjectionと同じになってしまうので、Tutorialの言う通りUV Space上が正しい気もします。でもLocal Spaceが一番正しいような気もします。今週はこの辺をしっかり確認しましょう。
この部分は今回もスキップします。
Ben 先生の以下のセリフだけ覚えておきます。
ここから具体的な実装に入ります。
Normal MapにおけるTri-Planar Projectionの計算結果をResult ノードのNormalに接続している箇所の直しです。
通常のTextureはWorld Spaceの座標内に存在していると考えて計算されています。しかしNormal MapはTangent Spaceにあると考えて計算されています。
ので、Transform Vectorノードを使用して座標変換を行います。
うーん。この説明を見ると、先程の通常のTextureが展開される空間は、World Spaceで問題ないみたいです。はい。
この後で、Tri-Planar Projectionの結果と正しいNormal Mapを比較して
と結論づけています。
そして
これは正しいですが、この後、何をしているのか理解出来なくなってTutorialの言うままに作成しています。
今、覚えている範囲で、ここで何をしているのかをまとめるとNormal MapのCoordinateはTangent Spaceのものなので、通常のTextureの計算と合うようにWorld Spaceに変換したはずです。
その上で、軸の間違いを調整したはずです。
ただこの辺は、この週の次の週(2022-02-14のBlog)の検証で詳しくやっているはずなので、ここでは深く入り込みません。
<2022-02-14のBlogの復習>
この週の前の週(2022-02-06のBlog)の勉強は、Normal MapのTri-PlanarのProjectionの作成方法について
の様にまとめましたが、最後の間違いの部分を一つ一つ直して行く具体的な方法の意味が全く理解出来ませんでした。
確か、この週の勉強でその具体的な方法が何をやっているのかを解明したはずです。その辺に注目しながらBlogを読んでいきます。
最初から、凄い弱気になって出来なかった時の伏線を張っています。
この回のBlogは本当によくやったと思います。まさかこの状態から、具体的な実装が何をやっているのかをほぼ完全に解明したんですから。
アメリカの諺でGarbage in, garbage outというのがありますが、この逆もまた真ですね。Ben 先生の尋常ならざる優れた教育で勉強すると、その勉強成果もまた非凡な結果に成ると言う良い見本です。
Ben 先生のような優秀な人を指す四字熟語ってないのかなと思って調べたら、なかったです。
良く考えたら、英語で賢者を意味するGuruとかPunditって複雑過ぎて普通の人が理解出来ない事象を、普通の人が理解出来るように説明出来る人ってニュアンスがあります。
こういう発想自体が、東アジア自体にないですね。
「普通の人が理解出来ない内容を理解出来る僕、えらい。」から「普通の人が理解出来ない内容を、普通の人が理解出来るように説明出来る僕、えらい。」にならずに「普通の人が理解出来たら僕えらく無くなるから、絶対、分かり易く解説しない。」に変化してしまうのは何でなんでしょうね。
神ならざる私にこの理由を解明出来る訳ありませんが、東アジア人の賢人層が、アメリカ人の賢人層に比べて器が小っちゃく見えてしまうのは仕方ないですね。
何となく実装方法を検査しても何も理解出来ないで終わるのは予測出来ます。ので仮説を立ててその仮説に基づいて検証すると言っています。
以下にその仮説を示します。
うーん。
今思えば、この仮説を立てた事が、実装内容が理解出来た原因です。確か、最初の仮説は間違っていて次の仮説が合っていたはずです。
でも大切なのは仮説を立てて検証する事だったんです。
しかし、この週のBlogは神懸っています。単に仮説を立てただけじゃなくて、その仮説の根拠をまず言及しています。
まず最初の仮説である「Tangent SpaceからWorld Spaceへの変換」を実装しているの根拠です。
あれ。
これ読むと最初の仮説も正しい。と言うかこれは何処かでやる必要がありますよね。
何か今の自分の理解も少し混乱しているかもしれません。
このままBlogの流れを追っていきます。
次に以下の部分が、この週の前の前の週にやった上下左右のあるTextureの裏表を直すのに使用した実装と全く同じ事をしているので
同じ事をここでもしているのだと言う仮説です。
うーん。
やっぱり最初の仮説も正しいし、この仮説も正しいはずです。
気になったので、この週のBlogを最後まで読みました。そしたら分かりました。
間違っていたのはこの2番目の仮説で、ここでやっている実装は全て、最初の仮説である「Tangent SpaceからWorld Spaceへの変換」を実装しているだけでした。
その中で、この週の前の前の週にやった上下左右のあるTextureの裏表を直すのに使用した実装と全く同じ事をする必要があったために、たまたま、その実装を使用したのでした。
はい。
それではまた続きをまとめます。
最初の部分の実装をみます。
これを調べている内に、Tangent Spaceの座標が分からない事に気が付いて、それを先に調べる事にしました。
Tangent Spaceは簡単に言えば、それぞれのVertex上にある座標軸と言う事がわかりました。
が以下の2点が良く分からないと言っています。
この辺、非常に鋭いです。
2番目の疑問はすぐに解消しました。
この後で、Normal MapをBase Colorとして使用した以下の図を利用して
Tangent Spaceの座標が以下の様になると予測しています。
一応、今の時点ではこの座標軸は正しいとなっています。
次に以下の様なBoxにNormal MapをBase Colorとして表示します。
これでWorld Spaceの座標と、Tangent Spaceの座標の違いを検討しました。その結果、
と言う事が判明しました。
おおお。です。今読み直しても鳥肌ものです。
そしてこれが、Tutorialの実装である
部分と完全に一致している事が分かりました。
次の変換部分ですが、
以下の様に書かれていました。
つまり、何故これをやっているのか今一良く分からない。Vertex Normal WSノードとAbsolute World Positionノードの関係が良く分からないので良く分からないと書いています。
うーん。
この部分の解明は今回頑張ります。
最後の変換部分です。
Signを使用して、TextureのProjectionの裏返しの向きを直す実装と全く同じやつです。
Blogの説明だと全部の手順が分からないですね。
Projectから前の実装を探してきました。
以下の様な実装でした。
上下左右あるTextureの裏返しを直すやり方と全く同じでです。結果も同じになるでしょう。
後、実装を確認したらこれは実装の最後の部分ではなく最後から2番目の部分で、
が最後でした。
分かりました。やっている事は3つだけです。
以下の計算結果を
それぞれの軸のxに掛ける。
-1を掛ける。
Vertex Normal WSと
を行う。
この3つを行使して軸の向きを直します。
<復習まとめ>
Tri planar Projection Normal Maps - Shader Graph Basics - Episode 30 [2]で何をやっているのか大体、思い出しました。
Normal MapをTri-PlanarでProjectionする時は、今までの実装に追加してTangent SpaceとWorld Spaceの座標軸の変換を考える必要があります。
Result ノードのNormal に接続する場合は以下に示した様にTransform Vectorノードを使用するだけです。
Texture Sampleの後でWorld SpaceからTangent Spaceへの変換は非常に複雑です。
まず、Normal MapをBoxに貼りつけてWorld Spaceの座標軸とTangent Spaceの座標軸を比較します。
すると
と言う事が判明します。
ので
その通りに軸を変更します。
更に、以下の手順を追加します。
軸の向きが逆な物は-1を掛けます。
-方面だけX軸が裏返しになっている物は、
を掛けます。
正と負の軸が逆転してる軸は
を掛けます。
以上です。
3.2 Tri planar Projection Normal Maps - Shader Graph Basics - Episode 30 [2]を軽く見る
ほぼ上記の理解で合っているはずですが、もう一回、Tutorialを見て確認します。
結構、説明していませんね。
後、実装する順番ですが、後から計算する方を先に実装していました。逆にやると何か問題が起きるのかもしれません。
3.3 Tri planar Projection Normal Maps - Shader Graph Basics - Episode 30 [2]を復習する
それでは実際に実装します。
Tutorialは球にNormal Mapを貼り付けて比較していましたが、それは分かりにくいので私が2022-02-14のBlogでやったBoxに直接貼り付けるやり方で比較する事にします。
まず先週までの上下左右のあるTextureのProjectionのMaterialを作成します。
<上下左右のあるTextureのProjectionのMaterialの作成>
流石にこの辺になると前の実装方法も忘れて来てるので、復習も兼ねて記録する事にします。
<<Directional Projection>>
一定方向だけ歪みのないProjectionです。
<<Directional Mask>>
歪んでProjectionされている箇所だけMaskします。
<<Tri-Planar Projection>>
一応、低精度のやつも作成しました。
<<上下左右のあるTextureのTri-Planar Projection>>
流石にこれを一から作成するのは骨が折れるので先週のBlogを一寸だけ参考にさせてもらいます。
Grid Textureを貼って確認すると以下の様な結果が出て来ます。
まずXY軸が逆になっているのを直します。
するとProjectionが以下の様になります。
負の軸のProjectionだけ裏返しにする実装は以下のものですが
Xだけ逆なので、
(-1,1,1)を掛けます。
以下の実装になりました。
<Normal Mapの使用>
はい。こうなりました。
ここからTutorialと一寸だけ違うやり方でやる事にします。
まずこのNormal を貼り付けたCubeとWorld Spaceの座標を比較して以下の結果を得ます。
流石にこれを今確認するのは大変なので、これは2022-02-14のBlogのBlogからそのまま持ってきました。
上記の結果から軸だけ抜き出すと、
となります。
まずこの部分を作成します。
結果です。
ここで本当は、
を次にやるんですが、これの意味が今一分かってないので、先にProjectionの直しをやります。
これです。
以下の様に実装しました。
結果、
となりました。
今度はx軸とy軸のyに-1を掛けます。
結果、
あれ、何かオカシクなってしまいました。
うーん。
やっぱり全部確認しながらやらないと訳わからなくなった時にどこまで戻れば良いのか分からなくなります。
もう一回やり直します。今度は全部確認します。
3.4 Tri planar Projection Normal Maps - Shader Graph Basics - Episode 30 [2]をもう一回、復習する
以下の場所からやり直します。
の結果は以下の様になりました。
前回の結果と同じでした。
を掛けます。
結果です。
ここが間違っていました。X軸は正のY軸の向きが直っていました。
今度はx軸とy軸のyに-1を掛けます。
結果です。
うーん。
これなら分かります。
この最後の部分を直すために、
この計算をします。
これ絶対、この方法を編み出した人は行列で解いていますよね。
取りあえずX軸だけやりました。
結果、Back、つまり負のX軸のxの向きが正しくなりました。
全部の軸で実装すると
となり、全ての軸でTangent SpaceからWorld Spaceへの移行が完成しました。
最後、確認のためTransform VectorノードでWorld SpaceからTangent Spaceに戻してNormalに接続します。
結果です。
全ての方向で一致しています。
出来ています。
<3つの実装方法の意味についての仮説>
今週の実装において3つのNormal Mapの向きを変更するための実装方法の機能について、以下の仮説が考えられるようになりました。
今週はもうこれ以上Materialの勉強する時間が取れないので、来週以降検討するための記録をしておきます。
最初の実装です。Signノードを使用するやつです。
掛けた軸の負の側の値のみを裏返します。
上記の場合、Y軸のxにこの計算結果を掛けると、
となると思われます。
-1を掛ける
掛けた軸の正と負の両方の軸の向きを逆にします。
以下の場合、
以下の様になると思われます。
最後の
は
を
する機能があると思われます。
これは来週以降、検討します。
4. RPGのStoryの改善
4.1 兎に角GameをPlayする
GameをPlayして思いついた事を書き記していきます。
まずSkip出来ません。
最初のMoveは一回位見たら十分です。スキップ出来るようにする必要があります。
操作の説明で、Space Keyが抜けていました。
Game を始めるボタンを押したらボタンが初期設定の形に戻ってしまいました。
Map1に移動しました。
Playerの操作するキャラが狩人のままです。弟子に戻す必要があります。
最初から金貨を1000枚も持っています。
最初は所持金は0のはずです。
昼と夜の変化が早すぎます。
時間じゃなくて歩いた歩数で昼と夜が変化するようにしたいです。
最初のNPCの会話はそれなりに分かり易いです。
武器を手に入れる必要がある事が分かります。
宿屋に人がいません。宿に泊まる事が出来ません。
Monsterと戦わないで隣の村に行くための裏道が、寂しすぎます。
Itemを配置して拾えるようにします。
村人の会話は2つの要素が抜けていました。
一つ目は武器を買うために必要なお金をどうやって貯めるのかのヒントです。
もう一つは、実際に武器を手に入れ、Monsterを倒したら、次のMissionを提示するため、会話が変わる必要があります。
山の中に落ちている剣ですが拾っても消えません。
バグです。
以下の警告が2回も表示されます。
掲示板を読んだときのみ表示されるように変更します。
Monsterを倒して、Levelが上がりました。
まず、Levelが上がるのが速過ぎます。最初の一体を倒したらLevelが上がるのは良いかもしれませんが、その後はもう少しゆっくりLevelを上げるように直します。
最初に覚える魔法が弱すぎます。
折角、魔法を覚えたら戦闘で使って見たくなるはずです。効果が凄いけど魔力が足りないから1回しか使用出来ないような強さに設定し直すべきです。
戦闘後の報酬も必ず貰えるようになっています。報酬は20%位の確率でもらえるように設定し直します。
石像の閉じるボタンが紛らわしいです。
はいといいえで、「いいえ」を選択したらWidgetを閉じれるようにします。
Item Shopではまだ全てのItemが買えるようになっています。
職業や、Eventによって買える内容が変化すべきです。
Game Modeの以下の部分がErrorを発していました。
原因は後で解明します。
5.Open Worldの検証
5.1 A Boy and His Kiteを見る
まず、Projectを作成しました。
28GBもあります。
Projectが完成したので開いてみます。
以下に示したWidgetが表示されました。
GDC_Landscape_01.umapを開けばMain Levelが開けるとあります。
World Compositionが聞いているはずなので、全部のSub Levelもついでに開く事はないと思いますが、ちょっと怖いです。が開いてみます。
Persistent Levelには何もないですね。
Levelsを開いてみると
何か想像していたのと違います。
これがSub Levelなんでしょうか?
World Compositionを開きます。
うーん。
これ見ると一辺のサイズは精々20kmですね。
260kmだとこの10倍になりますね。とても出来るとは思いません。
それぞれのLayerを見てみます。
Streaming Distanceは50,000と書かれていました。
と言う事は50,000cm なので500mですね。
こんな小さい点だけ特別に作成したんでしょうか?
Levelsから見ると3つのSub Levelがあります。
Background Levelsを選択したら
原点にあるSub Levelでした。
更にFaunaというLandscapeを持たないSub Levelがありました。
いやそれ以前にこれらはSub Levelなんでしょうか?
Sub Levelだったら以下の部分にPersistent Levelと同じようなLockやOpen Level BP Button が表示されるはずです。
良く分かりません。
取りあえず、Playを押してみます。
結構、PCが音しています。
手前の草が綺麗ですね。
奥の山は、World Machineで作成したんでしょうか?
雲も何らかの方法で作成していますね。
中を探検してみます。
歩いていると草が現れました。
これはProcedural Foliage Toolで作成していそうです。
ここはTexture Repetitionがはっきり見えますね。
水はどの方法で作成したんでしょうか?
一端、Playを停止してSub LevelをLoadして確認する事にします。
一番、重要そうなStarting_shotをLoadしました。
あ。LoadしたらLock Buttonなどが表示されました。
それはそうだわ。
何か今週はボケボケです。
以下のLevelが表示されました。
Landscapeの設定がみたいです。
Landscapeを選択してWorld Outlinerで調べるとLandscapeProxy1となってました。
うーん。LandscapeはtypeにLandscapeと表示されていた気がしますが。
でも使用しているMaterialは載っていました。
これを調べます。
これはMaterial Instanceで元のMaterialは以下の奴です。
開いてみます。
まずは、Procedural Foliage Toolを見てみます。
ありました。
以下のGrass Typeが使用されています。
最初のGreen Grass Type 01を見てみます。
Cull Distanceは5000から始まって8000で終わっています。
UUが1cmならば50mで始まって80mで終わっている事になります。
うーん。
凄い参考になります。
River RockなんかもProcedural Foliage Toolで生成しているんですね。
LandscapeからPaintを選択してLayersを見ると
こんなに沢山のLayerがありました。
しかも全てのLayerはNo Weight Blendを使用していました。
うーん。
Materialに戻ってLayerを探したんですが良く分かりません。
Landscape Layer Blendを使用していません。MatLayerBlend_Standardが使用されています。
良く分かりませんね。
これ以上見ても良く分からないので一端中止します。
一応、確認出来たLandscapeの大きさは25km位で、260kmは良く分からないですね。
でも、分かった事も結構あります。
まず、Stream Levelの設定が5kmになっている事です。
これ位が普通で、それより小さい場合のSeamlessなLoadingは別なLoadを使用すべきなんでしょうね。
草の生成はProcedural Foliage Toolを使用しています。やり方はTutorialに書かれていたのとほぼ同じでした。
LandscapeのLayerはLandscape Layer Blendを使用しないで作成されていました。
このやり方は上級者向けなのか、それとも古いやり方で、Landscape Layer Blendを使用して作成する方がより正しいやり方なのかは不明です。
湖をどうやって作成したのかは、調べませんでした。
後、雲ですね。
明らかに雲が追加されています。この雲の作成方法は勉強する必要があります。
5.2 Creating Open World Landscapes with New UE5 Preview & World Partition [3] を見る
GDi4K氏のTutorialはUEのOpen World 関連のTutorialを上げているのは知っていましたが、見た事ありませんでした。ので今週はGDi4K氏のCreating Open World Landscapes with New UE5 Preview & World Partition [3] を見る事にします。
まず、軽く全部見ました。
かなりしっかりしたTutorialでした。
出来たばかりのTutorialでUE5 Previewを使用して作成しているのも好印象です。
Virtual Textureを使用しています。これが何の事が良く分かりません。
本当は、試しに全部やるつもりだったんですが、このVirtual Textureが初めて聞く機能だったのでちょっと二の足を踏んでしまいました。
5.3 Open Worldの検証の目的の確認
元々、Open Worldの検証の目的は、一辺が16 kmぐらいある巨大なLandscapeをWorld Compositionを使用して作成するのが目的だったんです。
その方法が分からないので、Tutorialで一気に最新かつ最適なやり方を学んでしまおうと思ったんです。
所が、頼りにしていたSmart Poly 氏のTutorialでは、World Machineを使用していたり、Landscapeのサイズそのものが4kmだったりで、そのままでは使用出来ない事が判明したので、他のTutorialを探したんですが良いのが見つかりません。
ちょっとだけ手詰まり感が出て来ました。
5.4 これからの課題
一辺が16 kmぐらいある巨大なOpen Worldを作成するための方法の検証はこれからも続けるべきですが、具体的に毎週、何をするかはきちんと決めておかないと時間だけ浪費して何の成果も生まない結果になってしまいます。
- Landscape作成方法全般の勉強
- Smart Poly氏のTutorialをやる
- 先程のGDi4K氏のTutorialをやる
- World Compositionの復習をやる
この辺の勉強をしつつ16 kmぐらいある巨大なOpen Worldを作成するための方法も検討するというStanceで行く事にします。
6.World Machineの勉強
先週のTutorialが有料版についてしか書かれていなくて、もうWorld Machineの勉強は中止しても良いかなとも思っているですが、山がWorld Machineで生成した物とUE4のLandscapeで生成したのでは全く違う事に気が付きました。
UE4のLandscapeで生成した山がぼっことしていて、悪い意味で漫画チックなんです。
それに比べて、World Machineで作成した山は何て言うか本物の山のようにカクカクしているんです。
この辺の質の違いが何処から来るのか分かりませんが、兎に角違います。
やっぱりこの辺を見るとWorld Machineかそれに類するSoftware の使用方法は勉強する必要があると思います。
6.1 User Guideの 5. Layout Generator [3] を読む
以下の部分が無料版にはないので、出来ないじゃないかと思うんですが、
一番最初に見つけたんですが、このShape Deviceを使用すると
ほぼ似たような事出来るんです。
のでその辺を関連づけながら読んでいきます。
<Layout Generator Options>
この辺の項目は無料版には全くないですね。
Rendering Modeが
と似た機能なような気がします。
Use Breakupですが、
の事でしょうか?
Invert Valuesは
と同じですね。
Shape List Buttonですが、
これの事を指しているのかもしれません。
最後のFile Buttonですが、
がそうでしょう。
全然、無いと思ったら結構類似の機能がありました。
これなら無料版でも結構出来そうです。
<Creating and using Layout Shapes>
あんまり詳しく説明されていません。
色々、自分で弄ってみます。
<<Rectangle>>
以下のようなShapeを作成します。
作成した後で、動かす事は出来ません。
いや出来るのかもしれませんが、その方法は分かりません。
<<Circle>>
基本的にRectangleと同じです。
<Polygon>
左Clickで以下のような形を作成します。
完成したら右Clickします。
Polygonは完成した後で、位置を移動させたり、Vertexを一個だけ選択して移動させたり出来ます。
<Pass>
Passです。
これもPolygonと同じで、左Clickで位置を選択して完成したら右Clickします。
Polygonと同じように一個のVertexを選択して移動させる事が出来ます。
<Subtractする方法>
Tutorialに出来ると書かれているのにやり方が載っていないのがこれです。
以下の図はRectangleで作成したTerrainからCircleを引いたものです。
やり方はCircleを選択した状態でCtrlを押してCircleを作成するだけです。
次は以下の部分の解説です。
しかしこの部分は無料版では使用出来ないみたいです。
<Transforming Shapes>
DragするとShapeを望みの位置に移動出来ると書かれてます。
いや出来なかったはずと思ってもう一回試したら出来ました。
Rectangleの位置を移動させてみました。
更に右Clickすると以下の表示が現れます。
<<Rotate>>
Rotateを選択しました。
Rectangleを回転させる事が出来ました。
<<Scale>>
Scaleを選択すると大きさを変化する事が出来ます。
<<Translate>>
当然ですが位置を移動出来ます。
<<Transformation Center>>
Shiftを押しながら回転させると中心が変わるとありますが、差がないですね。
良く分かりません。
<Vertex-based shape options>
PolygonとPathについてです。
PolygonでTerrainを作成して右Clickしてみたら
<<Bezier Path>>
Bezier Pathを選択すると以下に示した様にVertexが2点に分割されVertex同士のInterpolationの角度を変更出来ます。
<<Perform Curve Smoothing>>
これはTutorialには解説が無かったんですが、試したら
これが
こんな感じにSmoothになりました。
<Vertex Editing>
一つ一つのVertexも編集出来るそうです。
RectangleのVertexにもあるのか試したら無かったです。
<<Enter Precise Value>>
以下の様にVertexの位置を値で指定する事が出来ます。
<<Value Key-Point>>
Tutorialには「選択したVertexがInterpolateするのかそれともKey Frameとして手動で値を持つのか決めます。」と書かれていますが、VertexがInterpolationで値が決まる事があるんでしょうか?
ああ、何となく分かりました。
Vertexの値がInterpolateする時、それはSmooth Curveを適用した時です。
Value Key-Pointを選択したままSmooth Curveを掛けてみました。
以下に示した様にValue Key-Pointを選択したVertexの位置は変化していない歪みを生じています。
今度はValue Key-Pointを外してSmooth Curveを掛けてみました。
うーん。あんまり変わらないですね。
良く分かりません。
<<Delete Vertex>>
当然Vertexを消します。
<<Subdivide Vertex>>
以下に示したVertexのうち真ん中のVertexのSubdivide Vertexを選択しました。
以下に示した様な結果に成りました。
となりのVertexの中点に2つの新しいVertexが生成されました。
<<Break Vertex Welds>>
これは無料版は使用出来ないみたいです。
<<Vertexを選択したままの状態で、右ClickをしながらDragすると>>
以下に示したGraphが表示されそれぞれのVertexの高さを調節出来るそうです。
無料版でも、この機能は使えるんですが、実際のVertexの高さは変化してないみたいです。
<Vertex Welding>
Weldingとは溶接と言う意味です。
2つのVertexを重ねると出来るみたいに書かれていますが、出来ているのか良く分かりません。
以下の図で2つのVertexを重ねました。
この状態で下に示したPolygonの部分を移動させてます。
すると以下に示した様に
Passの形状も同時に変化しました。
うーん。
出来ていました。
更にこの状態だと
Break Vertex Weldsが使用出来るようになってます。
Break Vertex Weldsを選択してPolygonを移動させると
今度はPassはPolygonの動きに従って移動しなくなりました。
あれ?
今気が付いたんですが、
が使えるようになっています。
これ、Shapeを選択した状態じゃないと使用出来ないんですね。
これは最後に勉強します。
<Fractal Breakup>
これは恐らく以下の部分の解説ですね。
<<Intensity>>
Intensityを上げると
以下の様に成ります。
<<Frequency>>
FrequencyですがIntensityが0の時は何の変化もしません。Frequencyが高い時は大きな変化を示しました。
以下のTerrainはFrequencyが0の状態です。
今度はFrequencyを最大まで上げました。
はい。
<<Roughness>>
Roughnessが0の状態です。
RoughnessがMaxの状態です。
単純にTerrainがゴツゴツすると解釈する事にします。
<Sourcing vs. Modifying terrain with a Layout Generator>
これは以下の様に繋いだ時と
以下の様に繋いだ時
の違いについて述べている様です。
試しに
と繋いでみたら以下の様になりました。
面白いので色々遊んでみました。
以下に示した様なPerlin Noiseで作成したTerrainにShapeで窪地を追加する事も出来ました。
以下のDeviceの
3D Terrainを見ると以下の様になっていました。
凄いです。
うーん。これ商業レベルじゃない?
<Importing and Exporting Shapes>
以下の部分の解説のようです。
Import出来るか試すためにはまずExport出来ないと思ったんですが、Exportは出来ないみたいです。
これが無料版だから出来ないのか、それとも何かをすると出来るようになるのか不明です。
SVG と AI formatで作成された物ならImport出来るそうです。
試しに以下のImageを作成してpngでSaveしてそれをsvgに変換して
Importしてみました。
以下に示したようなへんな図が表示されています。
ちょっと良く分かりませんね。
<Curve Editor>
これは一体何の話をしているのかと見ていたらありました。
ただし選択出来ません。
のでこの勉強はSkepします。
<Shape Properties>
最後に以下の部分の勉強をします。
<<Default Value>>
Default Value (Height)が低い状態です。
Default Value (Height)が高い状態です。
これは想像通りなんですが、この後に以下の方法でVertex単体の高さを変化させる事が出来ないんです。
値自体は変化しているのかもしれませんが、Viewの変化がないです。
<Opacity>
BackgroundとこのShapeの混合具合を示すそうです。
現状、Backgroundは0なのでOpacityが下がるほどShapeが低くなっています。
が
となっています。
<Falloff distance>
これが
こうなります。
FalloffのDirectionはExternalとInternalのどちらかが選択出来ます。
Internalを選択すると
が
のように内側にFalloffします。
FalloffのCurveですが、以下の内のどれかから選択出来ます。
Customを選択すると以下に示した様に
先程、選択出来なかったCurve Editorが選択出来る様になりました。
ただ、Tutorialが説明するような沢山の機能はないみたいです。でもCurveを手動で設定するのに必要な機能は全部ついています。
<<Fade>>
FadeですがTutorialには解説がありません。
Fadeが高い状態です。
Fadeが低い状態です。
FalloffともOpacityとも違う独特の変化をします。
良く読んだらTutorialに説明がありました。
どれくらいFalloffの設定が影響するかを指定していたんですね。
最後のShape Breakupです。
0の時です。
指定したのと全く同じ形状をしています。
最大値の時です。
指定した形と全然、違う形になりました。
指定した形からどれくらい離れるかを管理するみたいですね。
以上です。
今週のWorld MachineのTutorialは非常に勉強になりました。これは勉強して大正解でした。
7.雪山のMapの作成
先週、雪山用のMaterialを途中まで作成して時間が無くなってしまったんでした。
今週はその続きからやって行きます。
7.1 Distance Blendを使用する
はい。もう実装方法を忘れてしまっています。先週のBlogを読み直すと以下の方法で作成するようです。
あ。思い出した。
Distance Blend ノードを使用するんです。
でもこれそれぞれのLayer毎にサイズの違うTextureを用意してやるんでしょうか?
うーん。
もう一回、Unreal Sensei氏のHow to HIDE Texture REPETITION in Unreal Engine - UE4 Tutorial [5]で勉強し直します。
<How to HIDE Texture REPETITION in Unreal Engine - UE4 Tutorial [5]におけるDistance Blendのやり方>
まず以下の様にDistance BlendノードをBase Colorに繋ぎます。
すると以下のScreenshotの赤線で示したような
Blendの境目が見れます。
Start Offsetの値を小さくすると
Blendの境目が遠くに移動します。
今度はBlend Rangeの値を大きくします。
Blendの境目が曖昧になりました。
はい。
これがDistance Blendノードの機能です。
これをそれぞれのLayerのTextureに使用します。
そう。
このやり方が分からないです。
Tutorialでは以下の様に実装していました。
まずLandscapeCoordノードに2種類の値を別々に掛けます。
それぞれ別のTexture Sampleノードに繋ぎます。
Lerpノードでつなぎます。
むむむ。良く分かりました。
でもLerpノードを使用するならDistance Blendノードは白黒で値を返す必要があるんじゃないでしょうか?
私の結果は、白と灰色位なんですけど?
一寸心配なんで以下の様なMaterialを組んでテストします。
結果です。
白黒になっていました。
Distance Blendノードは白黒で値を返していましたね。
<Distance Blendを実装する>
まずLayer1のMaterial functionを以下の様に改良しました。
ParameterではなくFunction Inputを使用しています。
こうする事でそれぞれのLayerでDistance Blendに関するParameterを別々に設定できるからです。
Lerpの部分です。
以下の様にParameterを設定しました。
こんな感じです。
近い状態です。
少し離れた状態です。
離れた状態です。
離れた状態です。
遠いTextureのSizeから調節します。
Texture Size Far = 0.001です。
このサイズだとTexture Repetitionは全くないですね。もう少しサイズを小さくしてみます。
Texture Size Far = 0.01です。
赤線で囲った辺りにTexture Repetitionが出ています。
Texture Size Far = 0.005です。
まだわずかにTexture Repetitionが見られます。
Texture Size Far = 0.0025です。
Texture Repetitionはギリ、分からないぐらいでしょうか。
念のため、Texture Size Far = 0.002に下げました。
取りあえずこれでOKとします。
今度はTexture Size Near の値を調節します。
Texture Size Near = 0.1です。
流石にこれはTexture Repetitionが凄いです。
Texture Size Near = 0.05です。
まだTexture Repetitionがあります。
Texture Size Near = 0.01です。
Texture Repetitionはないですね。
Play画面で確認します。
うーん。
まあ良い感じです。
最終的には以下の様な値になりました。
<Layer Snow BのDistance Blendを調整する>
まず分かり易いように、Layer Snow BのTextureをLandscape全体にPaintしました。
その結果です。
凄いTexture Repetitionしています。
でも離れると
Texture Repetitionは確認出来ないですね。
こっちは色々試したんですが、
近い距離でTexture Repetitionを消す事は出来ませんでした。
多分、駄目なTextureなんでしょう。
このLayerは使用しない事にします。
ただ良く分からない部分もあります。
このTextureを使用するとBlendしている境界が全く分からないです。
うん。
でももうあきらめました。
<DirtのLayer用のDistance Blendを実装する>
以下のMaterial FunctionにDistance Blendを追加します。
出来ました。
内容は前とほぼ一緒なのでスキップします。
結果です。
奥のTextureを直して行きます。
TextureSizeFar=0.01に変更しました。
今度は近くのTextureを直して行きます。
Texture Size Near=0.25の時です。
TextureのSizeが大きすぎます。Texture Repetitionがおきないギリギリまで小さくします。
Texture Size Near=0.3の時です。
これより大きくするとTexture Repetitionが起きてしまいます。
Start Offsetの値を-5000に変更しました。
するとTexture Repetitionが見えます。
まあ、Dirtの部分は少ないのでごまかせるでしょう。
Blendの調整をします。
最終結果です。
Texture Repetitionはどこにもありません。
これだけ調整してコツがわかりました。
Textureは繰り返す回数が多くなると必ずTexture Repetitionが現れます。ので一枚のTextureの数をなるだけ多くする事が大事です。
しかし大きすぎるとPlayerの操作するキャラの周りの地面とかに違和感が生じます。
のでそこだけは必ず正しいサイズでTextureを貼る必要があります。
ここで、Playerの操作するキャラの周りの地面に既にTexture Repetitionが現れていたらそのTextureは交換した方が良いです。
しかし100m先のTextureにTexture Repetitionが現れるのは当然なんです。
だからそれをStart OffsetとBlend Rangeで調節してTexture Repetitionが現れる前に遠距離用のTextureに繋ぐんです。
遠距離用のTextureはかなり大きくしても違和感は生まれません。人間の目は遠くの物の細部には気を取られないんです。のでかなり大きくして絶対にTexture Repetitionが現れない様にします。
これがコツです。
SnowにDirtをpaintして以下の様になりました。
取りあえずはOKです。
今週はここまでとします。
8.Game Design:ポケモン+HxHの念能力( 戦闘システムの作成)
先週、何をやったのか全くおぼえていなかったのでBlogを見直したら、
と書いてありました。
全く覚えていませんでした。
8.1 取りあえずGameで遊ぶ
絶対勝てない様に設定していた2面で勝利してしまいました。何が起きるか分かりませんね。
やっぱりそれなりには面白いです。
が魔法も何が使用出来るのか分かっているとそれも予定調和になってしまって、敵のMonsterと味方のMonsterが揃った瞬間に勝てるのかどうかが分かってしまいます。
まあ、今は対戦相手の魔術師は魔法を使用しませんので、そうなってるだけですが。
面白い事は間違いないです。
8.2 Stage 10 まで作成する
Stage 10まで作成します。
細かい点は後から変更ます。
<Stage 1>
敵:妖精族3体
<Stage 2~4>
敵:妖精族2体、亡霊族1体
<Stage5~7>
敵:妖精族2体、ゾンビ族1体
<Stage8~9>
敵:妖精族1体、ゾンビ族2体
<Stage10>
敵:妖精族1体、亡霊族2体
とします。
これで作成します。
凄い簡単に組めちゃいました。
テストします。
Stage 2~4から先に進めません。ジャンケンで負けると絶対に勝てなくなります。
Stage 2~4から先に進むにはもっと強力な魔法が必要です。
8.3 魔法を考える
以下の魔法を考えました。
- 味方の中央と右翼のMonsterを交換するSwitch(右→中央)の魔法。
- 敵のMonsterを眠らせて攻撃出来ない様にする。
うーん。
後は思いつかない。
後、敵のMonsterの攻撃を止めるには、別に眠らせるだけじゃなくて魔法の壁を作っても良いですよね。何でも良いわけです。
後攻の時はどうしましょうか?
次のターンも眠ったままなのかそれとも、先攻の時した使用出来ない魔法にするのか?
眠りの魔法がまだ考えないといけない事が沢山あるので、今週はSwitch(右→中央)の魔法を実装する事にします。
8.4 Switch(右→中央)の魔法を実装する
こっちも思っていたよりは難しいそうなので来週実装する事にします。
今週はここまでとします。
9.Blenderの勉強
9.1 Selection Methodの復習
<毎日やった事>
毎日、以下のやり方を復習していました。
Blenderを起動するところから測っても全部やるのに3分かかりません。
しかしもうこの5つのやり方は完璧に覚えました。
休日の日だけ頑張っても前の週に何を勉強したのかを思い出すだけで終わってしまいます。つまり全く勉強の成果が出ない状態になってしまっている訳です。
しかしたった3分の復習でも毎日やると忘れないです。
これが勉強の効果を出すコツなんです。
Totalの勉強量で言えば3分毎日繰り返しても21分です。Blenderが起動するまでネットのNewsを読んだりしているわけで実際の勉強量はもっと短いです。それでこの効果です。
もし私が、先週、Blenderの勉強の成果が出てないとダメだしせずに同じ勉強方法を続けていたら、今週のBlenderの勉強も無駄になったはずです。
やっぱり効果や成果は厳しく測る必要があるんです。更に言えば何度もこまめに測る必要もあります。
<先週端折ったSelection Methodについて>
先週、以下に示したSelection Methodは要らないと思い
勉強内容から端折ってしまったんですが
Niagaraの勉強で使用したCoinを作成している時に、Loop Selectionが出来たらいいのに。と思う場面が実際にありました。
以下に示したCoinの側面を一気に選択したかったんです。
のでこの3つのやり方もやっぱり覚える事にしました。
<Loop Selection>
Coinで試してみます。
あれ?
Loopが横向きに行ってほしいのに縦になっています。
<Ring Selection>
これはFaceの選択じゃなくてEdgeでした。
しかも向きが縦方向でした。
<EdgeのLoop>
結果です。
これは望んだ横方向のEdgeを選択しています。
でもFaceの横方向の選択方法じゃなかったですね。
うーん。
<FaceのLoop>
Alt を押しながらFaceを選択
<EdgeのLoop>
Alt を押しながらEdgeを選択
<EdgeのRing>
Alt + Ctrlを押しながらEdgeを選択
でも覚えておきます。
9.2 先週までの復習
<2022-02-14のBlogの復習>
全部やりました。
一応、この週のBlogに載っている内容は全部覚えています。
<2022-02-21のBlogの復習>
流石にこの週の勉強した内容も覚えていました。
<2022-02-28のBlogの復習>
これを勉強しようとしたところで時間が無くなってしまいました。今週はちょっと別な用事が入ってしまいました。これ以上Blenderの勉強に時間を取る事が出来ません。
うーん。仕方ないです。
今週はここまでとします。
10.まとめと感想
今週は、もう勉強を止めようかと思ったWorld Machineが突然、絶好調になりました。
こういう事もあるんですね。
それぞれの分野もそれなりには進捗しています。
Blenderの勉強はいつも最後にまわしているので時間が無くなると割を食ってしまいます。
MaterialでBen先生がToon Shadingの基本についての動画を上げていました。これは緊急で来週勉強する事にします。
来週、突然急用が出来てしまったので来週の勉強はお休みします。
11.参照(Reference)
[1] CGHOW. (2022, January 20). Coin FX in UE4 Niagara Tutorial | Download Files [Video]. YouTube. https://www.youtube.com/watch?v=wDgz6w6Uv9g
[2] Cloward, B. [Ben Cloward]. (2022, January 20). Triplanar Projection Normal Maps - Shader Graph Basics - Episode 30 [Video]. YouTube. https://www.youtube.com/watch?v=VUoI_IESK7U&list=PL78XDi0TS4lEBWa2Hpzg2SRC5njCcKydl&index=30
[3] GDi4K. (2022, March 4). Creating Open World Landscapes with New UE5 Preview & World Partition [Video]. YouTube. https://www.youtube.com/watch?v=FwGmE5f5SDA
[4] World Machine Software. (2019, February 14). 5. Layout Generator. World Machine Software User’s Guide. Retrieved March 20, 2022, from https://help.world-machine.com/topic/layout-generator/
[5] Unreal Sensei. (2020a, August 7). How to HIDE Texture REPETITION in Unreal Engine - UE4 Tutorial [Video]. YouTube. https://www.youtube.com/watch?v=yCRzOdo4b68