solar system for ue
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
を参考にしてください。
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が通らないのです。
<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に参加します。
$(EngineDir)\Plugins\Performance\AutomatedPerfTesting\Build\Scripts\AutomatedPerfTestConfig.cs
$(EngineDir)\Plugins\Performance\AutomatedPerfTesting\Build\Scripts\AutomatedPerfTestNode.cs
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
にします。これは海に入って出たときに海中を適用する高さを設定します。
これで正常に海を作ることができました。
ultra dynamic sky
ultra dynamic sky
は空と天候を作ります。
まずblueprintを開いてHeightFog
をvisible:false
にします。これは霧を地平線に表示するものです。
rain
rain, snowなどのweatherではpostprocess volume
を使って画面に水滴を付けるなどの表現を行います。
[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を作成し、それを呼び出します。
browser
まず下記のmaterialをBP_browser
に追加したwidget componentで呼び出します。collisionでcontrolします。
earth
基本的にはearth(mesh)をcollision(begin/end)でvisible(表示切替)すると良いと思いますが、安定はしません。また、横から惑星に入るとキャラクターの動作が停止する問題があります。これは平面ベースにmapが作成されているからだと思いますが、回避は難しいでしょう。一応、planetary oceans
というassetは売られています。ですが、そこに既存の置物(陸地、建物)を置くのは難しく、置けたとしてもキャラクターの移動に問題が生じるかもしれません。
https://www.fab.com/listings/ea195c94-00af-43fb-bb1d-85a478320a27
game animation sample
[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}
vrm4u
vrm-1.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
前髪が浮いてしまう問題はVM_${name}_VrmMeta
を開き値を変更します。
[
[
{
"bone Name": "J_Sec_Hair1_03",
"Hit Radius": 0
},
{
"bone Name": "J_Sec_Hair2_03",
"Hit Radius": 0.01
},
{
"bone Name": "J_Sec_Hair3_03",
"Hit Radius": 0.01
}
],
[
{
"bone Name": "J_Sec_Hair1_04",
"Hit Radius": 0
},
{
"bone Name": "J_Sec_Hair2_04",
"Hit Radius": 0.01
},
{
"bone Name": "J_Sec_Hair3_04",
"Hit Radius": 0.01
}
],
[
{
"bone Name": "J_Sec_Hair1_05",
"Hit Radius": 0
},
{
"bone Name": "J_Sec_Hair2_05",
"Hit Radius": 0.01
},
{
"bone Name": "J_Sec_Hair3_05",
"Hit Radius": 0.01
}
]
]
vmc
も0.0.0.0
を使用することでwebcam motion capture
との連携が可能になっていました。
# vrm vmc
ip : 0.0.0.0
port : 39539
ignore local rotation : true