Tech Art Portfolio


Role                   Technical Artist · 3D Generalist · Blueprinting · Environment Artist
                               
Tool Used                          




제가 만들지 않은 에셋(언리얼 기본 에셋 제외)은 전부 출처를 명시하였습니다.
명시하지 않은 기타 에셋, 텍스쳐는 제가 만들었음을 알려드립니다.
모바일 최적화가 되어있지않기 때문에 PC로 보시는걸 추천드립니다.


쉐이더 및 머티리얼





1. 미소녀 캐릭터 쉐이더 연구



호시노 앞,3/4,뒤  언리얼 엔진 에디터뷰, MMD Character Modeling/Texture/Rig by 十月的天空
블루아카이브 아트스타일을 레퍼런스로 한 머티리얼 쉐이더를 만들었습니다.




호시노 공식 일러스트를 모아 만든 자료

공식 스탠딩 일러스트에는 특수한 모양의 머리 하이라이트, 그리고 메모리얼 일러스트에서는 Rim이 강조된 연출도 있습니다.
또 다수의 캐릭터와 함께 등장하는 일러스트에서는 마치 Bloom을 적용한 듯한 효과와 얇은 아웃라인이 특징이었습니다.

저는 위에서 분석한 부분들을 같이 구현할 수 있는 쉐이더 개발을 위해 아래와 같은 목표를 가지고 진행했습니다.

얇은 아웃라인 효과와 안정적 색감
② Rim 효과 (끄고 킬수있게),  머리 하이라이트 강조
③ 카메라 왜곡 보정  (2D의 느낌 살리기)



                             
①  아웃라인 & 색감



아웃라인 머티리얼 파라미터 조정 예시

먼저 아웃라인은, 포스트 프로세싱으로 적용하게 되는 것보다 머티리얼에 적용하는게 깔끔하다고 판단하였습니다.
이런식으로 모든 파츠를 복사한 메쉬 (스킨 바인드 정보도 같이 복사)에 일괄적으로 M_Outline이라는 머티리얼로 지정 후 엑스포트,
언리얼 내에서 아웃라인 머티리얼을 넣어주는 식입니다.

눈의 흰자나 눈동자에는 아웃라인이 생기면 안되기 때문에, 제가 따로 모델링의 얼굴 파츠들을 분리해서 머티리얼 World offset 값을 조절해 정리했습니다.




다음으로, 안정적 색감을 위해 언리얼 자체 톤매핑을 피하기 위해 Dummy 커스텀 노드로 톤매핑 보정을 하였습니다.




머티리얼 내 Tonemap 보정부분



각 쉐이더 비교 및 빛 반응 테스트. 

톤매핑 보정을 적용한 2번째 쉐이더가 확실히 안정적으로 색감을 유지하는 것이 보입니다.


                           
②  Rim 효과와 머리 하이라이트




Rim 적용 차이 예시

Rim은 Rim mask 코드를 만들어서 마지막 모든 값이 들어가기전에 Add 해주고, Switch Param을 넣어서 끄고 킬 수있게끔 하였습니다.




Rim 마스크 노드





Rim 파라미터 조정 예시





③ 카메라 왜곡 보정



카메라 원근감 때문에 얼굴이 뒤틀리는 현상을 피하기 위해 FOV 보정을 머티리얼에 적용했습니다.



머티리얼내  FOV  코드부분  (World offset과  연결)

FOV Fix (메쉬 -> 카메라 이동수치) , FOV Focus (화면 중심 이동 가중값) 두 값을 이용하고, 머티리얼의 World Offset에 연결했습니다. 




FOV 보정 차이 예시



2.  스타일라이즈드 물 쉐이더 



툰 스타일 물 쉐이더





물 쉐이더 파라미터 조정예시

Plane에 적용하여 물의 깊이나 색깔, 물결 무늬 등등 다양한 부분을 커스텀 가능합니다.


3.  실시간 플레이어 위치 반응 머티리얼




Character Modeling/Texture/Rig and Animation by 조민지

게임 분위기에 어울리는 풀 머티리얼+꽃 머티리얼과
캐릭터가 풀과 꽃을 지나갈때마다 실제로 반응하게끔 하는 머티리얼을 만들었습니다.

MPC를 이용하여 플레이어의 실시간 위치를 레벨 블루프린트로 부터 받아 풀 머티리얼에 적용하는 방식으로 구현했습니다.

블루프린트 코드




4. SD 캐릭터 셀쉐이더




Character Modeling/Texture by 조민지
개발 중인 Rootism의 캐릭터 머티리얼 입니다.
아트 스타일과 성능을 동시에 만족하는 머티리얼을 만들고 싶었습니다.
Unlit 모드와 Emissive를 쓰는 쉐이더입니다.



 
Character Modeling/Texture by 조민지
같은 쉐이더를 적용한 주인공 캐릭터와 보스 캐릭터.

문제는, 이 쉐이더는 Unlit과 Emissive 머티리얼을 쓰기 때문에, 다른 물체의 그림자값을 받지 못합니다.
  
저는 해결을 위해 캐릭터의 특정 부위(허리소켓)에서부터 광원 사이를 일정 시간마다 라인트레이스하게 하고, 
충돌을 감지한 경우 머티리얼의 Emissive 값을 낮추는 코드를 넣었습니다.

블루프린트 코드 보기




적용 예시 영상




게임플레이 기능 개발 (Blueprint)  



1. UI 시스템 개발



언리얼 UMG와 머티리얼을 활용한 인터렉티브 메인메뉴, 3D asset by Jae Yoon Kim



졸업 작품인 Living Pipes에서는 모든 게임 시스템과 UI, 그리고 일부 모델링과 텍스쳐링을 담당했습니다.
디스토피아/근미래 배경인 작품의 비주얼을 강화시키면서도, 화면 내 UI 요소를 최소화하여
플레이어 디렉션이 확실한 UI 개발을 목표로 했습니다.



인게임 UI와 플레이 영상 예시.  3D asset by Jae Yoon Kim  and Ashton Walden





언리얼 5 UMG 및 게임 시스템 블루프린팅, 그리고 애니메이티드 머티리얼을 이용하여 개발하였습니다.
특히 왼쪽과 오른쪽 상단의 알림 UI 시스템은 게임 진행도와 다음 임무를 명확하게 해줘 테스터들에게 좋은 평가를 받았습니다.






2. 게임 내 퍼즐 시스템 개발






인게임내 퍼즐 플레이 예시.  3D asset by Jae Yoon Kim  and Ashton Walden


언리얼 블루프린트를 이용해 수리공인 플레이어가 파이프를 고치는 퍼즐을 만들었습니다. 
핸들을 돌리는 방향에 따라 물의 흐름이 바뀌고, 지정된 구역 모두를 통과해서 마지막 지점에 도달해야하는 일종의 한붓그리기 퍼즐입니다.
애니메이티드 머티리얼과 UI 피드백을 활용해 파이프 퍼즐의 플레이어 가이드 기능을 강화했습니다.



VFX (이펙트) 



1. Niagara 이펙트






마법진 이펙트





Niagara 이펙트 구조



Rootism에서 주인공이 쓸 마법 이펙트 중 마법진 이펙트를 Niagara로 만들었습니다. 간단한 파티클과 메쉬렌더 기반 이펙트입니다.






마법 (번개) 이펙트




Niagara 이펙트 구조




마찬가지로 Rootism에서 주인공이 쓸 마법 이펙트 중 하나인 번개 이펙트를 Niagara로 만들었습니다. 마스크 머티리얼과 리본 렌더러를 활용했습니다.








2. Houdini 디스트럭션 이펙트





언리얼내 렌더 영상.

Houdini로 마치 총알이나 창에 맞은 것처럼 구체가 파괴+특정방향으로 파편이 날아가는
 시뮬레이션을 만들었습니다.






SOP




DOP

창(혹은 총알)의 방향과 충격의 정도, 타이밍은 Geomatry Wrangle로 설정했습니다.



 
툴개발 및 프로그래밍


Maya Python 툴 제작



게임 제작 중, 머티리얼 프리픽스를 수동으로 넣는 것과
한 씬에서 모델링 작업한 메쉬들의 프리픽스 수정,
그리고 언리얼 임포트에 문제없도록 하는 프리즈나 히스토리 삭제 같은
반복적인 작업을 간소화 하기위해 기능들을 툴로 제작했었습니다.


머티리얼 정리 툴 코드
프롭 정리 툴 코드




Character Modeling/Texture/Rig and Animation by Harhtif 툴 적용 예시 영상

3Ds Max Scripting 툴 제작


3Ds Max에서 믹사모 리그 본 이름을 일괄적으로 언리얼 마네킹의 본이름으로 대치하여, 교체하는 간단한 툴제작을 해보았습니다.


MixamotoUE




Character Modeling/Texture/Rig and Animation by Harhtif툴 적용 예시 영상


© All rights reserved. Saeron Seok 2025