본문 바로가기
블렌더 강의 내용 정리용/[이것저것 한교수] 차근차근 블렌더

[이것저것 한교수] Soft Body

by 2월56일 2024. 10. 1.
728x90
반응형

 

 

해당 게시글은 개인적인 강의 정리용 게시글입니다.

여러분들은 이 게시글 대신 직접 영상을 보시는게 더 좋습니다.


Soft Body 시뮬레이션은 엣지를 스프링처럼 사용한다.

따라서 시뮬레이션 중 버텍스간 간격이 줄어들었다가 늘어났다가 한다.

 

몸의 움직임, 고무/젤라틴으로 이루어진 물체, 바람에 흔들리는 나뭇가지/밧줄, 천으로 만들어진 물체 등을 만들때

이용 할 수 있다.

 

 

Soft Body - Blender 4.3 Manual

Previous 예시

docs.blender.org


Soft Body

더보기

 

소프트 바디를 적용하고 실행시키면 이렇게 물에 띄운 고무오리마냥 둥실둥실 움직인다.

 

 

이는 Goal의 영향 때문인데, 해당 옵션은 현재 오브젝트의 위치, 형태 값을 유지시키려는 옵션이다.
따라서 오브젝트는 중력의 영향으로 하강하려 하지만 Goal의 영향으로 그러지 못한다.

 

소프트 바디의 충돌은 Collision을 이용한다.

Rigid Body 빼곤 다 Collision 써야한다.

 

 

Goal을 끄고, Plane에 Collision을 적용했다.

출렁이다가 아예 붕괴해버린다.

 

서브디바이드를 10번 한 상태이다.


Collision Collection ~ Goal

더보기


Collision이 적용된 Plane을 다른 컬렉션에 넣고,

 

Collision Collection을 플레인이 없는 컬렉션으로 지정하고 시뮬을 돌리면,

큐브가 그냥 플레인을 통과한다.

 

 

Object의 Friction은 마찰, Mass는 무게

Control Point는 버텍스 그룹을 선택해 Mass의 무게를 적용해준다.

 

 Simulation의 Speed는 시뮬레이션을 구현하는 속도를 뜻한다.

초당 25프레임의 애니메이션에선 속도를 1.3으로 조정하길 권한다고 블렌더 매뉴얼에 적혀있다.

32.5 / 프레임 속도 = 스피드

 


아래 웨이트를 깔아주어 버텍스 그룹을 만들어주고,

Mass를 10kg로 설정하면

 

이렇게 버텍스 그룹의 웨이트 페인트가 1로 칠해진 부분이 10kg의 질량을 가져 늘어나버린다.

 

 

Cache: 시뮬레이션에 대한 캐시 메모리

Bake를 누르면 1~250프레임에 해당하는 애니메이션을 캐시에 저장한다.

 

 

Goal: 현재 오브젝트의 위치, 형태 값을 유지시키려는 옵션

Strengths에서 어느정도로 형태를 유지할 지 설정 할 수있다.

높을 수록 유지력이 높고, 낮으면 낮다.

Min의 값이 0이면, 웨이트 페인트가 0인 부분은 버티는 힘도 0이다.
Max를 0.5로 설정한다면, 웨이트 페인트의 1이 발려진 부분의 버티는 힘이 0.5로 된다.

버텍스 그룹을 설정하면, 그 버텍스 그룹에만 Goal이 활성화 된다.


엣지 ~ Field Weights

더보기

소프트 바디는 엣지의 속성에 따라 결과가 달라진다.

 

 

Pull/Push: Pull이 높으면 엣지가 잘 안늘어난다.

반대로 Push가 높으면 엣지가 잘 늘어난다.

Pull의 0.5는 라텍스, 0.9는 스웨터, 0.999는 전분이 많은 냅킨이나 가죽 같은 곳에 활용,

0.999의 값을 사용하면 부드러운 바디 시뮬레이션이 불안정해지는 경향이 있으므로 그런 경우 이 값을 조금 낮춰야 한다.

 

Damp: 높을 수록 자잘한 움직임들이 적어진다.

 

Plasiticity: 높을 수록 충격을 받은 모양을 유지시키려고 한다.

 

Bending: 값이 높을 수록 원형을 유지하려는 힘이 강하다.

 

Length: 버텍스 간의 거리를 조절. %값으로 적용된다.

 

Collision: 충돌 애니메이션에 대한 더 자세한 설정

 

 

Aerodynamics: 물리적 작용에 대한 반응을 설정.

 

Stiffness는 직접 보는게 편하다.

우측이 Stiffness가 켜진 상태.

페이스의 형태를 유지시키려는 속성이다.

 

 

Self Collision은 같은 오브젝트의 버텍스 끼리의 충돌을 활성화 한다.

 

 

Solver는 시뮬레이션 시스템에 대한 설정,

Field Weights는 환경에 대한 설정이다.


예시

더보기

 

 

해당 부분만 버텍스 그룹으로 만들어주고 Assign을 누른다.

그렇게 되면 해당 부분만 웨이트 페인트의 값이 1로 발려진다.

 

 

Goal로 들어가 버텍스 그룹을 지정,

Strengths의 디폴트 값을 1로 지정해 해당 부분만 고정시키고,

Bending은 2, 무게는 3kg로 설정.

 

 

[Shift] + [A]로 포스 필드에서 바람을 꺼내온다.

포스 필드는 외부적 자극을 줄 때 이용한다.

 

 

80프레임에서의 힘은 0, 100프레임에서의 힘은 30.

 


생선

더보기

 

버텍스 그룹을 만든다.

지느러미의 소프트 바디가 들어갈 부분 중, 고정시켜야 할 부분에 Mark Seam을 박아 넣자.

 

 

[L]로 Seam 라인 까지만 선택해주고,

버텍스 그룹 추가 후 Assign해 웨이트 페인팅.

웨이트 페인트 모드에서 스무스를 넣고, 이터레이션을 좀 늘려 놓는 것도 해주자.

 

 

오리진을 생선 아가리 부분에 안착.

 


로테이션 Z축에 키프레임을 넣고,

 

 

그래프 에디터의 모디파이어에서 Noise를 킨다.

 

 

그래프 에디터가 발광을 한다.

이 상태에서 재생을 하면,

 

 

소스 엔진 기반 겜 오브젝트 낀 것 마냥 움직인다.

 

 

모디파이어의 설정을 보자.

Scale을 늘리면 움직임의 속도를 줄이고,

Strength를 낮추면 움직이는 각을 줄인다.

 

 

설정값.

웨이트 페인팅이 1로 된 부분의 힘은 1,

엣지의 해당 설정들의 값을 높임과 동시에 Stiffness를 켜 지느러미가 최대한 원형을 유지하도록 설정,

Self Collision의 계산타입을 Maximal로 설정해 버텍스끼리 통과하는 것을 방지.


728x90
반응형