1
0
hugo/content/blog/2024-07-29-ue.md
2024-12-21 23:10:54 +09:00

41 lines
2.4 KiB
Markdown

+++
date = "2024-07-29"
tags = ["ue","ue5", "vrm"]
title = "ue5でbrushの動作がbuildと違う"
+++
今回はコード周りを整理した時の話です。
## [issue] 一つのwidgetで各キャラのiconを設定する
objectに`cbp_character_${name}`を指定してボタンをクリックするとキャラが切り替えるwidgetを作成していました。
以前はiconごとに読み込むファイルを別々に作っていたのですが、その処理を簡略化しました。まずは各キャラのcbpをobjectに指定しているので、名前が異なります。objectからdisplay nameやobject name, object pathを取ってきて、brush(image)を設定するようにしたのですが、これはeditorでは動作しますが、buildで動作しないことがわかりました。
理由は不明ですが、object(name)がNoneになります。ボタンを押すと正常に動作するためobjectはそのキャラのものが使われているはずです。これは少し奇妙です。
そんなことを言っていても問題は解決しないので別の方法でやることにしました。objectとは別の値を用意して処理します。また、とりあえず`インスタンス編集可能`, `スポーン時に公開`, `シネマティックスに公開`にチェックを入れておくことにしました。
## [issue] city sampleでclothが動作しない
他のprojectでは機能するのに`cloth simulation`が機能しない場合、project settingの問題です。
https://forums.unrealengine.com/t/no-cloth-simulation-in-ue5-but-works-in-ue4/619532
```sh:Config/DefaultEngine.ini
[ConsoleVariables]
- p.ClothPhysics=0
+ p.ClothPhysics=1
```
これはなぜclothが動作しないのか、わけがわからなくて困ってる人がいそうです。
## [issue] bp_playerのキャラを切り替えるときに装備を外す
これも以前から放置していた問題ですが、アイの衣装を変更したときに他キャラで`visibility:false`するのがめんどくさかったので、自動で処理されるようにしました。
`cbp_sandbox_character`をcastしてobjectのdisplay nameでもobject nameでも取ってきて、それが`ai`じゃなければ`set visibility`します。childrenにチェックを入れておきます。
なお、最初は`destroy actor child`のようなものを探したのですが、unreal engineにはありませんでした。