アビリティは、Character Controller Library (CCL) でキャラクターができること、たとえば走る、ジャンプする、登る、水泳するなどの能力を評価します。Enum.HumanoidStateType のようなエンジンで定義された固定的なキャラクター状態に依存するのではなく、CCLは、キャラクターが移動しながら照準を合わせたりしゃがんだりするような柔軟な動作の構成を可能にします。
CCLを有効にする
CCLは、スタジオのアバター設定ウィンドウを通じてオプトインです。有効にするには:
アバタータブから、アバター設定を開きます。

ウィンドウの左側でムーブメントタブを選択し、アビリティセクションでキャラクター コントローラー ライブラリを選択します。

走る、ジャンプする、登るなどのすべての標準アビリティはデフォルトで有効になっています。ランタイム中にそれらのいずれかを無効にするには、関連するボックスのチェックを外します。
設定
ゲームを実行中(または ServerScriptService から実行されるスクリプトを通じて)、組み込みのアビリティ設定を実験できます。また、特定のコントローラーを変更して、キャラクターの物理シミュレーションや環境との相互作用を調整できます。たとえば、キャラクターの基本移動速度を調整できます。
ランタイム
ランタイムでアビリティ設定を実験するには:
プレイテストを開始します。
組み込みのアビリティの1つを選択し、その Properties ウィンドウのAttributesセクションで、以下に示すような属性をカスタマイズします。
アビリティ 属性 Climbing - SpeedMultiplier — キャラクターが登っているときの ClimbController.MoveSpeedFactor プロパティへの倍率。
Dead - Enabled — ヘルスが 0 またはそれ以下のときにキャラクターが死亡します。
- Health ⇔ Humanoid.Health
- MaxHealth ⇔ Humanoid.MaxHealth
- RequiresNeck ⇔ Humanoid.RequiresNeck
FacingMoveDirection - Enabled ⇔ Humanoid.AutoRotate
FallingDown Freefall - SpeedMultiplier — キャラクターが自由落下しているときの AirController.MoveSpeedFactor プロパティへの倍率。ただし、キャラクターが非常に短い時間自由落下する場合、効果は控えめです。
GettingUp Jumping - JumpHeight ⇔ Humanoid.JumpHeight
- JumpPower ⇔ Humanoid.JumpPower
- UseJumpPower ⇔ Humanoid.UseJumpPower
NoLocomotion Running - SpeedMultiplier — キャラクターが走っているときの GroundController.MoveSpeedFactor プロパティへの倍率。
Sitting Swimming - EnableFastRise — ジャンプ入力を保持することで、表面により早く浮上します。
- SpeedMultiplier — キャラクターが泳いでいるときの SwimController.MoveSpeedFactor プロパティへの倍率。
スクリプトによる設定
スクリプトを通じてすべてのキャラクターのアビリティ設定を行うには:
ServerScriptService 内に新しいサーバーサイドの Script を作成し、名前を AbilitiesScript に変更します。
新しいスクリプトに以下のコードをコピー&ペーストします。この例では、Running アビリティの基礎移動速度を 2 倍にします。他のアビリティ属性も 上記の表 に示されたように調整できます。
Script in ServerScriptServicelocal Players = game:GetService("Players")local function onCharacterAdded(character)local AbilityManagerActor = character:WaitForChild("AbilityManagerActor")local Abilities = AbilityManagerActor:WaitForChild("Abilities")local Running = Abilities:FindFirstChild("Running")if Running then-- 基本移動速度を2倍にRunning:SetAttribute("SpeedMultiplier", 2)endendlocal function onPlayerAdded(player)if player.Character thenonCharacterAdded(player.Character)endplayer.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)
