사용자 인터페이스

여기에서 에셋과 그룹에 포트를 쉽게 추가하는 데 사용할 수 있는 다양한 데이터 유형과 데이터 형식을 찾을 수 있습니다. 필요한 경우 이러한 포트는 리소스 편집기를 통해 제한 사항과 관련하여 인터페이스에서 사용자 지정할 수 있습니다. 따라서 이 섹션에서는 리소스 편집기로 작업하는 방법도 살펴볼 것입니다.
다음은 이러한 요소를 사용하는 일반적인 단계와 이러한 요소를 사용하여 나만의 에셋을 만드는 방법에 대한 설명입니다.

참고:

에셋과 사용자 데이터를 사용하는 방법에 대한 자세한 정보와 예시는 에셋 구성 노드 설명을 참조하세요.


빠른 액세스:


작업 예제

이 예제에서는 표면의 일부를 임의로 선택하여 돌출시키고 그 과정에서 둥글게 처리하여 임의의 지오메트리에 디테일을 더하는 에셋을 개발하는 것이 목표입니다. 이와 같은 함수는 몇 개의 노드만으로 만들 수 있습니다. 반면에 노드 에디터 없이 에셋의 기능을 쉽게 제어할 수 있도록 대화 상자를 만드는 것은 더 어려울 수 있습니다. 이를 위한 몇 가지 옵션이 있으며, 모두 살펴볼 것입니다.

하지만 에셋 브라우저에셋 구성 노드에서 노드 수정자 그룹을 호출하는 첫 번째 단계부터 시작해 보겠습니다. 거기에서 노드 수정자오브젝트 관리자로 직접 드래그합니다. 여기서 이 항목은 디포머처럼 작동하므로 오브젝트에 종속되어야 합니다. 따라서 큐브와 같은 간단한 프로비티브를 직접 만들고 노드 수정자를 직접 할당합니다. 아직 기능이 채워지지 않았기 때문에 지금은 큐브에 대해 아무것도 변경되지 않습니다.

그런데 노드 선택 그룹은 주로 부모 오브젝트의 포인트, 엣지 또는 폴리곤 선택을 조작하거나 만드는 데 사용된다는 점을 제외하면 동일한 원리에 따라 사용할 수도 있습니다.


노드 수정자 그룹을 사용하면 오브젝트 관리자에서 지오메트리를 직접 편집할 수 있습니다.

노드 수정자 그룹의 콘텐츠를 보고 편집하려면 노드 에디터를 열어야 합니다(아래 이미지 참조). 이렇게 하려면 Cinema 4D의 노드 레이아웃으로 전환하거나 창 메뉴에서 노드 에디터를 열면 됩니다. 오브젝트 관리자에서 노드 수정자 항목을 선택하면 노드 에디터캡슐 모드에서 자동으로 열리므로 이 에셋 구성 노드의 콘텐츠와 입출력만 표시됩니다. 노드 에디터모드 메뉴 (아래 이미지의 1번 참조)를 사용하여 언제든지 수동으로 전환할 수도 있습니다.

숫자 2 옆에는 현재 표시된 에셋 캡슐의 이름(여기서는 노드 수정자)을 읽을 수도 있습니다. 또한 노드 에디터의 왼쪽과 오른쪽 엣지에 에셋 브라우저속성 관리자를 직접 표시하는 것도 도움이 될 수 있습니다(아래 이미지의 3번 참조). 이렇게 하면 노드 에디터를 최대화하여 복잡한 설정을 처리할 때 유용하게 사용할 수 있습니다.


캡슐 모드에서 노드 에디터의 다양한 요소입니다.

3번의 두 아이콘을 활성화하면 왼쪽에는 에셋 브라우저 ( 4번 참조)가, 오른쪽에는 속성 관리자 ( 5번 참조)가 표시됩니다. 이 영역들 사이에는 실제 노드 에디터가 있으며, 왼쪽에는 입력 영역( 6번 참조)이, 오른쪽에는 선택한 노드 수정자 그룹의 출력 영역( 7번 참조)이 둘러싸고 있습니다. 저희는 지오메트리 입력과 출력이 특히 흥미로웠습니다. 왼쪽의 지오메트리 입력은 오브젝트 관리자에서 에셋 구성 그룹이 종속된 오브젝트의 지오메트리를 제공합니다. 이 경우의 큐브는 정육면체입니다.
이제 이 지오메트리는 설정 내에서 처리할 수 있습니다. 그 결과 수정된 지오메트리가 생성되며, 이 지오메트리는 원래 큐브를 대체하기 위해 그룹의 지오메트리 출력으로 라우팅되어야 합니다.


노드 수정자 그룹에 첫 번째 함수를 추가합니다.

노드 수정자 그룹을 기능적 에셋으로 발전시키려면 지오메트리를 처리할 수 있는 노드 하나만 추가하면 충분합니다. 이러한 노드는 에셋 브라우저지오메트리 수정자 그룹에서 다수 찾을 수 있습니다. 거기서 분할 노드를 선택하고 에셋 브라우저에서 노드 에디터로 바로 드래그합니다.
이 노드의 왼쪽에는 처리할 지오메트리에 대한 입력이 있습니다(위 이미지의 숫자 1 ). 마우스로 연결선을 드래그하여 그룹의 지오메트리 입력 과 노드의 지오메트리 입력 사이에 연결을 생성하기만 하면 됩니다. 같은 방법으로 노드의 지오메트리 출력 ( 2번 참조)과 그룹의 지오메트리 출력 사이에 연결을 설정합니다. 그 후에는 이미 지오메트리의 변화를 확인할 수 있을 것입니다. 필요한 경우 뷰포트에서 와이어프레임과 함께 고로우 셰이딩(선 ) 표시로 전환하여 오브젝트의 엣지도 표시되도록 합니다(다음 이미지 참조).
이 경우 큐브는 더 세분화됩니다. 예를 들어, 어떤 종류의 선택(포인트, 엣지 또는 폴리곤)을 평가할지 또는 오브젝트를 얼마나 자주 세분화할지는 속성 관리자에서 분할노드를 선택한 후 설정할 수 있습니다(위 이미지의 3번 참조).


노드 수정자 그룹에 세분화 노드를 추가한 후 수정된 큐브입니다.


속성 관리자를 통해 입력 포트 생성하기

이 사례의 분할 노드와 같은 노드는 속성 관리자에서 많은 설정을 제공하며, 그 중 일부는 노드 수정자 그룹 사용자도 관심을 가질 수 있습니다. 한 가지 성가신 점은 속성 관리자에서 설정을 편집하기 전에 항상 노드 에디터에서 해당 노드를 선택해야 한다는 점입니다. 모든 설정을 노드에서 입력 포트로 만든 다음 그룹의 입력 페이지에 연결할 수도 있기 때문에 이 문제에 대한 해결책이 있습니다. 여기서는 먼저 선택 노드의 유형 설정에 대해 이 작업을 수행하여 사용자가 나중에 분할 함수를 제한하는 데 사용할 선택 요소(포인트, 엣지 또는 폴리곤)를 선택할 수 있도록 하겠습니다.


속성 관리자를 통해 매개변수를 입력 포트로 추가합니다.

위 이미지는 이 과정을 보여줍니다. 먼저 분할 노드를 선택하여 속성 관리자에서 해당 설정을 확인합니다. 이미지에서 숫자 1이 표시된 열에서 작은 원형 기호를 찾을 수 있습니다. 이 원 중 하나를 Cmd/Ctrl+클릭하면 해당 파라미터가 노드에서 입력 포트로 바로 표시됩니다. Type 매개변수와 함께 사용해 보세요. 2번에서 볼 수 있듯이 노드에서 원하는 타입 포트를 얻습니다. 이제 이 포트가 그룹의 입력 측에 연결되어야 노드 수정자 그룹의 사용자가 볼 수 있습니다. 이를 위해 그룹의 입력 영역에 포트도 만들어야 합니다.


노드 입력을 그룹 입력에 연결하기

유형 노드 입력과 일치하는 그룹 입력은 간단한 드래그 앤 드롭 동작으로 만들 수 있습니다. 이는 아래 이미지에 나와 있습니다.


새 그룹 입력을 만듭니다.

분할 노드의 새 유형 입력에서 그룹의 왼쪽 입력 영역까지 연결선을 그린 다음 마우스 버튼을 놓습니다. 새 입력 추가하기를 선택하면 작은 컨텍스트 메뉴가 나타납니다. 위 이미지의 아래쪽 절반에서 볼 수 있듯이, 이렇게 하면 해당 그룹에 새로운 유형 입력이 생성되며, 이는 노드의 유형 입력에 자동으로 연결됩니다. 따라서 속성 관리자에서 유형 설정을 더 이상 사용할 수 없습니다. 위 이미지의 오른쪽에서 포인트, 엣지폴리곤 옵션을 사용할 수 없게 된 것을 확인할 수 있습니다.
이 단계의 장점은 포트의 데이터 유형에 대해 걱정할 필요가 없다는 것입니다. 원래 노드 매개변수의 데이터 유형과 사용자 인터페이스가 자동으로 채택됩니다.

직접 확인해 보겠습니다. 오브젝트 관리자에서 노드 수정자 그룹을 선택하고 속성 관리자에서 입력 탭을 살펴봅니다. 이제 유형 옵션을 직접 보고 조작할 수 있습니다(아래 이미지 참조).


속성 관리자에서 그룹의 새 제어 요소를 나타냅니다.

물론 원하는 경우 이 새 컨트롤의 이름을 변경할 수도 있습니다. 이렇게 하려면 노드 에디터에서 새 그룹 입력의 이름을 더블 클릭하고 거기에 새 이름을 입력하기만 하면 됩니다. 예를 들어, 사용자가 이 설정으로 무엇을 하는지 직접 이해할 수 있도록 여기서는 제한적 선택 유형이라는 용어를 사용합니다(다음 이미지의 1번 참조).


속성 관리자에서 그룹의 새 제어 요소를 나타냅니다.


개별 사용자 데이터 포트 추가

그러나 사용자를 위한 새로운 컨트롤은 노드의 기존 입력 포트와 독립적으로 생성할 수도 있습니다. 예를 들어 연결할 노드에서 기본적으로 제공되지 않는 특수 데이터 유형이나 제어 요소를 제공하려는 경우 유용할 수 있습니다. 예를 들어, 수학적 계산을 위해 입력을 먼저 사용한 다음 그 결과를 다른 노드에 전달할 수 있습니다.

이 예시에서는 분할 노드에서 분할 수를 제어할 수 있어야 합니다. 이 값은 정수 값이므로 Integer 컨트롤만 사용할 수 있습니다. 에셋 브라우저사용자 인터페이스 요소 항목에서 이러한 항목을 찾을 수 있습니다:

원칙적으로 세 가지 요소 모두 우리의 목적에 적합하지만, 분할 수준을 지정할 때는 일반적으로 작고 양수인 값만 유용합니다. 또한 설정에 사용하기 전에 사용자가 입력한 값의 타당성을 확인하는 방법이나 원하는 경우 자동으로 제한하는 방법도 배웁니다.
여기서는 단순하게 유지하며 에셋 브라우저에서 IO Integer 항목을 노드 에디터로 드래그합니다. 그룹에 정수 값에 대한 새 입력이 자동으로 생성됩니다. 기본 분할(다음 이미지의 1번 참조)와 같이 더블클릭하여 원하는 대로 이름을 다시 변경할 수 있습니다. 지오메트리를 추가로 처리하기 전에 분할 수준을 선택하는 데 사용됩니다.


그룹에 새 입력 포트를 수동으로 만들고 이름을 변경합니다.

유형 설정을 연결할 때와 마찬가지로, 이번에는 분할 노드에서 분할수에 대한 적절한 입력이 다시 필요합니다. 이렇게 하려면 노드를 선택하고 속성 관리자에서 분할수 옆의 원 아이콘을 Ctrl+클릭합니다 (다음 이미지의 1번 참조). 노드에 해당하는 입력이 나타납니다( 2번 참조).


필요한 노드 입력을 추가합니다.

또는 노드에서 직접 새 입력을 추가할 수도 있습니다. 이렇게 하려면 노드를 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 받은 편지함 추가를 선택합니다. 그러나 많은 설정을 제공하는 노드의 경우 올바른 포트 이름을 찾는 것이 어려울 수 있습니다. 따라서 대부분의 경우 위에서 설명한 Cmd 또는 Ctrl+클릭 방법을 사용하는 것이 좋습니다.

마지막으로 마우스로 드래그하여 그룹의 새 기본 분할 포트와 노드의 분할 입력 사이를 연결합니다. 오브젝트 관리자에서 노드 수정자 그룹을 선택하면 속성 관리자가 두 사용자 설정을 모두 표시합니다. 기본 분할 값을 점진적으로 변경하면 큐브가 더 크게 또는 더 작게 추가적으로 세분화되는 것을 직접 관찰할 수 있습니다. 약간 성가신 점은 이 값이 선택 항목의 선택 옵션 위에 표시된다는 것입니다(다음 이미지 참조). 따라서 이제 사용자 데이터의 순서에 영향을 줄 수 있는 방법을 살펴보겠습니다.


속성 관리자에서 사용자 데이터를 확인합니다.

사용자 인터페이스 그룹의 IO 요소는 에셋뿐만 아니라 일반 노드 그룹에 개별 입력을 추가하는 데에도 사용할 수 있습니다. 여기서 유일한 차이점은 기본적으로 (외부에서 값을 수신하는 노드가 이미 포함되어 있지 않는 한) 열린 그룹은 입력 또는 출력 범위를 표시하지 않는다는 점입니다. 따라서 열린 그룹의 왼쪽과 오른쪽 엣지에 있는 회색 영역이 처음에는 여전히 누락될 수 있습니다. 그룹에 새 포트를 만들면 자동으로 생성됩니다. 아래 이미지가 이를 설명합니다.


왼쪽에 노드 에디터에서 빈 그룹을 볼 수 있습니다. 그룹을 보면 오른쪽에서 알 수 있듯이 기본적으로 입력이나 출력이 없습니다.


왼쪽에서, 먼저 에셋 브라우저에서 IO 지오메트리 입력을 그룹으로 드래그한 다음 이 새 입력을 돌출 노드에 연결했습니다. 그룹에 일치하는 출력을 추가하려면 노드의 지오메트리 출력을 끌어다 놓은 다음 새 출력 추가를 선택합니다. 오른쪽에서 포트별로 완료된 그룹을 볼 수 있습니다.

그룹에 새 입력을 추가하려면 에셋 브라우저유저 인터페이스 그룹에서 항목을 끌어 놓거나, 그룹에 이미 노드가 있는 경우 포트 입력에서 빈 노드 에디터로 끌어다 놓은 다음 새 입력 추가하기를 선택하면 됩니다. 노드의 출력 포트에서도 동일한 작업을 수행하여 그룹에 출력을 추가할 수 있습니다. 이는 위 이미지의 왼쪽에서 확인할 수 있습니다.
포트를 추가하고 구성하는 또 다른 옵션은 다음 섹션에서 설명하는 리소스 편집기에서 제공합니다.


리소스 편집기

포트 순서는 노드에서 직접 변경할 수 있으며 드래그 앤 드롭을 통해 그룹 입력 및 출력에서도 변경할 수 있습니다. 이 기능은 예를 들어 교차하는 커넥터 라인을 고정할 때 유용합니다. 이는 기능 자체에는 중요하지 않지만 설정의 명확성을 높이는 데 도움이 될 수 있습니다. 그러나 이렇게 해도 속성 관리자에서 그룹 입력이 표시되는 순서는 변경되지 않습니다. 이는 주로 그룹에 입력을 추가한 순서에 따라 달라지지만, 리소스 편집기를 사용하면 이 문제를 해결할 수 있습니다.

현재 설정을 위해 열려면 노드 에디터에서 마우스 오른쪽 버튼을 클릭하고 컨텍스트 메뉴에서 리소스 편집 ...을 선택합니다(다음 이미지 참조).


그룹의 리소스 편집기를 엽니다.

특히 흥미로운 것은 리소스 편집기의 왼쪽 열로, 위쪽에는 에셋의 현재 입력과 출력이 나열되고(다음 이미지의 1번 참조) 아래에는 추가 입력에 사용할 수 있는 옵션이 표시됩니다( 2번 참조). 이 옵션은 IO Integer 입력을 생성하는 데 이미 사용한 에셋 브라우저 사용자 데이터와 동일합니다.


리소스 편집기의 왼쪽 열

리소스 편집기를 사용하여 에셋 그룹에 원하는 입력을 직접 생성할 수도 있습니다. 이렇게 하려면 아래쪽 목록(위 이미지의 2번 참조)에서 원하는 항목을 위쪽 포트 목록( 1번 참조)의 입력 항목 바로 아래로 끌어다 놓으면 됩니다. 여기에서도 사용자가 추가한 포트는 더블클릭하여 개별적으로 이름을 변경할 수 있습니다.

입력 그룹의 항목 순서는 속성 관리자의 매개변수 순서를 자동으로 반영합니다. 이제 적절하게 다시 정렬할 수 있습니다. 또한 여기에서 정렬할 요소, UI - 그룹UI - 구분 기호를 아래쪽 목록에서 위쪽 계층의 원하는 위치로 직접 드래그하는 것도 더 쉽습니다. 그러면 하위 카테고리(UI - 그룹)와 간단한 구분 기호(UI - 구분 기호)를 추가하여 보다 광범위한 매개변수 목록을 구성할 수 있습니다.
UI - 그룹은 주문 요소처럼 작동하며, 그룹 이름을 지정하고 리소스 편집기에서 그 아래에 다른 입력을 정렬할 수 있습니다.
다시 정렬할 때는 선택 유형 제한 후에만 기본 분할이 표시되도록 하고 UI - 구분 기호 요소(위 이미지의 1번 참조)로 이 설정을 완료하세요. 그런 다음 리소스 편집기를 닫습니다. 변경 사항은 자동으로 적용됩니다.


종속 매개변수

특정 설정이 사용되는 경우에만 관련성이 있는 매개변수가 있습니다. 예를 들어, 많은 모델링 기능의 최대 각도 설정그룹 유지 옵션을 활성화한 후에만 사용할 수 있습니다. 예를 들어 에셋 그룹의 사용자가 최대 각도 설정을 사용할 수 있도록 하려면 폴리곤 그룹 보존을 위한 관련 옵션도 함께 가져오거나 설정 내에서 최대 각도도 항상 사용할 수 있도록 해야 합니다.

다음 이미지에서 볼 수 있듯이, 노드에서 이미 그룹으로 구성된 파라미터가 리소스 편집기의 하위 그룹에도 표시되고 입력 그룹에는 표시되지 않을 수도 있습니다.


그룹화된 매개변수는 하위 그룹에 자동으로 표시됩니다.


데이터 유형 및 사용자 인터페이스 사용자 지정

사용자 입력으로 설정에서 제어하려는 속성이나 기능에 따라 매개변수의 컨트롤을 사용자 지정하고 기본값이나 제한을 지정하는 것이 유용할 수 있습니다. 이러한 모든 작업은 리소스 편집기에서도 수행할 수 있습니다. 이렇게 하려면 사용자 데이터가 포함된 에셋의 리소스 편집기를 열고 리소스 편집기의 왼쪽 상단 목록 영역에서 편집하려는 입력 값을 선택합니다. 이전 섹션에서 이미 이 영역에서 입력 순서를 사용자 지정할 수 있으며 여기에 그룹이나 구분 기호를 삽입할 수도 있다는 것을 살펴봤습니다( UI - 그룹UI - 구분 기호 요소 사용). 그러나 매개변수의 인터페이스를 편집하려면 리소스 편집기의 가운데 열을 살펴보세요.


리소스 편집기에서 선택한 IO - 정수 요소에 대한 일반 및 고급 설정

위 이미지에서 볼 수 있듯이 일반고급의 두 가지 설정 페이지를 사용할 수 있으며, 일반 설정에는 이미 가장 중요한 기능이 포함되어 있습니다. 순서대로 살펴보겠습니다:

위의 설정 옵션에서 볼 수 있듯이, 간단한 IO - 플로트 매개변수에 후속 슬라이더를 추가하거나 입력할 수 있는 값을 제한하거나 조정하는 것도 매우 쉽습니다.

리소스 편집기고급 설정에 대해서도 간단히 살펴보겠습니다.


사용자 데이터 처리

메모리 문제를 일으킬 수 있는 분할에 너무 많은 입력을 허용하지 않는 등 대부분의 경우 입력된 값을 확인하거나 변환하는 것이 좋습니다. 또한 다른 경우, 예를 들어 백분율 값을 IO Float - 강도 - 슬라이더를 통해 입력하면 추가 처리를 위해 다른 숫자 값으로 변환할 수 있습니다. 위 섹션에서 읽을 수 있듯이 숫자 입력을 기다리는 각 매개변수에 대해 리소스 편집기에서 직접 값 입력 제한을 지정할 수 있습니다. 그러나 특정 수학적 계산과 같이 설정에서 이러한 제한을 직접 변환해야 하는 경우도 있습니다. 따라서 이 섹션에서는 숫자를 변환하거나 원하는 값 범위로 제한하는 방법을 살펴봅니다.


입력 제한


클램프 노드

이에 적합한 첫 번째 노드는 에셋 브라우저수학 카테고리에서 찾을 수 있는 클램프 노드입니다. 입력 포트를 그룹의 기본 분할 포트에 테스트용으로 한 번 연결한 다음 클램프 노드결과 출력을 분할 노드의 분할 입력에 연결합니다. 각 입력 포트에는 하나의 연결만 있을 수 있으므로 이전 연결은 자동으로 삭제됩니다. 그렇지 않으면 클램프 노드를 연결하기 전에 이전 연결을 더블클릭하여 제거할 수도 있습니다.

이제 클램프 노드는 먼저 속성 관리자에서 결과 출력에서 얻고자 하는 값에 해당하는 데이터 유형을 제공합니다. 따라서 다시 정수(약어: Int)가 되어야 합니다.
최소값최대값의 사양은 최대값으로 허용할 값의 범위를 나타냅니다. 입력값이 최소값보다 작더라도 최소값만 출력됩니다. 따라서 훨씬 더 높은 값을 입력해도 최대값의 최대값이 출력됩니다.


범위 맵퍼 노드

이 노드는 수학 노드 카테고리에도 속합니다. 이 노드는 값 범위를 변환하는 데 사용할 수 있습니다. 예를 들어 0%에서 100% 사이의 값을 입력하면 0.0에서 5.0 사이의 값이 출력될 수 있습니다. 최소 입력최대 입력 값은 허용되는 사용자 입력이 속할 수 있는 값의 범위를 정의합니다. 범위 맵퍼는 이러한 최대값 자체를 제한하지 않습니다. 따라서 다시 범위 맵퍼 노드의 입력 앞에 클램프 노드를 연결하여 가장 작은 입력가장 큰 입력 사이의 값만 처리하도록 할 수 있습니다. 다음 이미지는 이에 대한 예를 보여줍니다.


범위 맵퍼 노드 사용

위의 예에서는 IO Float - 강도 - 슬라이더를 통해 백분율 값을 그룹의 입력으로 사용했습니다. 예를 들어 0%에서 100% 사이의 입력만 허용하려면 이전 예제에서와 같이 클램프 노드를 연결하면 됩니다. 백분율 값은 내부적으로 부동 소수점 값으로 처리되며, 여기서 100%는 1.0에 해당합니다. 따라서 최소값은 0.0을 사용하고(위 이미지의 1번 참조), 최대값은 1.0을 클램프 노드에 사용해야 합니다( 2번 참조). 이 예제에서는 이러한 값을 노드에 직접 입력하지 않고 에셋 브라우저수학 섹션에서도 찾을 수 있는 값 노드를 사용합니다. 이 노드는 단순히 노드에 입력한 것과 동일한 값을 결과 출력에 제공합니다. 이 기능은 여러 노드에서 동일한 값을 사용해야 할 때 항상 유용합니다. 이 경우 이 값은 값 노드에서 한 번만 편집하면 연결된 모든 노드에서 바로 사용할 수 있습니다.

이 경우 이미 언급한 범위 맵퍼 노드의 가장 작은 입력 과 가장 큰 입력 에 영향을 줍니다. 따라서 이러한 입력과 값 노드를 적절히 연결하세요. 고정 입력 범위가 정의되어 있으므로 범위 맵퍼에서 직접 입력할 수 있는 최소 출력최대 출력 값에 집중할 수 있습니다. 그러면 결과 출력의 계산은 고전적인 3의 법칙에 따라 이루어집니다. 그러면 0%에서 100% 사이의 입력값은 자동으로 최소 출력최대 출력 사이의 값으로 변환됩니다.


모듈로 노드

경우에 따라 값의 반복 동작을 시뮬레이션하는 것이 도움이 될 수 있습니다. 예를 들어, 0°보다 낮거나 360°보다 높은 경우에도 0°와 359.999° 사이의 값 범위로 자동 변환되는 각도 값을 상상해 보세요. 클램프 노드와 같은 입력 값의 강한 제한과 달리, 입력 값을 늘리거나 줄이면 계속해서 조정된 새 값이 나오지만 이 역시 고정된 제한 사이에 있습니다. 예를 들어 입력된 각도 400°는 400°에서 360°를 완전히 회전하면 잔여 각도가 40°가 되므로 결과 값 40°로 이어집니다.
이 수학 함수는 수학 노드 그룹에 모듈로 노드로 존재합니다.


모듈로 노드 계산을 위한 다양한 예제

위 이미지에서 볼 수 있듯이 모듈로에는 두 개의 입력이 있습니다. 하단 입력란에는 항상 허용 가능한 최대 값을 입력합니다. 예를 들어 각도 값을 0°에서 360° 사이로 제한하려면 360을 입력합니다. 모듈로는 일반적으로 하한이 0인 경우, 즉 0과 결과적으로 더 낮은 입력 값 사이의 값만 허용하는 방식으로 작동합니다.

참고 1:

각도를 처리할 때, 많은 수학 노드가 라디안 단위의 각도를 기대한다는 점에 유의하세요. 360°는 2*pi 값에 해당합니다. 이 변환에는 변환 노드 그룹각도 단위 노드를 사용합니다.

예를 들어, 위쪽 입력란에서 사용자가 정의한 값을 모듈로 노드에 전달합니다. 그러면 결과 출력에서 항상 0과 두 번째 입력 값 사이에 있는 값을 얻게 됩니다. 위 이미지의 예를 참조하면 결과는 다음과 같이 생성됩니다:

참고 2:

입력 2의 값은 일반적으로 양수로 사용되지만 입력 1의 값은 음수일 수도 있습니다. 각도가 있는 예제에서 -400°를 입력하면 -40°의 결과가 나옵니다.


IO Float로 사용자 데이터를 여러 번 사용하기

종종 사용자의 입력은 노드 설정 내 여러 위치에서 사용될 수 있습니다. 따라서 그룹 또는 에셋의 입력은 노드 또는 다른 노드의 여러 입력에 동시에 연결할 수도 있습니다. 그러나 설정에서 이러한 노드의 위치에 따라 연결이 설정을 가로지르면 금방 혼란스러워질 수 있습니다. 이러한 경우 입력 포트를 분리하는 것이 도움이 될 수 있습니다. 다음은 간단한 예입니다.


위의 설정에서는 임의 함수에 대해 서로 다른 초기 값을 설정하기 위해 정수 값을 여러 번 사용했습니다. 아래에서 해당 노드에서 시작 값 입력을 직접 사용하는 수정된 설정을 볼 수 있습니다. 이렇게 하면 그룹의 왼쪽 입력 쪽에 긴 연결이 필요하지 않습니다.

위의 예시에서 볼 수 있듯이, 입력값을 처리하는 노드에서 직접 사용함으로써 설정의 가독성과 명확성이 향상됩니다. 이렇게 하려면 그룹의 왼쪽 엣지에서 해당 입력의 이름을 설정으로 끌어다 놓기만 하면 됩니다. 해당 입력 값을 제공하는 특수 노드 유형이 생성됩니다. 이러한 플로팅 IO 노드는 설정에서 원하는 수만큼 생성할 수 있습니다.


설정 완료

이제 몇 개의 노드를 추가하여 설정을 완료하고 흥미로운 결과를 얻을 수 있습니다. 노이즈 선택은 세분화된 오브젝트에 무작위로 폴리곤을 생성합니다. 이렇게 하려면 임계값반전 옵션을 그룹에 대한 사용자 입력으로 생성합니다.
노이즈 선택 결과를 폴리곤 베벨 노드에 전달하여 이러한 폴리곤을 돌출시키고 필요에 따라 스케일을 조정합니다. 예를 들어 여기에서 옵셋안쪽으로돌출 함수의 값을 출력할 수 있습니다.
새로 생성된 노드의 결과를 노이즈 선택의 지오메트리와 비교합니다. 이렇게 하면 폴리곤 베벨로 만든 새 폴리곤만 포함된 선택 영역이 표시됩니다. 마지막으로, 이 폴리곤 선택소프트 옵션이 활성화된 다른 분할 노드에 전달하면 라운딩 분할이 이 새로운 지오메트리 영역으로만 제한됩니다. 출력 지오메트리를 그룹의 지오메트리 출력에 연결하면 뷰포트에서도 계산 결과를 볼 수 있습니다.


노드 수정자 그룹 설정이 완료되었습니다.


위의 설정이 간단한 큐브에 미치는 영향


개별 IO 요소

아래에서 노드 설정에서 에셋 또는 그룹에 사용하여 개별 입력 및 출력을 정의하는 데 사용할 수 있는 모든 IO 요소의 전체 목록을 확인할 수 있습니다.


IO - 열거형

이러한 요소는 사용자에게 드롭다운 메뉴 또는 여러 모드를 버튼으로 제공하려는 경우에 유용합니다. 기본적으로 이러한 요소에는 각각 세 가지 선택 옵션이 있으며, 리소스 편집기에서 원하는 대로 이름을 바꿀 수 있습니다. 두 IO 요소 모두 첫 번째 목록 요소에 대해 0부터 시작하는 정수 값을 반환합니다. 예를 들어 스위치 노드를 사용하여 이러한 값을 다른 값으로 변환할 수 있습니다.


리소스 편집기의 두 열거형 요소를 비교했습니다. 오른쪽에서는 작동 요소가 어떻게 다른지 확인할 수 있습니다.


IO 출력

이를 통해 그룹 단위로 개별 출력 포트를 추가할 수 있습니다. 이 출력의 데이터 유형은 아직 정의되지 않았지만 리소스 편집기를 통해 개별적으로 설정할 수 있습니다.


IO Bool - 확인란

이 요소는 기능을 활성화 또는 비활성화하는 등의 간단한 옵션 또는 확인란을 제공합니다. 출력은 숫자 값으로 사용할 수 있으며, 비활성화하면 0이 출력되고 활성화하면 1이 출력됩니다. 그러나 동시에 결과는 거짓 (비활성화)과 (활성화)으로 해석될 수도 있으므로 예를 들어 부울 연산자 노드를 사용하여 직접 평가할 수도 있습니다.


IO - 바운딩 박스

바운딩 박스의 가로 세로 비율과 크기를 전송하는 데만 사용되는 특수 벡터 데이터 형식입니다. 이러한 이유로 이 요소는 사용자 인터페이스를 제공하지 않습니다. 예를 들어 이 요소는 같은 이름을 가진 노드의 바운딩 박스 출력과 연결할 수 있습니다.


IO - 색상

색상 정보를 입력하고 전달하는 데 사용할 수 있는 요소는 IO - 색상IO - 색상 알파의 두 가지입니다. 기본적으로 동일하지만 IO - 색상 알파에 색상의 불투명도를 결정하는 추가 백분율 값이 포함되어 있다는 점이 다릅니다. 두 요소 모두 컴포넌트 X, Y, Z가 색상 컴포넌트 빨강, 초록, 파랑을 나타내는 벡터 데이터를 제공하며 0.0에서 1.0 사이의 부동소수점 값으로 저장됩니다. IO - 컬러 알파에는 0.0과 1.0 사이의 값을 가질 수 있는 추가 알파 컴포넌트가 포함되어 있습니다. 두 데이터 유형 모두 컬러 또는 컬러알파는 물론 벡터3d 또는 벡터4d로 읽고 처리할 수 있습니다.


두 IO 색상 요소를 비교한 것입니다.


IO - 플로트

부동 소수점 값, 즉 3.4151과 같이 소수점 부분도 있는 숫자 값은 수학 계산에 사용하거나 값을 정확하게 입력해야 할 때 특히 유연하게 사용할 수 있습니다. 이 데이터 유형은 백분율, 각도 또는 치수를 나타내는 단위와도 연결할 수 있습니다(예: 백분율, 각도 또는 치수). 따라서 이 데이터 유형의 다양한 변형을 사용할 수 있습니다. 그러나 모든 경우에서 단순한 수치값을 얻을 수 있습니다. 표시되는 단위와 컨트롤만 다릅니다. 또한 이러한 요소 중 일부는 이미 숫자 범위로 제한되어 있으므로 특정 범위에서는 임의의 숫자가 아닌 다른 숫자를 입력할 수 있습니다.


IO - 지오메트리

이 데이터 유형은 오브젝트의 기하학적 구조와 관련된 정보를 교환하기 위해 특별히 고안되었습니다. 예를 들어 서페이스 또는 스플라인의 포인트 위치, 엣지에 연결된 점 쌍, 폴리곤을 바인딩하는 포인트 또는 스플라인의 접선 등이 여기에 포함됩니다. 이 데이터 유형의 복잡성으로 인해 제어 요소는 제공되지 않습니다. 대신 노드의 지오메트리 포트를 사용하여 해당 포트에서 데이터를 전달하거나 수락해야 합니다.


IO - 정수

이러한 요소를 사용하면 정수 값을 교환할 수 있습니다. 이 데이터 유형은 이러한 값으로 더 복잡한 계산을 수행하지 않으려는 경우에만 사용합니다. 그렇지 않으면 데이터 유형 IO Float를 사용할 수 있습니다. 정수 값은 예를 들어 여러 개의 세분화 또는 사본을 정의할 때 유용합니다.


IO - 행렬

행렬은 공간에서 축 시스템이나오브젝트의 위치, 크기, 회전을 정의할 수 있는 다양한 벡터로 구성됩니다. 따라서 이 컨트롤은오브젝트의 좌표 섹션과 동일합니다.


행렬의 여러 벡터에는 축 시스템의 위치뿐만 아니라 회전 각도, 축 길이(크기) 및 축의 전단도 포함됩니다. 일반적인 축 시스템의 수직도에 영향을 주고자 하는 경우에만 Matrix.Sh 컴포넌트를 사용합니다.


IO - 탄젠트

두 개의 벡터를 동시에 전송할 수 있는 특수 데이터 형식(튜플)입니다. 이 데이터 유형은 탄젠트 쌍을 제어하기 위한 것입니다. 각 벡터는 스플라인 포인트에서 탄젠트의 방향과 길이를 제어합니다(베지어 스플라인에만 적용). 이 데이터 유형은 사용자 인터페이스가 없으므로 접선 정보를 제공하는 노드를 연결하기 위한 용도로만 사용됩니다.


IO - 텍스트

이 요소는 예를 들어오브젝트의 이름이나 저장된 선택 항목을 입력할 수 있는 문자열 입력 필드를 제공합니다.


IO - URL - 경로

IO- 텍스트 요소와 마찬가지로 여기에는 문자열 입력을 위한 필드가 제공됩니다. 또한 텍스트 필드 오른쪽에 폴더 아이콘이 있으며, 이를 통해 파일 대화 상자를 열 수 있습니다. 이러한 방식으로 데이터를 로드하거나 저장하는 등의 용도로 모든 디렉터리를 선택할 수 있습니다.


IO - 벡터

벡터는 여러 개의 부동소수점 값으로 구성되며, 이를 통해 RGB 색상 값, 공간에서의 위치 또는 방향 벡터 등을 설명할 수 있습니다. 사용 가능한 벡터 요소는 다음과 같습니다:


IO - 시간

이 요소는 애니메이션 내의 특정 시점을 정의하기 위한 프레임 번호 입력 필드를 제공합니다. 예를 들어, 이러한 정보는 특정 시점부터 함수나 계산을 실행하는 데만 사용될 수 있습니다.


IO - 배열

이 용어 아래에는 위에서 이미 개별 요소로 설명한 다양한 데이터 유형이 있습니다. 여기서 차이점은 IO - 배열은 사용자 인터페이스를 제공할 수 없다는 점입니다. 배열은 가변 길이 목록에 해당합니다. 이러한 방식으로 특정 데이터 유형의 여러 값을 저장할 수 있습니다. 예를 들어, 지오메트리의 모든 점 좌표를 저장할 수 있는 IO 배열 - 벡터 - 포인트를 생각해 보세요.
예를 들어 배열은 빌드, 세트 배열 또는 채우기 배열 노드 자체로 생성하고 값을 추가하여 채울 수 있습니다. 일반적으로 배열 값을 처리하는 대부분의 노드는 에셋 브라우저데이터 구조체 그룹에서 찾을 수 있습니다.
모든 IO - 배열 데이터 유형은 값 입력을 위한 직접적인 인터페이스를 제공하지 않기 때문에 이러한 IO 요소는 주로 그룹에 대한 배열의 입력 또는 출력을 담당하는 포트에 흥미롭습니다. 다음은 배열을 생성하고 출력하는 간단한 예제입니다.


이 예제에서는 노드 수정자 그룹을 사용하여 전역 위치(선택 중심)를 중심으로 선택 반경 내에 있는 폴리곤을 돌출시킵니다.

위 이미지에서 볼 수 있듯이 노드 수정자 그룹에서 위치와 반경 값을 정의할 수 있도록 IO - 벡터 - 크기IO - 부동 소수점 - 크기에 대한 사용자 데이터를 만들었습니다. 이 에셋의 효과는 지정된 위치를 중심으로 구 반경 내에 있는 모든 포인트들을 자동으로 선택하여 돌출시키는 것입니다. 기술적으로는 다음 이미지와 같이 구현했습니다:


개별적으로 생성된 선택 항목을 정의하고 구현하기 위한 전체 설정

유형 설정3D 포인트로 설정된 지오메트리 속성 읽기 노드를 사용하여 제공된 지오메트리의 모든 로컬 포인트 위치가 포함된 배열을 가져옵니다. 3D 벡터의 배열입니다. 배열 항목을 항목별로 출력할 수 있도록 반복 콜렉션 노드(이미지의 1번 참조)가 연결됩니다. 이렇게 하면 배열이 배열의 모든 요소를 차례로 제공하는 데이터 스트림으로 바뀝니다. 이렇게 하면 일반적으로 배열의 모든 요소를 순서대로 출력할 수 있습니다.

출력 배열의 개별 벡터는 지오메트리의 로컬 포인트 위치를 나타내며, 지오메트리가 시작된 오브젝트의 글로벌 행렬을 곱하여 글로벌 포인트 위치로 변환할 수 있습니다. 벡터 이동 노드는 이러한 목적으로 사용됩니다. 이렇게 변환된 포인트와 기본 선택 중심 사이의 거리는 거리 노드로 계산하고 <= 함수를 사용하여 선택 반경과 비교합니다. 계산된 거리가 기본값보다 작거나 같으면 비교 노드는 1(또는 참) 값을 반환하고, 그렇지 않으면 0(또는 거짓) 값을 반환합니다.

배열 노드 빌드( 2번 참조)를 통해 데이터 유형 Integer의 새 배열을 정의하여 선택할 포인트의 숫자를 유지할 수 있습니다. 배열 생성 노드에서 잘라내기 버튼을 클릭하면 모든 항목을 제거하여 완전히 빈 배열을 만들 수 있습니다. 이제 다운스트림 요소 추가 노드(포인트 3 참조)를 통해 정수 값을 배열에 추가할 수 있습니다. 배열의 항목 수는 갯수 값만큼 자동으로 증가합니다. 비교 노드결과가 연결된 경우, 검색 반경(결과 = 1) 내에서 점이 발견된 경우에만 새 배열이 항상 한 항목씩 확장됩니다. 따라서 이 지점의 인덱스 번호가 배열에 추가됩니다( 반복 컬렉션 노드인덱스 출력요소 추가 노드값 입력 간의 연결 참조). 이렇게 하면 어디서든 사용할 수 있는 선택 배열이 만들어집니다. 예를 들어 모델링 기능을 선택 항목으로 제한할 수 있습니다.
이 경우 마지막에 점 선택만 폴리곤 선택으로 변환해야 돌출 명령 등을 원하는 대로 사용할 수 있습니다. 이를 위해 이동 선택 노드를 사용할 수 있습니다.


IO - 그룹

IO - 구분 기호

이러한 요소는 데이터 전송을 위한 것이 아니라 여러 IO 요소를 사용할 때 인터페이스를 구조화하기 위한 것입니다. IO - 그룹을 사용하면 다른 IO 요소를 정렬할 수 있는 그룹이 만들어집니다. 이러한 그룹은 리소스 편집기를 통해 항목으로 채울 수 있습니다. 인터페이스에 그룹 이름이 표시되고 그 아래에 정렬된 항목은 그룹을 펼치거나 접어서 보이게 하거나 숨길 수 있습니다.
IO 구분선은 긴 IO 요소 목록을 나누고 관련 설정을 시각적으로 더 세밀하게 구분하는 데 사용할 수 있는 수평선입니다. 다시 말하지만, 리소스 편집기를 사용하여 설정 사이의 원하는 위치에 IO - 구분 기호를 배치할 수 있습니다.


참고:

IO - 그룹IO - 구분자 두 요소는 모두 리소스 편집기에서만 만들 수 있습니다.