コントローラー

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

キャラクターコントローラーライブラリ(CCL)では、コアControllerManagerインスタンスがキャラクターの物理シミュレーションと環境との相互作用を処理します。これには、レガシーHumanoidの不整合を解決するために設計された移動/感覚に関するいくつかの意図的な変更や、地面の摩擦、線形加速度曲線、ジャンプ時の線形および角運動量の現実的な保存といった物理的改善が含まれます。

CCLを有効にする

CCLは、スタジオのアバター設定ウィンドウを通じてオプトインです。有効にするには:

  1. アバタータブから、アバター設定を開きます。

    スタジオのツールバーで示されるアバター設定
  2. ウィンドウの左側でムーブメントタブを選択し、アビリティセクションでキャラクター コントローラー ライブラリを選択します。

    アバター設定ウィンドウのキャラクターコントローラーライブラリトグル
  3. 走るジャンプする登るなどのすべての標準アビリティはデフォルトで有効になっています。ランタイム中にそれらのいずれかを無効にするには、関連するボックスのチェックを外します。

構造

キャラクターモデル内のコアControllerManagerインスタンスの下に、GroundControllerAirControllerなどの個々のコントローラーが、キャラクターに対する移動の適用方法を定義します。アビリティはその後、ControllerManagerおよびその子孫と相互作用してコントローラーの動作を変更したり、コントローラー間で切り替えたりします。

設定

ゲームが実行中(またはServerScriptServiceから実行されるスクリプトを通じて)、コアControllerManagerおよびビルトインコントローラーを試すことができます。

ランタイム

ランタイムでコントローラーの設定を試すには:

  1. プレイテストを開始します。

  2. エクスプローラーWorkspace内のキャラクターモデルを見つけて、ControllerManagerツリーを展開します。

  3. ControllerManagerまたはそのいずれかのコントローラーの子孫を選択し、プロパティウィンドウで、以下の表に要約されているプロパティなどをカスタマイズします(これらの表は網羅的ではないため、追加のプロパティオプションについてはAPI クラスドキュメントを参照してください)。

    プロパティ説明
    BaseMoveSpeedすべてのコントローラーで使用される基本的な線形移動速度。コントローラーは個別にMoveSpeedFactorプロパティを通して移動速度をカスタマイズします。
    BaseTurnSpeedすべてのコントローラーがキャラクターを望ましい方向に向けるために使用する基本的な角度回転速度。一部のコントローラーは個別にTurnSpeedFactorプロパティを通して回転速度をカスタマイズします。
    UpDirectionVector3で、ControllerManager.RootPartの上向きベクトルを示します。

スクリプト化

スクリプトを通じてすべてのキャラクターに対するコントローラー設定を行うには:

  1. ServerScriptService内に新しいサーバーサイドのScriptを作成し、それをControllerScriptに名前を変更します。

  2. 以下のコードを新しいスクリプトにコピーして貼り付けます。この例では、地面ベースの移動/回転速度を増加させ、わずかな加速および減速時間を追加します。他のプロパティは、上記の表や各クラスのドキュメントに記載された内容に合わせて調整してください(ControllerManager; GroundController; AirController; ClimbController; SwimController)。

    ServerScriptService内のスクリプト

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    local ControllerManager = character:FindFirstChildWhichIsA("ControllerManager")
    if ControllerManager then
    local GroundController = ControllerManager:FindFirstChild("GroundController")
    if GroundController then
    -- 移動速度と回転速度を2倍にする
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- わずかな加速と減速を追加
    GroundController.AccelerationTime = 0.2
    GroundController.DecelerationTime = 0.4
    end
    end
    end
    local function onPlayerAdded(player)
    if player.Character then
    onCharacterAdded(player.Character)
    end
    player.CharacterAdded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。