기본 콘텐츠로 건너뛰기

250320 라이팅과 블루프린트 함수2 메타휴먼1

Light

Directional Light

직접적인 빛, 태양, 먼 거리에서 부터 오는 빛

넓은 맵에서 사용. 일반적으로 Env.Light Mixer에서 생성 할 수 있다.

회전에 따라 어느 방향으로 빛을 비출지 바뀐다. 

하얀색 화살표는 빛을 비추는 방향을 표시해줌.

이동이나 크기는 영향을 미치지 못함.






Intensity : 밝기 lux : 밝기의 단위

Light Color : 조명의 색깔

Source Angle : 값을 낮추면 그림자가 명확해짐. 높이면 그림자가 부드러워짐.

Use Temperature : 온도 사용 여부

Temperature : 6500. 낮추면 따뜻한 느낌, 높이면 차가운 느낌

Affects World : 이 월드에 적용 여부

Cast Shadows : 그림자를 그릴 것인지 여부

Indirect Lighting Intensity : 간접광의 강도


Sky Light

간접광 Dorm Light

빛이 반사 되었을 때, 이에 의해 다시 반사되어 다른 부분에 영향을 끼치는 빛을 표현

Intensity Scale : 밝기 조절



Point Light

전구처럼 방향성이 없는(모든 방향) 빛을 줌.

위치 크기는 변하지만, 회전에 의해 변하지 않음.

백열 전구 등에 사용.

비용이 조금 비쌈.

Intensity : 밝기 조절

Light Color : 색깔

Attunitation Radius : 빛의 길이 (영향범위)

Use Temperature : 온도 사용 여부

Temperature : 6500. 낮추면 따뜻한 느낌, 높이면 차가운 느낌

Affects World : 이 월드에 적용 여부

Cast Shadows : 그림자를 그릴 것인지 여부

Indirect Lighting Intensity : 간접광의 강도



Spot Light

PointLight와 다르게 빛을 비추는 방향이 존재.

따라서, 위치, 방향, 크기 모두 영향을 받음.

Falloff 여부에 따라 가로등. 끌 경우 스포트라이트, 손전등 등에 쓰임.


Outer Cone Angle : 외곽 조명 

Inner Cone Angle : 내부 조명


Rect Light

텔레비전, 모니터화면, 형광등 등을 표현할 수 있음.

다른 조명과 다르게 Falloff 기능을 끌 수 없음.

부하가 크기 때문에 사용을 권장하지 않음.

Source Width, Source Height : 광원의 너비 높이

Inverse Squared Falloff

해당 설정으로 조명의 외곽선을 부드럽게 할 것인가 아닌가를 바꿀 수 있음.

fall off : 공간이나 시간에 걸쳐 무언가가 점진적으로 줄어드는 것.


Source Radius : 광원의 크기

Soft Source Radius : 부드러운 광원의 크기

Source Lenght : 광원의 길이가 바뀜 Point Light의 경우 캡슐 형태로 늘어남.

용어 : 눈 순응

어두운 곳에서 밝은 곳 또는 반대의 경우에 눈이 적응하는 과정.

암반응, 명반응


Post Process Volume

아티스트와 디자이너가 컬러, 톤매핑, 라이팅 등에 영향을 미치는 프로퍼티와 기능을 결합하여 씬의 전체적인 룩 앤 필을 정의할 수 있습니다.

간단하게 이야기 하자면 화면 효과

Exposure

EV : 노출값 

Min EV Max EV

두 값이 같으면 눈 순응 기능을 끔




Inifinite Extent (Unbound) : 크기와 관계 없이 전체 맵에 영향


IES

IES는 조명 공학 협회(Illuminating Engineering Society)를 뜻하거나, 빛과 빛의 양에 대한 측정값이 담긴 파일.

IES Library 등에서 파일을 가져온 다음, 조명에 값을 넣으면 이에 해당하는 조명의 모습으로 바뀜. 조명의 텍스쳐라고 생각하면 편함.




Emissive Material

Material의 Emissive Color에 값을 주어서 물체의 표면에서 빛이 나도록 한다.

Multiply를 이용해서 빛의 강도를 조절 할 수 있다.




깜박이게 만들기
Set Timer by Event를 이용하여 타이머를 설정하고, Set Actor Hidden In Game을 사용하여 타이머가 지날 때마다 해당 라이트 액터를 숨기는 것과 보이는 것을 Not을 이용해 반복시킴으로써 깜박이는 것처럼 할 수 있다.

밝기 변경
Light의 Set Intensity의 값을 변경

색깔 변경
Set Light Color를 이용해서 변경
Light Function
Material 을 생성하고 Light Function으로 전환한다.
Emissive Color에 값을 넣어주는 것으로 조명으로 활용 가능하다.



플러그인
다른 사람들이 미리 정의해 놓은 기능

HDRI

하이다이내믹레인지 이미징

창문너머의 이미지 등을 실제 모델 등을 통해 직접 표현하는 게 아닌 이미지로 표현하고 싶을 때 사용.
초기에 포함되어 있지 않으므로 플러그인에서 추가해야 한다.
Cubemap에 원하는 이미지를 넣으면 표현된다.
Intensity : 밝기
Use Camera Projection : 


Environment Light Mixer




window - Env. Light Mixer




Spawn Actor from Class
Class : 생성할 오브젝트
Spawn Transform : Split하여 위치, 회전, 크기를 나누어 넣거나 Transform 그 자체로 값을 넣어서 원하는 위치 회전 크기 값을 정해줄 수 있다.

위치 값을 가져올 때는 Get Actor Location 을 사용하여 이 블루프린트 액터의 위치를 가져와서 사용하고 있다.

Get All Actors of Class
한 레벨 안의 해당 Actor를 찾는다.
Destroy Actor를 통해 모든 BP_Ball 액터를 없애고 있다.

Get Actor of Class
한 레벨 안의 해당 Actor를 하나(first)를 찾는다.
Set Actor Scale 3D를 이용해 생성한 BP_Ball 액터 중 하나의 크기를 변화시키고 있다.

블루 프린트 UI






일반적인 구상은 먼저 Canvas Panel이 기본임.


Import 시 Offset Rotation 값을 설정가능



Texture_Diffuse => Base Color
Normal맵 => Normal
Specular => Specular

Meta Human
Meta Human Plugin 을 설치할 필요가 있다.
설치 후 에디터에서 설치하면 관련 설정이 생긴다.

간단한 방법은 Metahuman Creator 에서 Blend를 통해서 모델을 만드는 방법이 있고, 다른 방법으로는 다른 사이트에서 얼굴 이미지를 가져와서 편집하는 방법이 있다.

Meta Human Identity

순차적으로 실행하면 되고, Track Markers의 경우는 하단에서 Front로 설정하여야 IdentitySolve가 가능하다 Mesh화 한 후에는 MetaHuman Creator에서 확인할 수 있다.
MetaHuman Creator에 들어간 이후는 Edit  - 편집활성화 를 통해 수정 가능하다.


블렌드 - 여러 이미지를 섞어서 다른 외형을 만드는 것
스킨 - 할당
편집이 끝나면 자동 저장이 된다.
언리얼 내에서 Quixel Bridge를 통해서 Generating을 하면 사용할 수 있다.
Add를 누르면
MetaHuman 폴더가 생기고 설정한 이름의 폴더가 뜬다.

아래 두 경고가 뜨지만 Enable Missing 을 하면 된다.
아래 기능은 AR과 라이브 리깅용 이다.
Live Link Control Rig
Apple ARKit Face Support



🎶참고👾

Light API

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/light-types-and-their-mobility-in-unreal-engine

Light Falloff에 대한 자세한 설명 https://courses.washington.edu/arch481/1.Tapestry%20Reader/2.Light%20Sources/5.Falloff/0.default.html

Post Process Volume

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/post-process-effects-in-unreal-engine

IES
https://ieslibrary.com/browse
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/using-ies-light-profiles-in-unreal-engine

HDRI
https://dev.epicgames.com/documentation/en-us/unreal-engine/hdri-backdrop-visualization-tool-in-unreal-engine?application_version=5.5
https://polyhaven.com/hdris

메타휴먼
https://dev.epicgames.com/documentation/en-us/metahuman/metahuman-creator-overview

https://dev.epicgames.com/documentation/en-us/unreal-engine/epic-cplusplus-coding-standard-for-unreal-engine

이 블로그의 인기 게시물

250523 PCG 2

PCG Building Volume Sampler를 사용할 경우 Voxel Size를 맞추어주자. 2m길이를 Transform Points로 Offset을 이동시켜 Difference를 통해 메쉬를 생성한다. 사용시에 Pivot의 위치가 중앙이 아니면 제대로 표현되지 않을 것이다. PCG Landscape Landscape 생성후 PCG Volume 생성. Get Landscape Data - Surface Sampler 안보인다면 Generate Surface Sampler 일반 그리드 패턴으로 서피스 데이터에 포인트를 샘플링합니다. 이 노드에는 다음과 같은 옵션이 있습니다. 포인트 규모(Point Extents) : 서피스의 기본 그리드 셀 크기를 정의합니다. 여유(Looseness) : 변형 가능한 셀 크기를 정의합니다. 실제로 셀 크기는 포인트 규모 * (1 + 여유)입니다. 제곱미터당 포인트(Points Per Square Meter) : 유지되는 셀의 비율을 계산합니다. 이 프로퍼티는 그리드가 클 때 과잉을 제한합니다. Looseness : 기본 1. 0일경우 Extent의 길이 만큼, 1일경우 2배가 됨.  Attribute Filter를 생성하고, Material에 해당하는 Layer를 찾아서 이름을 넣어준다. Type을 Float로 하고 Float Value를 설정하면, 해당 머티리얼이 색칠된 정도 0~1에서 Operator에 의해 >(초과) 0.6초과 일 경우만 생성되게 할 수 있다. 값을 1로 하고 Equal을 이용해서 1인 경우만 생성되게 하는 것도 가능하다. plugin Water body lake를 넣으면, 이또한 Spline이라는 것을 알 수 있다. 따라서 Get Spline Data-Spline Sampler를 통해 사용할 수 있다. GetActorData와 Difference를 통해서 Lake내부를 제거해주기 PCG Mesh Mesh Sampler를 쓰기위해 Get Actor Property를 이용하면, 해당 액터가 ...

250604 저장불러오기

SaveGame 블루프린트 생성 Game Instance 생성, Init 오버라이드 AC_Inventory Save Load

250609 온라인

 Online Subsystem외에도 어느 서버를 사용할 것인지에 따라 플러그인을 추가해주어야 한다. 공통으로 OnlineSubsystem으로 시작한다. 헤더파일 CPP파일 cmd에서 Ipconfig를 통해 Ipv4를 넣어주면 된다. DefaultEngine.ini 수정 https://dev.epicgames.com/documentation/ko-kr/unreal-engine/online-subsystem-steam-interface-in-unreal-engine#%EC%99%84%EC%84%B1%EC%84%B8%ED%8C%85 [/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") [OnlineSubsystem] DefaultPlatformService=Steam [OnlineSubsystemSteam] bEnabled=true SteamDevAppId=480 bInitServerOnclient=true [/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" 전용 서버 없이 클라이언트가 서버를 만들 수 있게 함. 호스팅 Binaries와 Saved파일을 한번 제거해주고, Generate해주기 헤더파일 헤더파일 CPP 파일 CreateSessionComplete, FindSessionsComplete, JoinSessionComplete 생성자 CreateGameSession 세션을 생성하고 존재하면 제거한다. OnCreateSessionComplete ServerTrav...