시뮬레이션

다음 설정의 대부분은 애니메이션을 적용할 수 있습니다. 이를 통해 시뮬레이션의 여러 단계에 맞게 설정을 조정할 수 있습니다. 예를 들어 하위스텝 이나 반복과 같은 렌더링 집약적인 설정이 꼭 필요한 경우 이를 높일 수 있으며, 충돌이 발생하지 않는 단계에서는 시뮬레이션 속도를 높이기 위해 이 값을 낮출 수 있습니다.

하위스텝[1..200]

이 파라미터는 시뮬레이션의 정밀도에 매우 중요한 역할을 합니다. 값이 높을수록 계산이 더 정확해지고 충돌 감지가 더 정밀해집니다(그에 따라 계산 시간도 더 길어집니다).

각 애니메이션 프레임은 여기에 지정된 하위스텝을 사용하여 내부적으로 시간적으로 나뉩니다. 각 하위 단계마다 시뮬레이션 알고리즘(제약 조건 효과, 오브젝트 위치 및 속도 계산 등)이 실행됩니다.

특히 빠른 속도로 침투하는 경우 이 값을 높여야 합니다. 빠른 속도로 이동하는 물체가 매달려 있는 천과 충돌한다고 상상해 보세요. 물체가 12번 프레임에서 천의 왼쪽에 있고 13번 프레임에서 오른쪽에 있다고 가정합니다. Cinema 4D는 충돌을 감지하지 못합니다( 하위스텝이 1로 설정된 경우). 예를 들어 프레임 '12.2'와 '12.3'을 계산하는 여러 개의 하위스텝을 사용하면 충돌이 올바르게 감지되고 계산됩니다.

하위스텝 (및 반복)은 시뮬레이션할 의류 오브젝트의 강성에 영향을 미친다는 단점이 있습니다. 하위스텝/반복이 클수록 천이 더 뻣뻣해집니다(즉, 구부러짐/신축성이 더 정밀해집니다).

간단히 말해, 많은 수의 하위 스텝과 반복을 적용하면 그에 상응하는 더 사실적인 결과를 얻을 수 있습니다. 대부분의 경우 이러한 값은 계산 속도를 관리 가능한 수준으로 유지하기 위해 낮게 유지해야 합니다. 즉, 수많은 제약 조건을 고려해야 하는 솔버는 지름길을 택하고 현실적인 결과에서 벗어날 수 있습니다. 이러한 편차는 주로 강성 부족(고무 같은 동작)에서 볼 수 있지만 경우에 따라서는 부정확한 충돌 등에서 나타날 수도 있습니다.

참고: 침투 횟수가 많은 경우, 하위스텝을 사용하기 전에 먼저 패스를 늘려 보세요. 전자가 더 빠르게 계산됩니다.

매우 높은 값(예: 200)은 정밀도가 증가하는 대신 감소하는 역설적인 동작이 발생할 수 있습니다. 그 이유는 GPU의 32비트 정밀도 때문입니다. 대신 하위스텝 대신 다음 반복 설정을 높이세요. 추가로 취할 수 있는 조치는 팁과 요령을 참조하세요.

반복[0..1000]

내부적으로는 수학적으로(!) 최적의 최종 결과(=모든 제약 조건 충족)에 최대한 가깝게 접근하는 반복 알고리즘이 사용됩니다. 반복은 하위스텝별로 수많은 제약 조건을 계산하는 빈도를 정의합니다.

예를 들어, 의류 동작에 미치는 실질적인 영향은 제약 조건이 더 잘 고정되기 때문에 직물이 더 단단해진다는 것입니다.

값이 높을수록 도트 지터를 방지하는 데 도움이 됩니다.

두 설정은 밀접하게 연결되어 있으며 비슷한 효과를 내므로 이전 매개변수인 하위 스텝을 참조하세요.

반복을 0으로 설정하면 내부적으로 다른 솔버가 사용되며, 이 솔버는 표준 솔버보다 더 느리게 수렴하므로 비유적인 의미에서 제약 조건을 다소 느슨하게 처리합니다. 스무싱 반복 횟수는 1로 설정됩니다.

이를 통해 시뮬레이션의 견고성과 균일성을 높일 수 있습니다. 그러나 천과 로프는 더 신축성이 있습니다.

특히 서로 상충되는 제약 조건이 많은 시뮬레이션(예: 제약 조건 A는 포인트를 왼쪽으로, 제약 조건 B는 오른쪽으로 이동하려는 경우)에서는 포인트 지터가 발생할 수 있습니다(다음 단락 참조). 이러한 경우 다른 솔버가 더 나은 결과를 생성할 수 있습니다.

더 크고 고무 같은 연성을 보완하려면 하위스텝을 늘리는 것이 좋습니다.

지터 방지.

다음 두 가지 설정은 주로 작은 영역에서 발생하는 지터를 줄이는 데 사용됩니다.

일반적으로 하위 단계를 줄이고 반복 횟수를 늘리는 데 도움이 될 수 있습니다.

스무싱 반복[0..1000]

다양한 제약 조건으로 인한 내부 포인트 계산으로 인해 포인트 편차가 커질 수 있으며, 이로 인해 갑작스러운 충동이 추가로 발생하는 듯한 인상을 줄 수 있습니다.

스무싱 반복을 0으로 설정하면 추가 평균 계산이 수행되므로 이 효과가 사라져 지터가 줄어듭니다.

이 매개변수는 강성 변화와 같은 부작용이 발생할 수 있으므로 필요한 경우에만 사용하세요.

감쇠[0..100%]

이 설정을 사용하면 시스템에서 속도/에너지를 제거할 수 있습니다. 최대 3%의 작은 값을 권장합니다. 값이 클수록 시뮬레이션이 물속에 있는 것처럼 보이게 됩니다.

시뮬레이션은 때때로 '폭발'하는 경향이 있는데, 이 값을 조심스럽게 높여서 이 문제를 해결할 수 있습니다.

또한 해당 태그 수준(예: 재정의)에서 마찰 값을 정의할 수도 있습니다(여기서도 선형 및 회전 운동에 대해 개별적으로 정의할 수 있습니다).

속도 제한

가속 제한

이 두 가지 설정은 주로 시뮬레이션 정지로 이어질 수 있는 불안정한 시뮬레이션 상태를 방지하는 데 사용됩니다. 지나치게 높은 속도 또는 가속도(포인트 레벨 모두)는 제한됩니다. 이렇게 하면 충돌을 줄이고 관통력을 피할 수 있으며, 동일한 효과를 얻으려면 패스 및/또는 하위스텝 설정 값이 엄청나게 높아야 합니다.

그래픽 카드에 과부하가 걸렸을 때 오류 메시지와 함께 시뮬레이션을 중지하는 운영 체제 보호 메커니즘인 'TDR(타임아웃 감지 및 복구)'이라는 효과도 언급해야 합니다. 이 효과는 두 설정 모두에서 줄일 수도 있습니다.

두 가지 방법 모두 시뮬레이션이 더 안정적으로 실행된다는 단점이 있지만, 전체 시뮬레이션이 감쇠되기 때문에 현실감이 떨어질 수 있습니다.

그런 다음 사용합니다:

속도 제한와 가속도의 근본적인 차이점은 전자의 경우 속도가 실제로 효과적으로 제한되는 반면, 후자의 경우 가속도 증가가 없더라도 속도 증가가 있을 수 있다는 점입니다(양수 가속도가 있는 한, 즉 속도가 증가하는 한).

속도 제한의 경우 : 다음과 같은 옵션이 있습니다:

이해하기 쉽지 않은 개념입니다. 원칙적으로 특정 요인에 따라 허용되는 최대 속도를 정의합니다.

참고:매우 빠른 애니메이션 충돌 오브젝트가 의상/소프트 바디와 충돌하는 경우, 속도 또는 가속도 제한이 너무 높으면 오브젝트 포인트가 충분히 빠르게 움직일 수 없기 때문에 충돌 오브젝트가 단순히 스매시할 수 있다는 점에서 문제가 될 수 있습니다.

바운딩 박스에서

위에서 씬 스케일링을 설정한 경우 여기에 허용되는 최대 속도를 정의합니다.

크기

위에서 절대값을 설정한 경우 여기에서 최대 허용 속도를 정의합니다.

반경

위에서 충돌 반경을 설정한 경우 여기에서 최대 허용 속도를 정의할 수 있습니다.

가속 제한에는 다음과 같은 옵션이 있습니다:

바운딩 박스에서

위에서 씬 스케일을 정의한 경우 여기에서 최대 허용 가속도를 정의할 수 있습니다.

Collisions

충돌 감지는 매우 중요한데, 첫째, 침투가 발생하면 보기 흉하고 둘째, 일단 침투가 발생하면 침투된 부위가 서로 끈끈하게 달라붙어 분리하기 어렵기 때문입니다. 그렇기 때문에 충돌에만 영향을 주는 일련의 별도 설정(아래)이 있으며, 계산 시간이 많이 걸리고 클로스의 강성 같은 중요한 속성도 수정해야 하는 하위스텝반복값을 늘렸을 때보다 더 빠르게 계산할 수 있습니다.

이러한 충돌 설정은 내부 계산 프로세스를 의미하며 설명이 복잡해 보이지만, 원칙적으로는 가능한 한 간단하게 설명되어 있습니다. 일반적으로 충돌이 문제가 되는 경우 값을 신중하게 늘려야 합니다.

패스[0..1000]

빠르게 움직이는 직물이 원통과 충돌하는 경우, 패스 값이 0이면 왼쪽에 관통점이 있고, 5이면 오른쪽에 관통점이 없습니다.

애니메이션 프레임당 충돌 감지를 수행할 빈도를 정의합니다. 충돌이 감지되면 동적 임시 충돌 제약 조건(다음 세 가지 설정을 사용하여 정밀도를 제어할 수 있음)이 생성되어 태그가 할당된 오브젝트가 다른 오브젝트 또는 자체 충돌 지오메트리를 통과할 수 없도록 합니다.

여기에 값을 1로 정의하면 시뮬레이션 프레임의 시간적 시작 지점에서 충돌 감지가 수행됩니다. 생성된 모든 충돌 제약 조건은 다음 충돌 감지까지 유지되며, 각 하위스텝에 대해 고려되고 평가됩니다.

특히 빠르게 회전하거나 일반적으로 비선형적으로 움직이는 지오메트리의 경우 이 값을 늘리는 것이 유리할 수 있습니다. 거의 모든 침투에 대해 패스를 늘리면 도움이 될 수 있습니다.

하위스텝패스보다 작지 않은지 확인해야 하며, 그렇지 않으면 아무 일도 일어나지 않습니다.

참고: 클로스와 로프 태그의 자동 충돌을 끄려면 패스 0으로 설정합니다. 충돌 오브젝트와의 충돌은 계속 작동합니다.

추가 반복[0..100]

이 파라미터를 사용하면 이전에 패스엔드 프레임 패스로 찾은 기존 충돌 컨스트레인트에 대해서만 추가 반복이 수행됩니다. 이는 충돌을 방지하는 데도 도움이 됩니다.

패스, 패스 종료 프레임 및/또는 하위스텝을 늘리기 전에 먼저 여기에서 이 옵션을 활성화해 보세요. 이 정도면 충분할 수도 있습니다. 추가 반복은 비교적 빠르게 계산할 수 있습니다.

종료 프레임 패스

이 파라미터는 실제로 모든 새 포인트 위치가 이미 계산된 시뮬레이션 프레임의 시간적 끝에 추가 충돌 쿼리를 삽입합니다. 이렇게 하면 다음 시뮬레이션 프레임이 계산될 때 (알고리즘이 처음에 간과했던) 기존 침투가 존재하지 않게 되어 시뮬레이션에 문제가 될 수 있습니다. 각 프로세스에 대해 새로 발견된 충돌 컨스트레인트는 반복에 정의된 횟수만큼 여러 번 계산됩니다.

1~3 범위의 작은 값만 혜택을 제공한다는 점에 유의하세요.

패스 값을 높일 수도 있지만 일반적으로 엔드 프레임 패스가 더 빠릅니다.

특히 움직이는 충돌 오브젝트의 경우 엔드 프레임 패스(및 추가 반복)를 늘리면 더 나은 결과를 얻을 수 있습니다.

Draw

사용

이러한 설정을 통해 일부 시뮬레이션 요소를 표시할 수 있습니다. 이는 정보 제공 목적으로만 사용됩니다. 표시 옵션을 사용하여 다음 설정에 대한 표시 구성을 활성화 또는 비활성화할 수 있습니다.

요소는 실제로 시뮬레이션이 시작될 때만 표시됩니다(따라서 일반적으로 프레임 1부터).

파티클

이를 사용하여 시뮬레이션된 오브젝트 포인트를 표시합니다. 충돌 반경( 메쉬 또는 스플라인의 경우 두께 또는 반경)도 표시됩니다.

충돌 반경

여기에서 대부분의 충돌 가능한 시뮬레이트 오브젝트에 대해 두께 설정으로 정의된 충돌 반경을 표시할 수 있습니다. 클로스, 소프트 바디 등의 경우 각 메쉬 포인트 주위에 표시되며, 리지드 바디의 경우 충돌 모양과 추가된 두께 이 시각화됩니다.

로프 방향

이 옵션은 로프 태그가 있는 스플라인을 위한 것입니다. 각 스플라인 포인트 사이에 녹색 벡터가 표시됩니다. 내부 스플라인 제약 조건이 강할수록 시뮬레이션 중에 벡터가 이웃 벡터의 정렬에서 벗어나는 일이 줄어듭니다( 곱슬 옵션에 특히 주의하세요).

스트레치 구속

이를 통해 구조를 보존하는 늘어난 구속을 표시할 수 있습니다. 이들은 항상 인접한 오브젝트 포인트와 연결 가능한( 쿼드 대각선) 대각선 연결 사이에서 실행됩니다.

구부리기 구속

이 모드는 - 물론 그다지 유익한 모드는 아니지만 - 의류 오브젝트가 단순히 그 자체로 접히지 않고 폴리곤 간의 각도 변화가 약간의 저항에 의해 반대되도록 하는 굽힘 제약 조건을 보여줍니다.

폴 구속

이 옵션을 사용하면 폴 컨스트레인트(소프트 바디 탭에서 비활성화되어 있더라도)를 표시할 수 있습니다. 기둥이 찢어져야 하는 경우 이 기둥도 숨겨서 표시되며 그리기 옵션은 비활성화해야 합니다.

커넥터

이 옵션은 커넥터 제약 조건을 표시하는 데 사용할 수 있습니다(커넥터 태그에서 비활성화되어 있거나 커넥터 태그가 선택되지 않은 경우에도). 기둥이 찢어져야 하는 경우 이 기둥도 숨겨서 표시되며 그리기 옵션은 비활성화해야 합니다.

리지드 바디 중앙

작은 축 시스템을 사용하는 리지드 바디의 질량 중심을 표시하는 데 사용됩니다. 여기서 무게의 힘이 작용합니다. 질량 중심은 리지드 바디 설정에서 자유롭게 배치할 수 있습니다.

리지드 바디 형태

예를 들어 충돌 형태 에서 빠르게 계산 가능한 대체 충돌 형태를 지정할 수 있습니다. 이 옵션은 뷰에 활성 충돌 모양을 표시합니다. 리지드 바디가 비활성화되면 모양이 검은색으로 표시됩니다.