From 90f12dabb281e36ce4873e32b148ed2d0753e108 Mon Sep 17 00:00:00 2001 From: syui Date: Tue, 19 Nov 2024 17:25:17 +0900 Subject: [PATCH] fix --- content/blog/2024-11-19-ue55.md | 153 ++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 content/blog/2024-11-19-ue55.md diff --git a/content/blog/2024-11-19-ue55.md b/content/blog/2024-11-19-ue55.md new file mode 100644 index 0000000..141fd43 --- /dev/null +++ b/content/blog/2024-11-19-ue55.md @@ -0,0 +1,153 @@ ++++ +date = "2024-11-19" +tags = ["ue"] +title = "ue5.5で作り直す" ++++ + +`city sample`にearth system(solar system)を組み込みます。具体的には惑星(planet)の形式でmapを作成し、空から宇宙に出ても問題ないようにすることを目指します。 + +- 海 : `ocean waves` +- 空 : `ultra volumetric sky` + +## city sample + +5.5からcrashする回数が大幅に減りました。 + +`/Map/Small_City_LVL`を使います。`ground*`を探して削除します。これは海面にplane(平面)を設置しています。 + +止まっている車を`c`で運転できるようですが、これは`BP_Player`の機能です。使用するには後述する`game animation sample`に統合する必要があるでしょう。 + +playerstart(tag)をいくつか設置し、uiで選択してteleportできるようにします。instance data(config)に名前を保存して呼び出してもいいし、mapから値を取ってきてもいいです。 + +https://blueprintue.com/blueprint/3h8qi0ep/ + +いくつかの建物を追加します。 + +- /Levels/DefaultLevel +- /AutomotiveBridgeScene/Bridge_P + +街頭は`BP_CurvedBride`で`Lamp_0x`を変更します。SMで`streetLampC`を選択して位置を調整します。また、すり抜けるのでマトリックスでcollisionを設定してください。よくわからない場合は後述する`twinmotion`を参考にしてください。 + +![](https://git.syui.ai/ai/ue/raw/branch/main/img/ue-2024-10-31-151413.png) + +### AutomatedPerfTesting + +`AutomatedPerfTesting`は5.5で追加されたpluginです。 + +> Experimental release of Automated Perf Testing Plugin v0.1, providing Gauntlet Test Controllers, UAT Test Nodes, and BuildGraph macros for adding common automated performance tests to a project's automated build and test. + +- https://dev.epicgames.com/documentation/ja-jp/unreal-engine/unreal-engine-5.5-release-notes +- https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Plugins/AutomatedPerfTesting + +そのうち解消されると思いますが、現在(2024-11-18)、`city sample`はbuildできません。`Engine/Plugins/Performance/AutomatedPerfTesting`に`AutomatedPerfTestConfig.cs`, `AutomatedPerfTestNode.cs`が含まれていないため`${project}/Build/Script/CitySample.Automation.csproj`に記述されているcompileが通らないのです。 + +```xml + + + + + net8.0 + + + + + + + + +``` + +これはgithubにあるsrcから持ってくるしかありません。アクセスするにはorgに[参加](https://www.unrealengine.com/en/ue-on-github)します。 + +- https://github.com/EpicGames/UnrealEngine/tree/release/Engine/Plugins/Performance/AutomatedPerfTesting/Build/Scripts + + +## ocean waves + +惑星の海を作るには`ocean waves`を利用します。必要なものは以下の2つです。 + +- BP_EarthSizedOcean : 海中 +- BP_EarthSizedSphericalMesh : 海上 +- WaterVolume + +`BP_EarthSizedSphericalMesh`の`transform-location-z:-636000000`にします。次に海上の影問題を修正するため`Material Overrides`の`-1`から`4`までのmaterialを変更します。私は`/Vefects/Water/VFX/WaterMaterials`を使用しました。 + +次に`BP_EarthSizedOcean`の`Volume Maaterials`で`WaterVolume`をセットします。Above, Underwaterを`/Vefects/Water/VFX/UnderWater`に変更します。heightは`0`にします。これは海に入って出たときに海中を適用する高さを設定します。 + +これで正常に海を作ることができました。 + +![](https://git.syui.ai/ai/ue/raw/branch/main/img/ue-2024-11-18-220316.png) + +## ultra volumetric sky + +`ultra volumetric sky`は空と天候を作ります。 + +まずblueprintを開いて`HeightFog`を`visible:false`にします。これは霧を地平線に表示するものです。 + +## rain + +rain, snowなどのweatherでは`postprocess volume`を使って画面に水滴を付けるなどの表現を行います。 + +```sh +[PostProcess Material] +/Vefects/Waters/Water/VFX/WaterOnSurfaces/Materials/MI_VFX_WaterOnLens_ClearCenter +/Vefects/Waters/Water/VFX/Rain/Materials/MI_VFX_CheapRain +``` + +## twinmotion + +建物はtwinmotionから持ってくるとよいでしょう。`datasmith`でexportしてueでimportします。指示通りにproject rootを指定すると`/${name}_Assets`が作成されます。ただ、`datasmith`の置き場所は変更しても構いません。 + +すり抜け問題を解消するにはmeshを全選択して、右クリックで`アセットアクション -> プロパティマトリクスで選択内容を... -> collision complexity(use complex collision as simple...)`を選択します。 + +## chair + +椅子に座る動作を設定します。大変ですが以下のcomponentを使うと簡単にできます。調整は難しいですね。私の場合は`game animation sample`を使っていますが、最新版では勝手に動きが制御されるため`anim montage`をそのまま再生できません。したがって、別にabpを作成し、それを呼び出します。 + +- https://www.youtube.com/watch?v=VzyvpFvon0g +- https://blueprintue.com/blueprint/wg_vyr4o/ + +## browser + +まず下記のmaterialを`BP_browser`に追加したwidget componentで呼び出します。collisionでcontrolします。 + +- https://blueprintue.com/blueprint/-49_059w/ +- https://blueprintue.com/blueprint/uubw_6ay/ + +![](https://git.syui.ai/ai/ue/raw/branch/main/img/ue-2024-11-18-220605.png) + +## earth + +基本的にはearth(mesh)をcollision(begin/end)でvisible(表示切替)すると良いと思いますが、安定はしません。また、横から惑星に入るとキャラクターの動作が停止する問題があります。これは平面ベースにmapが作成されているからだと思いますが、回避は難しいでしょう。一応、`planetary oceans`というassetは売られています。ですが、そこに既存の置物(陸地、建物)を置くのは難しく、置けたとしてもキャラクターの移動に問題が生じるかもしれません。 + +https://www.fab.com/listings/ea195c94-00af-43fb-bb1d-85a478320a27 + + +## vrm4u + +vrm-0とvrm-1.0を使ってみましたが、まだvrm-0がオススメです。vrm-1.0は前髪が少し浮かんでしまう問題があります。また、影の問題が出たのでvrm-0で再構築しました。 + +構築方法はベースに`SSSProfile`を使用します。次に`unlit`で生成したskをもとに`/Plugins/VRM4UContent/Util/Actor/PostShadow/BP_PoseCopyToon`で`custom`を生成します。詳しくは`/Plugins/VRM4UContent/ImportDataSet/DS_VRM_Custom`を見てください。 + +`/Blueprints/CBP_SandboxCharacter`でskに`VrmPoseableMesh`を追加して`custom`で作ったskを当てます。次に`BP_VrmOutlineComponent`を追加して同じく`custom`や`unlit`などを当て、設定にて`Common Width:0.05`, `Use Common Material:true`にします。 + +- /Plugins/VRM4UContent/Util/Actor/PostShadow/BP_PoseCopyToon +- VrmPoseableMesh +- BP_VrmOutlineComponent + +![](https://git.syui.ai/ai/ue/raw/branch/main/img/ue-2024-11-18-220524.png) + +## game animation sample + +```sh +[issue] +1. anim montageなどを呼び出してそのまま再生が難しい +2. CPB_SandboxCharacterで別のABPを読み込んでも制御できない + - 浮かんでいるときの手 + - BP_Superhero_FlightComponentのSprint Fly Speedを変更できない +``` + +`/Blueprints/RetargetedCharacters/ABP_GenericReataget`で変数の`IKRetargeter_Map`にて`RTG_UEFN_${name}`を追加します。`CBP_Sandbox_Character_${name}`を作ります。開いてsk(Manny)などにあるComponent Tagsに`RTG_UEFN_${name}`を追加します。最後に`GameMode : GM_Sandbox > Bone : CBP_SandboxCharacter_${name}`を指定して起動すればokです。 + +- /Blueprints/RetargetedCharacters/ABP_GenericReataget : `IKRetargeter_Map` +- /Blueprints/RetargetedCharacters/CBP_Sandbox_Character_${name} -> sk -> Component Tags:`RTG_UEFN_${name}`