인식 제어기

인식 제어기 기능을 사용하여 군중 구성원이 상황에 따라 시뮬레이션 중에 동작을 변경하도록 할 수 있습니다. 예를 들어 캐릭터가 대상의 특정 거리 내에 있어서 대상을 향해 직선으로 이동할 때까지 무작위로 돌아다닐 수 있습니다.

기술적인 용어로, 인식 제어기를 사용하면 스크립트된 조건부로 군중 시뮬레이션에 영향을 주고 효과적으로 인공 지능을 구현할 수 있습니다. 인식 제어기 편집기, 순서도 스타일 편집기(모션 흐름 그래프 대화상자와 유사)를 사용하여 상태라는 동작 및 동작 조합 네트워크를 설정합니다. 그런 다음 대리자가 한 상태에서 다른 상태로 이동되는 시기를 지정하는 MAXScript 기반 전환을 적용합니다. 비교적 단순한 설정에서도 캐릭터가 활발하고 의식 있는 존재로 보이게 하는 시뮬레이션을 만들고 장면을 이동할 때 결정을 내릴 수 있습니다.

상태 대화상자 항목에서 인식 제어기 전환의 여러 가지 예를 설명하는 절차를 찾을 수 있습니다.

파티클 시스템 매개변수 테스트

오브젝트 위치 테스트

대기 특성 테스트

두 오브젝트 간의 거리 테스트

수정자 매개변수 테스트

다른 대리자의 동작 테스트

절차

인식 제어기를 설정하고 사용하려면 다음을 수행하십시오.

    이 절차에서는 인식 제어기를 만들고 사용하는 일반적인 설정 루틴에 대해 설명합니다. 또한 군중 시뮬레이션 설정에 대한 기본 지식이 있다고 가정합니다. 군중 설정에 대한 자세한 내용은 군중 도우미 오브젝트설정 롤아웃을 참조하십시오.

  1. 한 개의 군중 오브젝트와 하나 이상의 대리자가 포함된 장면을 만듭니다. 군중 도우미 만들기을 참조하십시오.
  2. 동작을 두 개 이상 만듭니다. 동작 할당을 참조하십시오.
  3. 인식 제어기 편집기를 엽니다.
  4. 새로 만들기 버튼을 클릭하여 인식 제어기를 만듭니다.

    character studio에서는 제어기에 "인식 제어기"라는 기본 이름을 지정합니다. 인식 제어기에 "찾기/이동"와 같은 설명을 포함하는 이름을 지정하는 것이 좋습니다. 이렇게 하려면 텍스트 상자의 이름을 클릭하고 키보드에서 편집합니다.

    새 인식 제어기를 만들면 자동으로 상태 만들기 모드가 됩니다.

  5. 편집기 창 내부를 클릭하여 상태를 만들고 배치합니다. 계속 다른 위치를 클릭하여 필요한 만큼 상태를 추가합니다.
  6. 상태를 마우스 오른쪽 버튼으로 클릭하여 상태 대화상자를 엽니다.
  7. 상태에 설명을 포함하는 이름을 지정하는 것이 좋습니다. 상태 대화상자에서 이 작업을 수행할 수 있습니다. 텍스트 상자에서 이름(State 또는 State#)을 클릭하고 키보드에서 편집합니다.

    각 상태의 동작을 정의합니다.

  8. 추가 버튼을 클릭합니다.
  9. 동작 선택 대화상자에서 동작을 하나 이상 선택합니다.

    다중 동작을 선택하는 경우 상태 편집기에서 각 동작에 대해 다른 가중치를 지정할 수 있습니다. 예를 들어 대리자가 대상을 검색할 때 무작위로 진행되도록 전체 가중치의 찾기 동작과 절반 가중치의 이동 동작을 결합할 수 있습니다.

  10. 동작 선택 대화상자를 닫은 다음 상태 편집기를 닫습니다.
  11. 필요에 따라 6-10단계를 반복하여 제어기의 다른 상태에 대해 동작을 정의합니다.

    전환 만들기를 사용하여 시뮬레이션 중에 상태 시퀀스를 정의합니다.

  12. 상태가 발생하는 시퀀스를 결정합니다.
  13. (전환 만들기)을 클릭합니다.
  14. 상태가 실행되는 순서대로 한 상태에서 다음 상태로 선을 드래그합니다. 상태를 클릭하여 자신에서 자신으로 전환을 만듭니다.

    "소스" 상태에서 "대상" 상태를 가리키는 전환 화살표가 나타납니다.

    개수에 관계없이 각 상태에 들어오고 나가는 전환이 있을 수 있습니다. 각 상태에 다른 전환 조건을 지정하여 필요에 따라 복잡한 상태 다이어그램을 만듭니다.

    상태 전환 대화상자를 사용하여 각 전환에 대한 조건부를 정의합니다.

  15. 전환 선을 마우스 오른쪽 버튼으로 클릭합니다.
  16. 상태 전환 대화상자에서 전환 조건 이름을 입력한 다음 MAXScript 편집 버튼을 클릭합니다.
  17. MAXScript 편집기 창을 사용하여 전환이 발생하는 조건을 정의하는 스크립트를 입력하거나 로드합니다.

    일반적으로 조건을 테스트하고 1(true) 또는 0(false)을 반환하는 함수입니다.

    • fn - 다음은 MAXScript 함수입니다.
    • test1 - 함수 이름입니다. 전환 대화상자에도 전환 조건으로 표시되어야 합니다. 이 함수는 전환을 테스트할 때 처음 실행됩니다. 스크립트의 함수 내에서 호출되는 추가 함수가 개수에 관계없이 스크립트에 포함될 수 있습니다.
    • del - 스크립트가 현재 적용되는 대리자를 참조합니다. 전환 스크립트는 인식 제어기가 할당된 각 대리자/팀 구성원에 대해 프레임당 한 번 실행됩니다. 따라서 특정 대리자의 이름 대신 "del"을 스크립트에 사용하면 인식 제어기가 할당된 모든 대리자가 테스트됩니다.
    • t - 시뮬레이션의 현재 시간(프레임 번호)입니다.
    • del.simpos.x - X축에서 대리자의 현재 위치입니다. 특수 함수 "simpos"는 시뮬레이션 솔루션 중에 대리자 위치를 확인하는 데 사용됩니다. 이 함수는 MAXScript에서 시뮬레이션 중에 표준 "[node].pos" 함수를 사용하여 대리자 위치를 사용할 수 없기 때문에 필요합니다.
    • del.duration - 대리자가 현재 상태에 있었던 프레임 수입니다.

      기능 키 F11을 눌러 MAXScript 리스너 창을 열고 다음을 입력하여 스크립트에서 확인할 수 있는 대리자별 매개변수의 전체 리스트를 볼 수 있습니다.

      ShowProperties $delegate01

      대리자가 노드이므로 "simpos"를 제외하고 위에 명시된 대로 표준 MAXScript 노드 관련 함수에도 응답합니다. 또한 기간, 우선 순위 등의 전환 특성에 액세스하는 방법에 대한 자세한 내용은 MAXScript 도움말을 참조하십시오.

      인식 제어기에서 사용할 수 있는 MAXScript 조건부의 추가 예는 상태 전환 대화상자을(를) 참조하십시오.

  18. 상태 전환 대화상자를 사용하여 우선 순위, 기간 등의 기타 매개변수를 설정합니다.
  19. 동작 할당 및 팀 대화상자를 사용하여 인식 제어기를 대리자나 팀에 할당합니다.
    주: 군중을 사용하여 여러 개의 인식 제어기를 대리자와 함께 사용할 수는 없습니다. 할당할 수는 있지만 해결할 때 처음 할당된 인식 제어기만 사용된다는 알림이 character studio에 표시됩니다.