キャラクターコントローラー

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

Class.ControllerManager インスタンスは、割り当てられた RootPart のシミュレートされたモーションコントロールを管理します。ControllerPartSensors と一緒に、物理ベースのキャラクターコントローラーを構築するために使用できます。

コアのセットアップ

ControllerManager には、BasePart がルートとして使用される必要があります。移動力とパーツセンサーはこのパーツにあります。

  1. Class.Part または MeshPart を選択し、 RootPart と名前付けます。

  2. パーツを他のコンポーネントと一緒に管理するための Model インスタンスとしてグループ化します。

  3. モデルに Class.ControllerManager インスタンスを追加します。 ControllerManager がオブジェクトの挿入メニューに最初に表示されない場合は、1>メニューの挿入設定1> で 4>Show only recommended objects4> を 7>チェックしない7>です。

    ControllerManager and RootPart inside model

センサーの設定

Class.ControllerPartSensor は、Humanoid が床や階段を検出するために使用するコードと同じコードでパーツを検出します。

  1. Class.ControllerPartSensor を RootPart の子として挿入し、 GroundSensor で簡単にその目的を識別するように名前を変更します。然後、1>プロパ

    GroundSensor as child of RootPart
    GroundSensor properties
  2. Class.ControllerPartSensor を RootPart の子として挿入し、 ClimbSensor と名前を変更します。次に、1>プロパティ1> ウィンドウで、4> Class.ControllerPartSensor.SearchDistance

    ClimbSensor as child of RootPart
    ClimbSensor properties

コントローラのセットアップ

コントローラーインスタンスのように GroundControllerClimbController は、センサー設定 で設定したセンサーと共同で世界を操作する方法を、2> Class.GroundController2> に伝えます。

  1. Class.GroundController と ClimbController を子として ControllerManager に入れる。

    GroundController and ClimbController as children of ControllerManager
  2. 新しい GroundController インスタンスを選択し、プロパティ ウィンドウで、GroundOffset プロ

    GroundController properties

参照リンク

コアセットアップを完了するには、ControllerManager インスタンス内のオブジェクトに、メインの Model オブジェクトへのリンクを必要とします。

  1. Select the ControllerManager instance.

    ControllerManager selected in Explorer window
  2. In the プロパティ window, click each of the following properties and then, back in the エクスプローラー window, click the respective instance to complete the lin紐づける.

    1. Class.ControllerManager.ActiveController|ActiveController プロパティを GroundController インスタンスにリンクします。
    2. Class.ControllerManager.RootPart|RootPart プロパティを RootPart にリンクします。
    3. Class.ControllerManager.ClimbSensor|ClimbSensor プロパティを ClimbSensor インスタンスにリンクします。
    4. Class.ControllerManager.GroundSensor|GroundSensor プロパティを GroundSensor インスタンスにリンクします。
    ControllerManager properties linked to instances within overall model

テスト

センサーとコントローラーを配プレースし、参照されたリファレンスを含めて Studio でコントローラーをテストできます。

  1. このスケートボードシナリオでは、アバターキャラクターをこのスケートボードに挿入する必要がないため、Run モードを使用してプレイテストを開始します。

    Rapid playtest options in Test tab of Studio
  2. RootPart は、GroundController.GroundOffset の価値であなたが Add Controllers で設定した上に浮く必要があります。また、0> Class.ControllerManager.FacingDirection0> ベクトルと一致するように回転する必要があります。

    Character levitating above ground at GroundOffset, facing in direction of FacingDirection vector
  3. 実験用に、MovingDirectionFacingDirection

    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> センサーコードを使用して、7>Class.Humanoid

  1. [オープンリード] から [マニュアル] に1> Class.ControllerPartSensor.UpdateType1> を切り替えます。

    • OnRead は、読み取るたびに SensorMode に対応する出力プロパティを更新します。基本的に、これらのプロパティに書き込むと、センサーは内部のセンシング動作により上書きされます。
    • マニュアル は、内膜センシング動作をオフにします。出力プロパティは、好きなように書き込むことができますが、SensorMode は何もしません。
  2. 自分の感覚ロジックを実行し、出力をセンサーの出力プロパティに書き込むスクリプトを作成します。通常、これは WorldRoot:Raycast() または WorldRoot:Blockcast() などの空間クエリを使用します。スクリプトは、RaycastResult を返

    注意してください、あなたのクエリを実行してセンサーインスタンスを更新する頻度を管理する必要があります。

  3. Class.ControllerManager は、割り当てられたセンサーを使用し続け、パスするデータを取得します。