Categories
Unreal

다이나믹 메시로 가변형 스태틱 메시 만들기

다이나믹 매시를 사용해서 형태를 바꿀 수 있는 스태틱 매시 만들고 사용하기

지오메트리 스크립트 플러그인 설치
다이나믹 매시 액터 생성 블루프린트를 사용할 수 있게 됨
다이나믹 매시 액터 생성 블루프린트를 하나 만든 뒤 자녀 블루프린트 생성
위와 같이 부모 블루프린트와 자녀 블루프린트를 생성함
자녀 블루프린트의 이벤트 그래프를 열고 on rebuild generated mesh 이벤트 검색(플러그인을 설치하고, 다이나믹 매시 액터 생성 블루프린트에서만 나타나는 이벤트 함수)
타겟 매시를 변수로 생성하고 DynamicMesh로 이름 붙임
시퀀스 노드를 연결 후 Append Box노드를 연결하고, 앞에서 변수로 설정한 다이나믹 메시를 타겟 매시로 연결
벡터 변수 생성하고 디폴트 값 입력
변수 핀 분해
벽 사이즈를 Append Box노드에 연결
컴파일 후 뷰포트로 가면 WallSize 변수에 입력한 크기의 벽이 나타난 것을 확인할 수 있음
시퀀스 노드에 새로운 매시를 계산하여 할당(allocate compute mesh)하고 직사각형 추가(Append rectangle XY), 추가한 직사각형 메시의 위치값을 핀분해
다이나믹 매시에 자르는 부분에 대한 변수를 지정하고 세팅
CutoutSize변수를 분해하여 X값과 Z값을 Dimension X와 Y 값으로 연결
Append Rectangle의 타겟 매시를 변수로 세팅하고 CutoutMesh로 이름 지정
시퀀스 핀을 추가하고 Apply Mesh Extrude 노드에 CutoutMesh 변수 연결하고 지오메트리 스크립트 메시 만드는 옵션 노드 추가
앞에서 만든 CutoutSize 변수의 Y값을 지오메트리 스크립트 메시 만들기 옵션에 연결
시퀀스 노드에 핀 하나 추가 후 Apply Mesh Boolean노드에 DynamicMesh 변수 연결
Apply Mesh Extrude 노드에 CutoutMesh 변수 셋팅하기
1. Apply Mesh Boolean노드의 Tool Mesh에 CutoutMesh 변수 연결
2. Tool Transform 핀 분해
3. Tool Transform Location 변수로 변환 후 CutoutLocation으로 이름 정하기
CutoutLocation 변수 세팅
Apply Mesh Boolean노드의 Operation을 Subtract로 변경
Apply Mesh Boolean노드 뒤에 다이나믹 매시 변수 세팅
코멘트 정리 1
코멘트 정리 2
뷰포트로 돌아가 확인하면 벽에 컷아웃이 생긴 것을 볼 수 있음
레벨에 배치하면 다이아몬드 모양의 세부 매시 변경 항목이 생김
세부 수치로 변경할 수도 있음
다양한 형태로 변경 가능
다시 블루프린트로 돌아가 불리언 변수 추가
시퀀스 2번째 핀에 Branch 삽입
컷아웃 부분 복제
Branch의 True에 연결(잘리는 부분 라운드 처리)
1. append Rectagle XY노드를 append Round Rectagle XY노드로 바꾸기
2. corner radius 변수로 설정
3. Transform Rotation의 X 값을 90으로 세팅(기존의 Append Rectangle XY 노드와 같은 값 : 캡쳐 시에 빼먹음)
corner radius 변수 디테일 패널에서 수정할 수 있도록 인스턴스 에디트 설정 체크
append Round Rectagle XY노드에서 steps round 핀 변수로 설정하고 인스턴스 에디트 설정 체크
isCutoutRounded? 변수도 밖에서 편집할 수 있도록 인스턴스 에디트 설정 체크
라운드 추가됨
값을 변경하면 다양한 형태로 구현 가능
다시 블루프린트로 돌아와서 블리언 변수 추가(바벨 설정)
인스턴스 에디트 설정
시퀀스에 핀을 하나 추가 후 Branch노드 추가 및 변수 구성
노드 구성 후 앵글 값 25
노드 구성 후 옵션 핀 분해
1. options Bevel Distance 변수로 변환하고 BevelAmount로 이름 변경 (인스턴스 에디트 설정 체크)
2. compute split nomals 노드 추가 후 split option 빈 분해
3. split option opening angle deg 값 25 입력
4. 다이나믹 매시 변수 SET
코멘트 정리
bevel 생김
머터리얼 인스턴스 오브젝트 변수 생성 (WallMaterial) 후 인스턴스 에디트 설정 체크
WallMaterial 변수 복사해서 CutoutMaterial로 이름 변경
1. 시퀀스에 핀 추가
2. configure material set 노드 구성
3. make array 구성
4. 핀 추가
5, 6. 머터리얼 인스턴스 변수 연결
코멘트 정리
1. apply mesh extrude노드 뒤에 remap material IDs 노드 추가
2. To Material ID 값 1로 수정 후 컴파일 저장
머터리얼 적당히 세팅
1. 시퀀스 노드에 핀 추가 후 recompute mesh UVs 노드 추가 (다이나믹 매시 변수 타겟에 연결)
2. Scale mesh UVs 노드 추가 후 Scale 값 핀 분해
3. scale X, Y 값 각각 변수로 설정 후 UV_Scale X, UV_Scale Y로 이름 변경
UV_Scale X, UV_Scale Y 변수 모두 디폴트 값 1로 설정 후 인스턴스 에디트 설정 세팅
부모 블루프린트 열기
1. 커스텀 이벤트 생성(GenerateNewStaticMesh)
2. get dynamic mesh 노드 구성
3. 다이나믹 매시 컴포넌트 세팅
4. create unique new asset path name 노드 구성
5. asset folder path 변수로 변환
셀프 레퍼런스 변수 만들기
노드 구성
콜리전 모드 변경
스태틱 매시 에셋 변수로 만들기
get material 말고 get materials로 선택
노드 구성하기
스태틱 매시 만들기 코멘트 처리
커스텀 이벤트 만들고(UpdateStaticMesh) 에디터에서 불러오기 옵션 체크
노드 구성
반드시 다이나믹 매시 컴포넌트에서 노드를 빼서 get dynamic mesh를 검색할 것!!!
선택된 네 개의 노드 복사
복사한 노드 붙여넣고 연결
노드 연결
코멘트 정리
에디터에서 불러오기 옵션 체크(앞에서 만든 커스텀 이벤트)
스태틱 매시 생성버튼과 업데이트 버튼 만들어짐

다이나믹 매시로 여러 형태를 만들고, 해당 형태를 스태틱 매시로 변환할 수 있음

하나의 다이나믹 매시로 여러 형태의 스태틱 매시를 만들어낼 수 있음.

출처 : https://youtu.be/L4vGmIw0PD4

Categories
Blender

Cylinder에 실린더 형상 추가

실린더 형상

Add Circle + E(xtrude) + S(cale)

Wrap Method 변경 및
Target 설정
Default (Nearst Surface Point) 적용 모습
Wrap Method –> Target Normal Project로 변경한 모습
Apply

실린더 면 삭제 후

투영한 원을 포인트로 연결하여 Fill로 채움

적용 예시