154 lines
8.2 KiB
Markdown
154 lines
8.2 KiB
Markdown
|
+++
|
||
|
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
|
||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||
|
<Import Project="CitySample.Automation.csproj.props" Condition="Exists('CitySample.Automation.csproj.props')"/>
|
||
|
|
||
|
<PropertyGroup>
|
||
|
<TargetFramework>net8.0</TargetFramework>
|
||
|
</PropertyGroup>
|
||
|
|
||
|
<ItemGroup>
|
||
|
<Compile Include="$(EngineDir)\Plugins\Performance\AutomatedPerfTesting\Build\Scripts\AutomatedPerfTestConfig.cs" />
|
||
|
<Compile Include="$(EngineDir)\Plugins\Performance\AutomatedPerfTesting\Build\Scripts\AutomatedPerfTestNode.cs" />
|
||
|
</ItemGroup>
|
||
|
|
||
|
</Project>
|
||
|
```
|
||
|
|
||
|
これは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}`
|