🎮 UE4 TPS Fix Bugs Highlite Material Setup Part 5 - YouTube
この動画をなぞっていたんですが、10分ごろからの「武器にアウトラインを付与する」というところで詰まってしまいました。
動画だとあっさり成功しているんですが、PostProcessVolumeの設定にBlendablesが見当たらず、とりあえず似た項目が設定できる"Rendering Features"->"Post Process Materials"で同じ設定をしてみたんですが、カメラに適応されるばかりでした。
Selection Outlines Without Post-Process Material - [UE4 Tutorial] - YouTube
配布してくれていたMaterialの一つの中身にエラーが出ていて、直し方がわからなかったので、いったん自分で用意してみようと上の動画のMaterial等を作りました。ただ、セット対象がStaticMeshなのでBPclassはセットできず、BPにCastToしようとしてもWarningが出るばかりでうまく使えませんでした。
試しに銃のSkeletalMeshをセットするように変えてみて、“BP_Outline”->“Details”->"Mesh"に銃のSkeletalMeshをセットし(お?これにBP移植すればいけるんじゃないか!?)と思いながらBPを移植しようとしても、そこでまたうまくいかず詰まってしまいました。
もしできたとして、この方法だと親が作れずに武器全部に同じような事をしないといけないのかなぁと考えると、ちょっと勘弁してほしいです…
何か遠回りをしている気分なんですが、どうしたら良かったんでしょうか…
[追記]二つ目のリンク先が間違っていたので修正しました。この動画でよろしくお願いします。
試してみましたが、エラーその他問題のある事象が確認できませんでした
おそらく導入方法が間違っていると思われます
一応、こちらで行った確認内容を挙げておきます
参考にしてください
- 動画ページからMaterialをダウンロードする
- rarを解凍し、
Materials
のフォルダをまるごとProjectのContentフォルダ直下に配置
- PostProcessVolumeをLevel上に配置し、PostProcessMaterialに
PP_Outliner_Inst
を設定
- SK_Mannequinを配置し、SkeletalMeshComponentの
Render CustomDepth Pass
をTrueに設定
ここまでで以下のような状態になっています
特にエラーは発生していません
動画だとあっさり成功しているんですが、PostProcessVolumeの設定にBlendablesが見当たらず、とりあえず似た項目が設定できる"Rendering Features"->"Post Process Materials"で同じ設定をしてみたんですが、カメラに適応されるばかりでした。
UE4.21時点ではPostProcessMaterialの名前に設定されています
PostProcessですので、もちろんCamera(Viewport)に対して適用されるEffectとなります
このEffectはCustomDepthを使用しています
CustomDepthが書き込まれているか確認するには、PreviewのBufferVisualizationモードを使用します
Materialのエラー内容に関しては開示されていませんのであくまで予測ですが、おそらく相対パスが崩れたのが原因でしょう
手動でAssetをMigrateする際は参照関係に留意する必要があります
後者の方に関しては、特にPostProcessを避けなければならないような要因が無いのであれば、個人的におすすめはしません
導入方法は同じやり方のようで安心しました。
こうなるばかりで銃のSphereに触っても銃が光ってくれませんでした。
とりあえずBPがどこか間違えていないか動画を見直している最中です。
Materialのエラーというのはこれです。
Ifがいつもエラー状態です。テストプレイできない程の強いエラーではないようですが、やっぱり気になります。
おそらくMaterialの参照関係が壊れています
IFのA側をたどっていくともっと上流の方でMaterialFunctionが見つからない類のエラーが出ていると思われますが、添付画像の範囲では詳細がわかりません
修正方法がわからないのであれば、Materialを入れ直すべきでしょう
もしそのPostProcessMaterial上でどういった処理をやっているのか分かっていないのであれば、Materialを自分で修正するのは不可能に近いです
これで足りますか?
何が原因かわかりますか?
この講座動画で初めて触る部分も多く、PostProcessMaterialでの処理というのも、Materialの間違いの直し方もわかりません。
どうか助けてください。
間違いなくMaterialの参照関係が壊れています
導入方法は同じやり方のようで安心しました。
おそらく同じではないでしょう
こちらが試したものは参照関係が壊れていませんので
正常に動く状態のMaterialは下のようになっています
再度提案しておきますが、修正方法がわからないのであれば、Materialを導入し直すのが良いでしょう
違うといわれても、リンク先のDriveのOutlineMaterial.rarを解凍してファイルをコンテンツフォルダ直下にコピーする、という操作に違いなんて生まれようがないと思いますし、何回やっても同じ結果になるので何が何やらさっぱりです。
プロパティのセキュリティにチェック入れてから解凍しても同じなので自分の知識からは打つ手がないです。
参照関係が壊れているって何ですか?
UE4のすべてのAssetは、プロジェクトフォルダ内のContentフォルダを基点とした相対パスで、他の依存関係のあるAssetの場所を記憶しています
手動(UnrealEditor外)でAssetを移動する際は、この相対パスを崩さないように注意する必要があります
例えば、今回こちらが確認できている、問題ないパターンの配置は以下の形です
<Project root>
|- ***.uproject
|- Content
|- Materials
|- PP_Outliner_M.uasset
|- PP_Outliner_Inst.uasset
|- MF_ConvolveTexture.uasset
|- MF_ExtractDepth.uasset
|- MF_SampleSceneTextureNeighborUVs.uasset
導入する際は、この形を崩してはいけません
もしEditorの外でフォルダ名を変えたり、別のフォルダに移動したりした場合は、この位置関係が崩れるため、依存関係のあるAssetが正しく動作しなくなります
この状態を、参照関係が壊れている、と表現しています
添付画像はReferenceViewerで表示した参照関係ですが、それぞれのAssetに /Game
から始まるパスが表示されているのがわかります
これがUE4が認識するAssetのパスであり、Explorer上のフォルダ構造と対応しています
ファイルやフォルダの名前をEditorの外から変えてしまうと、このパスと実際にAssetがある場所がズレてしまうので
、UE4が正しくAssetを参照できなくなり、結果的に参照関係が壊れてしまう、というわけです
なお、正しい配置についてはAssetの配布元に問い合わせるべきでしょう
この配置で問題なく動くのでおそらく正しいだろうと思いますが、Assetの作者に問い合わせる以上に確実性の高い方法はありません
ありがとうございました。
解凍ソフト変えてみたら今までと名前の違うフォルダが出力されて、無事成功しました。
他にも色々教えてもらってありがとうございます。
本当にファイルの名前が違うとは思っていませんでした。ありがとうございます。