+++ date = "2024-11-19" tags = ["ue"] title = "ue5.5で作り直す" +++ `city sample`にearth system(solar system)を組み込みます。具体的には惑星(planet)の形式でmapを作成し、空から宇宙に出ても問題ないようにすることを目指します。 - 海 : `ocean waves` - 空 : `ultra dynamic 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 dynamic sky `ultra dynamic 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}`