캐릭터 컨트롤러

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

Class.ControllerManager 인스턴스는 지정된 RootPart 에 대한 시뮬레이션 이동 제어를 관리합니다. ControllerPartSensors 와 함께 사용하면 물리 기반 캐릭터 컨트롤러를 빌드할 수 있습니다.

코어 설정

ControllerManager 는 뿌리로 사용할 수 있는 BasePart 필요합니다. 이동 힘과 부품 감지는 이 부품에 있습니다.

  1. Class.Part 또는 MeshPart를 선택하고 이름을 RootPart 로 지정합니다.

  2. 다른 구성 요소와 함께 조직을 위한 Model 인스턴스로 부품을 그룹화합니다.

  3. 모델에 ControllerManager 인스턴스를 추가합니다. 컨트롤러 관리자가 처음 Class.ControllerManager 에 나타나지 않으면 1>모델 내 최적화1> 메뉴의 4>Show only recommended objects4> 를 선택하십시오.

    ControllerManager and RootPart inside model

센서 설정

Class.ControllerPartSensor는 바닥 및 사다리를 감지하는 데 사용되는 코드와 동일한 코드로 부품을 감지합니다.

  1. Class.ControllerPartSensor 를 RootPart 의 자식으로 삽입하고 이름을 GroundSensor 로 변경하여 목적을 식별하기가 더 쉽습니다.그런 다음 <

    GroundSensor as child of RootPart
    GroundSensor properties
  2. Class.ControllerPartSensor 를 다른 RootPart 의 자식으로 삽입하고 이름을 ClimbSensor 로 변경합니다. 그런 다음 속성 창에서 1> Class.ControllerPartSensor.SearchDistance|

    ClimbSensor as child of RootPart
    ClimbSensor properties

컨트롤러 설정

Class.GroundController 및 ClimbController와 같은 컨트롤러 인스턴스는 세계와 상호 작용하는 방법을 관리자 부품에 알려줍니다. 이 컨트롤러 인스턴스는 감지기 설정에 있는 센서와 함께 작동합니다.

  1. Class.GroundController 및 ClimbController를 클래스 ControllerManager 의 자식으로 삽입합니다.

    GroundController and ClimbController as children of ControllerManager
  2. 새로운 GroundController 인스턴스를 선택한 다음, 속성 창에서 Class.GroundController.GroundOffset|GroundOffset 2>속성2>

    GroundController properties

참조 연결

코어 설정을 완료하려면 주요 ControllerManager 내에 있는 개체에 다양한 속성의 Model 인스턴스를 연결해야 합니다.

  1. 선택합니다 ControllerManager 인스턴스.

    ControllerManager selected in Explorer window
  2. 속성 창에서 다음 속성을 클릭한 다음 탐색기 창으로 돌아가서 해당 인스턴스를 완료하려면 연결클릭하십시오.

    1. Class.ControllerManager.ActiveController|ActiveController 속성을 GroundController 인스턴스에 연결합니다.
    2. Class.ControllerManager.RootPart|RootPart 속성을 루트 파트 라는 이름의 부품에 연결하십시오.
    3. Class.ControllerManager.ClimbSensor|ClimbSensor 속성을 ClimbSensor 인스턴스에 연결하십시오.
    4. Class.ControllerManager.GroundSensor|GroundSensor 속성을 GroundSensor 인스턴스에 연결합니다.
    ControllerManager properties linked to instances within overall model

테스트

센서 및 컨트롤러 를 플레이스참조를 연결한 상태에서 Studio에서 컨트롤러를 테스트할 수 있습니다.

  1. 이 시나리오에서 아바타 캐릭터를 삽입할 필요가 없기 때문에 플레이테스트를 시작하세요 모드(F8)를 사용하여 플레이테스트를 시작하십시오.

    Rapid playtest options in Test tab of Studio
  2. RootPart 는 설정한 GroundController.GroundOffset 값으로 지상 위에 떠 있어야 합니다. 또한 Controlers 추가 에 설정된 0> Class.ControllerManager.FacingDirection0> 값과 함께 회전해야 합니다.

    Character levitating above ground at GroundOffset, facing in direction of FacingDirection vector
  3. Class.ControllerManager.MovingDirection|MovingDirection 및 FacingDirection 벡터를 변경

    ControllerManager properties for moving and facing direction
    컨트롤러 관리자
    GroundController properties for acceleration, deceleration, and ground offset
    지상 컨트롤러

사용자 정의 센서

Class.Humanoid 및 Floor 옵션과 Ladder 및 1>Class.SensorMode|Ladder1>의 옵션은 4>Class.Humanoid4> 센서 코드를 정확하게 실행하여 뒤로 호환할 수

  1. OnRead에서 Class.ControllerPartSensor.UpdateType수동 으로 전환합니다.

    • OnRead 는 모든 때에 해당 출력 속성을 업데이트하여 귀하의 SensorMode 을 읽을 때마다 해당 출력을 업데이트합니다. 이것은 내부 센싱 동작에 의해 쓰여지는 모든 것을 덮어씁니다.
    • 수동 은 내부 센싱 동작을 종료합니다. 출력 속성은 원하는 대로 작성하여 사용자에게 무료이지만 SensorMode 는 아무것도 하지 않습니다.
  2. 자신의 감지 논리를 수행하고 출력을 센서 출력 속성에 쓸 스크립트를 생성합니다. 일반적으로 WorldRoot:Raycast() 또는 WorldRoot:Blockcast() 와 같은 공간 쿼리를 사용하여 결과 속성을 설정하고 센서 대�

    쿼리 실행 간격 및 센서 인스턴스 업데이트 간격을 관리해야 합니다.

  3. Class.ControllerManager는 할당된 센서를 계속 사용하고, 패스하는 데이터를 가져갑니다.