[UE4] UMG에서 UserWidget을 나란히했을 때와 BP로 동적 추가했을 때의 검증. 및 WidgetAnimation의로드 검증
뭔가 할 것 같다! 은하 영웅 전설 봐! #UE4PM 피 c. 라고 r. 이 m / S2 rx3 Q0 — 반찬 (@pafuhana1213) September 20, 2019
의 로드 시간 주위의 이야기였습니다. UMG에서 UserWidget을 자식 위젯에 등록하는 것보다 BP에서 추가하는 것이 로드 시간 빨라진 이야기가 있었습니다.
(코코 자료 업로드 대기)
가볍게 확인해 보았습니다.
가와만이므로 내부 처리까지 쫓고 있지 않습니다. 잘못하면 미안해.
UE4.22.3에서 검증
검증 데이터
이런 한 줄의 위젯을
이런 느낌으로 13행*2열, 늘어놓는 위젯입니다. 옵션 화면이라든지.
패턴 1
패턴 2
UMG 자체에는 추가하지 않고 BP에서 Widget 만들어 추가
검증 방법
다음에 패키징하고 항상 obj list에서 UObject 수를 조사했습니다.
→ [UE4] GarbageCollect의 대상 주위를 조사해 보았다
결과
Object 총수 | 한 줄 위젯 수 | |
---|---|---|
생성 전 | 36004 | 0 |
패턴 1: UMG 포함 | 37048 | 79 |
패턴 2:BP 추가 | 36574 | 27 |
표시되는 13*2개와 로드한 1개를 포함해 27개.
UMG에 전 돌진한 패턴 1은 Widget수가 3배로.
패턴 1 쪽은 CDO나 자산의 로드 자체에 1행 Widget이 타 버리는 분으로 늘어나고 있는 느낌입니까?
GC적으로는 Cluster되어 있으면 큰 영향은 없을 것 같아?
로딩 시간적으로 여분의 제품이 있기 때문에 낭비가있을 것 같습니다.
(PC라면 이 규모에서는 거의 차이가 나지 않으므로 검증 결과는 없음)
추가 검증
애니메이션 로드 정보
UMG에 넣으면 Widget의 애니메이션이 그만큼 로드되는, 적인 이야기가 있던 것 같은 기억이 있습니다.
간단하지만 조사했습니다.
"TestAnimation"이라는 이름의 애니메이션을 하나만 포함한 위젯(UMG_Item)을 3개 정도 돌진한 UMG를 로드해 보았습니다
UE4.19: 위젯에 돌진
Obj List: Class=WidgetAnimation
Objects:
Object NumKB MaxKB ResExcKB ResExcDedSysKB ResExcShrSysKB ResExcDedVidKB ResExcShrVidKB ResExcUnkKB
WidgetAnimation /Game/419/UMG_All.WidgetArchetype:WidgetTree_0.UMG_Item.WidgetAnimation_0 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Game/419/UMG_Item.WidgetArchetype:TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Game/419/UMG_All.UMG_All_C:WidgetTree.UMG_Item.TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Game/419/UMG_All.UMG_All_C:WidgetTree.UMG_Item_0.TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Game/419/UMG_All.UMG_All_C:WidgetTree.UMG_Item_1.TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Game/419/UMG_Item.UMG_Item_C:TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Game/419/UMG_All.WidgetArchetype:WidgetTree_0.UMG_Item_0.WidgetAnimation_1 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Game/419/UMG_All.WidgetArchetype:WidgetTree_0.UMG_Item_1.WidgetAnimation_2 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Engine/Transient.GameEngine_0:GameInstance_0.UMG_All_C_0.WidgetTree_0.UMG_Item.WidgetAnimation_0 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Engine/Transient.GameEngine_0:GameInstance_0.UMG_All_C_0.WidgetTree_0.UMG_Item_0.WidgetAnimation_1 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Engine/Transient.GameEngine_0:GameInstance_0.UMG_All_C_0.WidgetTree_0.UMG_Item_1.WidgetAnimation_2 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
Class Count NumKB MaxKB ResExcKB ResExcDedSysKB ResExcShrSysKB ResExcDedVidKB ResExcShrVidKB ResExcUnkKB
WidgetAnimation 11 12.59 12.72 0.00 0.00 0.00 0.00 0.00 0.00
11 Objects (Total: 0.012M / Max: 0.012M / Res: 0.000M | ResDedSys: 0.000M / ResShrSys: 0.000M / ResDedVid: 0.000M / ResShrVid: 0.000M / ResUnknown: 0.000M)
UE4.19: BP에서 추가됨
Obj List: Class=WidgetAnimation
Objects:
Object NumKB MaxKB ResExcKB ResExcDedSysKB ResExcShrSysKB ResExcDedVidKB ResExcShrVidKB ResExcUnkKB
WidgetAnimation /Game/419/UMG_Item.WidgetArchetype:TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Engine/Transient.GameEngine_0:GameInstance_0.UMG_Item_C_0.TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Engine/Transient.GameEngine_0:GameInstance_0.UMG_Item_C_1.TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Engine/Transient.GameEngine_0:GameInstance_0.UMG_Item_C_2.TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
WidgetAnimation /Game/419/UMG_Item.UMG_Item_C:TestAnimation_INST 1.14 1.16 0.00 0.00 0.00 0.00 0.00 0.00
Class Count NumKB MaxKB ResExcKB ResExcDedSysKB ResExcShrSysKB ResExcDedVidKB ResExcShrVidKB ResExcUnkKB
WidgetAnimation 5 5.72 5.78 0.00 0.00 0.00 0.00 0.00 0.00
5 Objects (Total: 0.006M / Max: 0.006M / Res: 0.000M | ResDedSys: 0.000M / ResShrSys: 0.000M / ResDedVid: 0.000M / ResShrVid: 0.000M / ResUnknown: 0.000M)
UE4.22: 위젯에 돌진
Obj List: Class=WidgetAnimation
Objects:
Object NumKB MaxKB ResExcKB ResExcDedSysKB ResExcShrSysKB ResExcDedVidKB ResExcShrVidKB ResExcUnkKB
WidgetAnimation /Game/419/UMG_Item.UMG_Item_C:TestAnimation_INST 1.04 1.05 0.00 0.00 0.00 0.00 0.00 0.00
Class Count NumKB MaxKB ResExcKB ResExcDedSysKB ResExcShrSysKB ResExcDedVidKB ResExcShrVidKB ResExcUnkKB
WidgetAnimation 1 1.04 1.05 0.00 0.00 0.00 0.00 0.00 0.00
1 Objects (Total: 0.001M / Max: 0.001M / Res: 0.000M | ResDedSys: 0.000M / ResShrSys: 0.000M / ResDedVid: 0.000M / ResShrVid: 0.000M / ResUnknown: 0.000M)
돌진한 사람은 부모 UserWidget 내에 포함된 아이 UserWidget의 애니메이션까지 붙어 있는 느낌일까요?
BP에서 추가한 사람은 인스턴스별로만 애니메이션 수가 있는 것 같습니다.
단, UE4.22에서 조사하면 인스턴스 복수 생성해도 애니메이션은 공통화되고 있는 것 같은 거동을 볼 수 있었습니다. 어쩌면.
Reference
이 문제에 관하여([UE4] UMG에서 UserWidget을 나란히했을 때와 BP로 동적 추가했을 때의 검증. 및 WidgetAnimation의로드 검증), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/com04/items/65b1f619d89d298755be텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)