MotionBuilder HumanIK 솔버 플러그인

이 플러그인에서는 MotionBuilder Open Reality SDK를 사용하여 HumanIK를 사용자 정의 MotionBuilder 캐릭터 솔버에 통합합니다. MotionBuilder 내에서 이 사용자 정의 솔버를 사용하면 사실적 무릎 해석, 쇄골 강도 및 애니메이션 궤적 대상 변경과 같이 이 버전의 HumanIK 내에서는 사용할 수 있지만 기본적으로 사용 중인 MotionBuilder 버전에는 없는 기능을 사용하여 캐릭터를 제어할 수 있습니다.

이 샘플에서 만든 솔버는 MotionBuilder 릴리스에 포함되어 있지만 이 HumanIK 라이브러리 릴리스를 사용하도록 업데이트된 HumanIK 솔버와 유사합니다.

이 샘플을 컴파일하고 실행하려면 최신 버전의 MotionBuilder와 Open Reality SDK가 모두 설치되어 있어야 합니다.

샘플 컴파일

  1. MOTION_BUILDER_LOCATION이라는 환경 변수를 만들고 해당 값을 시스템의 MotionBuilder 설치 디렉토리로 설정합니다.
  2. 이 샘플은 solutions/<platform_and_toolset>/HIKSamples.sln 솔루션에 포함되어 있습니다. Visual Studio에서 이 솔루션을 엽니다. 사용해야 하는 프로젝트는 설치한 MotionBuilder의 버전에 따라 달라집니다.

    • MotionBuilder 2011의 경우 MoBuHIK2011 프로젝트를 사용합니다.
    • MotionBuilder 2012의 경우 MoBuHIK2012 프로젝트를 사용합니다.
    • MotionBuilder 2013의 경우 MoBuHIK2013 프로젝트를 사용합니다.
    • MotionBuilder 2014는 아직 지원되지 않습니다.

  3. 컴파일 후에는 생성된 파일이 MotionBuilder 설치 디렉토리 내 다음 하위 디렉토리에 자동으로 복사되어야 합니다.

    • 32비트 Windows 시스템의 경우 bin/win32/plugins
    • 64비트 Windows 시스템의 경우 bin/x64/plugins

    복사되지 않으면 수동으로 복사합니다.

샘플 사용

샘플에서 만든 MotionBuilder 솔버를 사용하려면

  1. MotionBuilder를 시작하고 HumanIK를 사용하여 제어할 캐릭터를 열거나 만듭니다.
  2. Navigator 창에서 Characters 폴더를 확장하고 새 솔버를 추가한 캐릭터를 두 번 클릭합니다.
  3. Character Settings 탭에서 "CharacterSolver" 드롭다운 목록을 찾고 새 솔버에 대한 항목을 선택합니다.
  4. 솔버의 속성을 보고 수정하려면 Navigator 창에서 캐릭터의 폴더 또는 Solvers 폴더 아래에 있는 솔버 항목을 클릭하고 Properties 창을 엽니다.

    솔버의 컨트롤 대부분은 HumanIK HIKPropertySetState 오브젝트에서 노출 캐릭터 속성을 직접 제어합니다. 이러한 속성과 해당 값에 대한 자세한 내용은 캐릭터 속성 아래의 항목을 참조하십시오.

    솔버에서는 다음과 같은 일부 추가 컨트롤을 제공합니다.

    속성

    설명

    가중치

    기본 MotionBuilder 솔버에 상대적으로 HumanIK 솔버에 지정되는 가중치(예: 두 솔버에서 생성된 포즈 간 혼합)를 결정합니다. 가중치 설정이 100이면 HumanIK 솔버만 사용하고, 0이면 기본 MotionBuilder 솔버만 사용합니다.

    Save HIK Character

    현재 캐릭터를 나타내는 HIKCharacter를 파일로 내보냅니다.

    이 파일을 메모리로 로드하면 런타임 시 HIKLoadCharacter 함수를 호출하여 HumanIK에서 사용할 수 있습니다.

    Save HIK State

    캐릭터 골격의 현재 포즈를 나타내는 HIKCharacterState를 파일로 내보냅니다.

    이 파일을 메모리로 로드하면 런타임 시 HIKLoadCharacterState 함수를 호출하여 HumanIK에서 사용할 수 있습니다.

    Save HIK Effectors

    캐릭터 컨트롤 리그의 현재 위치, 회전 및 IK 제약 조건을 나타내는 HIKEffectorSetState를 파일로 내보냅니다.

    이 파일을 메모리로 로드하면 런타임 시 HIKLoadEffectorState 함수를 호출하여 HumanIK에서 사용할 수 있습니다.

    Save HIK Properties

    캐릭터의 현재 설정을 나타내는 HIKPropertySetState를 파일로 내보냅니다.

    이 파일을 메모리로 로드하면 런타임 시 HIKLoadPropertySetState 함수를 호출하여 HumanIK에서 사용할 수 있습니다.