티스토리 뷰
https://qiita.com/EGJ-Kaz_Okada/items/0bf77ac5f920715e515b
[UE4] EditorScripting機能を使って、外部からMaterial Instanceのパラメータを確認・変更する方法につい
はじめに 一定程度の規模のプロジェクトになると、おそらく大量のMaterial Instanceの管理に頭を悩ませることになるかと思います。 参考:大規模タイトルにおけるエフェクトマテリアル運用
qiita.com
MaterialInterface를 상속받는 클래스로 Material과 MaterialInstance가 있다.
이 중 Material에는 StaticSwitchParameter를 수정하는 함수가 내부 구현되어 있지만, MaterialInstance는 이에 대한 권한이 없다고 판단하여 기능이 내제되어 있지 않다.
하지만 개발 중 대규모 마테리얼의 편집이 필요한 시점에서 이런 기능은 필연적으로 필요하다.
이에 찾아 본 내용이 위 일본 언리얼엔진 사이트 내용인데, 해당 내용에서는 override가 활성화 되지 않은 프로퍼티에 대한 경우를 따로 적어주지 않았다.
그래서 아래와 같이 구현하여 사용 중 이다.
void UEditorBlueprintFunctionLibrary::SetStaticSwitchParameterValueInEditor(UMaterialInstance* MaterialInstance,
const FName ParameterName,
const bool bValue)
{
if (MaterialInstance == nullptr)
{
return;
}
FStaticParameterSet StaticParameters = MaterialInstance->GetStaticParameters();
bool bHasOverrideValue = false;
for (auto& SwitchParameter : StaticParameters.StaticSwitchParameters)
{
if (SwitchParameter.ParameterInfo.Name.IsEqual(ParameterName))
{
SwitchParameter.Value = bValue;
bHasOverrideValue = true;
break;
}
}
if (bHasOverrideValue == false)
{
FStaticSwitchParameter NewParam;
NewParam.ParameterInfo.Name = ParameterName;
NewParam.Value = bValue;
NewParam.bOverride = true;
NewParam.ParameterInfo.Index = INDEX_NONE;
StaticParameters.StaticSwitchParameters.Add(NewParam);
}
MaterialInstance->MarkPackageDirty();
MaterialInstance->PreEditChange(nullptr);
MaterialInstance->PostEditChange();
MaterialInstance->UpdateStaticPermutation(StaticParameters);
FEditorDelegates::RefreshEditor.Broadcast();
FEditorSupportDelegates::RedrawAllViewports.Broadcast();
}'개발 > UE4' 카테고리의 다른 글
| [UE/Actor] Client에서 ChildActor가 파괴되어 Reference를 잃는 경우 (0) | 2022.06.21 |
|---|---|
| [UE4/Editor] 매쉬 페인팅 모드를 거치지 않고 텍스쳐 정보를 버텍스 컬러로 (0) | 2022.06.13 |
| [UE4/Profiling] Memory Profiler2 를 통한 메모리 추적 (0) | 2022.05.19 |
| [UE4/Profiling] Memory Profile 활성화 (0) | 2022.05.17 |
| [UE4/Editor Scripting] FGlobalTabManager (0) | 2022.05.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 모션블러
- 이종식
- shader
- 컴퓨터구조론
- Substance Designer
- 이미지 효과
- designer
- 이미지이펙트
- unity
- Noise
- 정리
- 컴퓨터네트워크
- 인하대
- MotionBlur
- HLSL
- ImageEffect
- 유니티 셰이더
- Substance
- 유니티
- 소공
- Unreal
- 네트워크
- 컴네
- 노영태
- 블러효과
- 소프트웨어공학
- normal
- #Shader #셰이더 #Tessellator #눈발자국 #발자국
- ue4
- 법선
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
글 보관함