머티리얼펑션 MTF
=> 점점 블루프린트가 길어져서 function 으로 만들어준다.
function 화를 하면 아래와 같이 노드를 정리하여? 표현할 수 있다.
* 현재 레이어를 2개만 연결해도 이미 샘플러가 8개가 사용되고 있다.. (레이어 1개당 4개를 배치해서)
레이어를 2개 더 추가하면 총 16개여서 샘플러가 제대로 동작하지 않을 수 있다.
그래서 샘플러를 Shared 로 변경해준다!
머티리얼 -> 머티리얼 파라미터 컬렉션
* Roughness
Roughness (러프니스) 입력은 말 그대로 머티리얼 표면의 거칠고 부드러운 정도를 제어한다.
거친 재질에 반사된 빛은 부드러운 재질보다 여러 방향으로 퍼지므로, 리플렉션이 얼마나 희미하거나 선명한지, 아니면 스페큘러 하이라이트가 얼마나 퍼져있는지 모여있는지로 확인된다.
러프니스가 0 인(부드러운) 경우 거울 반사이며, 1 인(거친) 경우 완전히 무광 또는 난반사(diffuse) 이다.
메인 HUD 에서 슬라이더 설정
#include "../Header/global.h"
#include "Components/Slider.h"
#include <Engine/Classes/Materials/MaterialParameterCollection.h>
#include <Engine/Classes/Materials/MaterialParameterCollectionInstance.h>
UCLASS()
class UNREAL_3TH_API UMainHUD_Base : public UUserWidget
{
GENERATED_BODY()
private:
USlider* m_Slider;
UMaterialParameterCollection* m_MPC;
UMaterialParameterCollectionInstance* m_MPC_Inst;
public:
UFUNCTION()
void SliderValueChange(float _f);
};
#include "MainHUD_Base.h"
void UMainHUD_Base::NativeConstruct()
{
Super::NativeConstruct();
m_Slider = Cast<USlider>(GetWidgetFromName(FName("Slider")));
if (!IsValid(m_Slider))
{
LOG(LogTemp, Error, TEXT("Slider 위젯 못 찾음"));
}
else
{
m_Slider->OnValueChanged.AddDynamic(this, &UMainHUD_Base::SliderValueChange);
}
m_MPC = LoadObject<UMaterialParameterCollection>(nullptr, TEXT("/Script/Engine.MaterialParameterCollection'/Game/Landscape/MPC_World.MPC_World'"));
m_MPC_Inst = GetWorld()->GetParameterCollectionInstance(m_MPC);
}
void UMainHUD_Base::SliderValueChange(float _f)
{
m_MPC_Inst->SetScalarParameterValue(TEXT("TileingScale"), _f);
}
폴리지모드
https://docs.unrealengine.com/5.0/ko/foliage-mode-in-unreal-engine/
폴리지 모드
다른 지오메트리의 표면에 스태틱 메시 또는 액터 폴리지를 렌더링하여 그라운드 커버 이펙트를 연출하는 방법
docs.unrealengine.com
폴리지 설치 -> 좌측 클릭
폴리지 제거 -> 쉬프트 + 좌측 클릭
페인트 밀도 -> 브러쉬 크기 안에 어느 정도의 밀도로 폴리지를 채울 것인지
브러시 옵션
-> 페인트 브러시 내 스태틱 메시의 인스턴스 수와 간격을 결정한다.
1번 폴리지 페인트 밀도 1
2번 폴리지 페인트 밀도 0.07
페인팅 옵션
-> 폴리지 인스턴스가 이 밀도로 배치되며, 유닛 면적 1000x1000당 인스턴스 수로 지정된다.
1번 폴리지 밀도 / 1Kuu 100
2번 폴리지 밀도 / 1Kuu 8500
https://dev.epicgames.com/documentation/ko-kr/uefn/foliage-mode-in-unreal-editor-for-fortnite
폴리지 모드
폴리지 모드를 사용하여 멋진 랜드스케이프를 빠르게 제작하는 방법을 살펴봅니다.
dev.epicgames.com
LOD (Level of Detail)
-> 화면 크기에 따라 디테일의 정도를 다르게 설정할 수 있다.
LOD 0 -> 디테일이 가장 많이 있다
LOD 2 -> 디테일이 가장 적게 있다
LOD Auto 로 설정하고, 커스텀을 체크하면 수동으로 화면 크기에 따른 디테일의 정도를 다르게 설정할 수 있다.
LOD 0 의 설정값인 0.7 에서 LOD 2 의 설정값인 0.2 로 갈수록 디테일이 적어짐을 확인할 수 있다.
제외 랜드스케이프 레이어
-> 폴리지 배치를 원하지 않는 레이어에는 폴리지가 배치안되도록 설정할 수 있다.
배치
노말에 정렬
-> 폴리지 인스턴스가 페인트된 표면의 노멀과 일치하도록 각도를 수직에서 멀어지게 조정할지 여부입니다. '노멀에 정렬(Align to Normal)'이 체크되어 있고 '랜덤 요(Random Yaw)'가 체크되어 있지 않은 경우 인스턴스는 회전하여 +X 축이 아래쪽 경사를 가리키게 된다.
언덕에 Nav 매쉬 설치하기.. (집가서)
https://mingyu0403.tistory.com/251
[Unreal] 네비게이션 메쉬 설정하기 (Nav Mesh / Nav Link Proxy)
언리얼 문서 docs.unrealengine.com/ko/Resources/ContentExamples/NavMesh/index.html 내비메시 콘텐츠 예제 Navmesh 콘텐츠 예제에 제공된 샘플에 대한 개요입니다. docs.unrealengine.com 네비 메쉬가 커버하는 영역 생성
mingyu0403.tistory.com
'언리얼 5' 카테고리의 다른 글
231023 언리얼을 활용한 2D Game 제작 (0) | 2023.10.23 |
---|---|
231018 물리 엔진 (사운드 재생) / 레벨 스트리밍 (0) | 2023.10.18 |
231016 랜드스케이프 (0) | 2023.10.16 |
231013 애니메이션(?) 나이아가라 (0) | 2023.10.13 |
231012 나이아가라 (스프라이트) / 벡터 필드 (0) | 2023.10.12 |