main() blog

プログラムやゲーム、旅、愛する家族について綴っていきます。

【UE4】UCharacterMovementComponentのAPIリファレンスを翻訳してみる

はじめに

バージョンは4.17.0。

UCharacterMovementComponentはUE4でキャラクタを動かすために使用されるコンポーネント

このコンポーネントを使って最後まで開発しているのだろうか?
それとも独自で作るのだろうか?
ここに関しては方々から色々な声が聞こえてくる。

このコンポーネントだけでできる範囲のものであれば当然これを使っていけば良い。
そうじゃない場合は機能拡張を行うか、新規に自前で作る必要が出てくる。

で、結局どっちが良いのか?
迷うところではある。

とは言っても最初に何かしたら動かす場合にはお世話になるし、
拡張や、使わないしてもまずはできることできないことをちゃんと把握しておく必要がある。

しゃがむとか泳ぐとかあるけど、スプリント(ボタン押しで速く走る)のようなことをしたい場合は独自の対応が必要なる。

UE4のドキュメントを見てみる

API Reference

なんで英語しか無いんだろう...

  • Inheritance Hierarchy
UObjectBase
  UObjectBaseUtility
    UObject
      UActorComponent
        UMovementComponent
          UNavMovementComponent
            UPawnMovementComponent
              UCharacterMovementComponent
                UArchVisCharMovementComponent
  • Variables

  • Functions

Componentのプロパティ

BPで弄れるものを先に説明します。
とりえずGoogle翻訳にまる投げして、怪しいところだけ直してみます。

  • Character Movement: Jumping/Falling
変数名 説明
Jump Z Velocity ジャンプ時のZ方向(上方向)の初速度。
Braking Deceleration Falling
Air Control 落下時の横移動の制御の値。
0.0でno control、1.0でMaxWalkSpeed。
飛び始めの移動量にも影響があるので0にすると横に移動しなくなる。
Air Control Boost Multiplier 下降時には、横速度がAirControlBoostVelocityThresholdより小さい場合、AirControlに乗数が適用されます
Air Control Boost Velocity Threshold 下降時に、横速度の大きさがこの値より小さければ、AirControlにAirControlBoostMultiplierを掛けます。
Falling Lateral Friction 落下時に横方向の空気の動きに適用する摩擦。
Impart Base Velocity X trueの場合、落ちるときにベースアクターのX速度を与えます(ジャンプを含む)
Impart Base Velocity Y
Impart Base Velocity Z
Impart Base Angular Velocity trueの場合は、飛び降りる際に角速度の基本コンポーネントの接線成分を与えます。
Notify Apex
Apply Gravity While Jumping キャラクターが活発にジャンプしている間に重力を適用する(例えば、ジャンプ・キーを保持する)
Jump Off Jump ZFactor JumpZVelocityの割合で、キャラクターのベースにはならないベースアクターの自動的な「ジャンプオフ」が使用されます。
  • Character Movement(GeneralSettings)
変数名 説明
Gravity Scale カスタム重力スケール。
重力にはキャラクタのこの量が掛け合わされます
Max Acceleration 最大加速度(速度の変化率)
Braking Friction Factor 制動時に使用される摩擦の実際の値を乗算するために使用される係数。
Braking Friction 制動時に適用される摩擦(抗力)係数(加速度= 0の場合、または文字が最高速度を超える場合)。
使用される実際の値は、これにBrakingFrictionFactorを掛けたものです。
Use Separate Braking Friction trueの場合は、BrakingFrictionを使用してキャラクタを停止させます(加速がない場合)。
Crouched Half Height しゃがみ時の衝突半高さ(コンポーネントスケールが別々に適用される)
Mass Pawnの質量(運動量が与えられたとき)。
Default Land Movement Mode 水中にないときのデフォルトの移動モード。
プレーヤーの起動時またはテレポート時に使用されます。
Default Water Movement Mode
Enable Scoped Movement Updates trueの場合、高レベルの移動の更新は、更新を蓄積し、終了まで大量の作業を延期する移動範囲にラップされます。
Run Physics with No Contoller trueの場合、キャラクター所有者のコントローラーがなくても移動が実行されます。
Max Simulation Time Step 各離散シミュレーションステップの最大時間デルタ。
Max Simulation Iterasions 個別のシミュレーションステップごとに使用される最大反復回数。
Max Depenetration with Geometry Pawns以外のものから移動するときにシミュレートされたプロキシが通過できる最大距離。
Max Depenetration with Geometry as Proxy
Max Depenetration with Pawn 他のポーンから外に出たときに突き抜けが許される最大距離。
Max Depenetration with Pawn as Proxy シミュレートされたプロキシが他のポーンから移動するときに突き抜ける最大距離。
Requested Move Use Acceleration 後続のパスにアクセラレーションを使用する必要がありますか?
trueの場合、追従して目標速度に到達すると加速度が適用されます。
  • Character Movement: Walking
変数名 説明
Max Step Height 最大の高さのキャラクタがステップアップできる
Walkable Floor Angle キャラクターの歩行可能なサーフェスの最大角度を度で設定します。
WalkableFloorZも計算します。
Walkable Floor Z キャラクターの最も急峻な歩行可能面の法線のZ成分を設定します。
Ground Friction 移動制御に影響する設定。
Max Walk Speed 歩行時の最大地面速度。落下時の最高横速度も決定します。
Max Walk Speed Crouched しゃがんで歩いたときの最大地面速度。
Braking Deceleration Walking 歩行時の減速度、加速時の減速度。
Sweep While Nav Walking 歩行中にキャラクタが衝突ジオメトリを掃引するかどうか。
Can Walk Off Ledges trueの場合、キャラクターは出っ張りを離れることができます。
Can Walk Off Ledges when Crouching
Maintain Horizontal Ground Velocity trueの場合、歩行運動は、上り坂を上昇すると常に水平速度を維持します。
これにより、上り坂が上り坂に平行して速くなります。
Ignore Base Rotation キャラクターが立っているベースの回転の変化を無視するかどうか。
Perch Radius Threshold 接触がカプセルの端に近い場合には、キャラクターが表面の端に止まりぬようにしてください。
Perch Additional Height 棚に腰掛けているときは、歩行可能な床の上にどれくらいの高さがあるかを判断するときに、この追加の距離をMaxStepHeightに追加します。
Ledge Check Threshold ポーンがレッジから外れているかどうかを判断する際に使用されます。
Always Check Floor 歩いている間、固定キャラクターの床のチェックを常に強制するかどうか。
Use Flat Base for Floor Checks キャラクターが平らな底を持つ形を使用しているかのように床のチェックを行います。
  • Character Movement: Swimming

  • Character Movement: Flying

  • Character Movement: Custom Movement

  • Character Movement(Rotation Settings)

変数名 説明
Rotation Rate UseControllerDesiredRotationまたはOrientRotationToMovementがtrueの場合に使用される1秒あたりの回転の変更。
Use Controller Desired Rotation trueの場合、キャラクタをコントローラの希望する回転(通常はController-> ControlRotation)に向かってスムーズに回転させ、RotationRateを回転の変化率として使用します。
Orient Rotation to Movement trueの場合、RotationRateを回転の変化率として使用して、Characterを加速方向に回転させます。

関数

  • public
関数 説明
virtual void AddForce
(
FVector Force
)
キャラクターに力を加える。
(Add force to character.)
void AddImpulse キャラクターにインパルスを加える。
AdjustFloorHeight 歩行時に床からわず​​かなオフセットを維持しようと床からの距離を調整します(CurrentFloorに基づいて)。
ApplyAccumulatedForces AddImpulse()とAddForce()によって蓄積された運動量を適用し、それらの力をクリアします。
ApplyDownwardForce 物理オブジェクトの上を歩いているときに下向きの力を適用します。
ApplyNetworkMovementMode
ApplyRepulsionForce タッチされたすべてのコンポーネントに反発力を適用します。
ApplyRequestedMove 要求された加速と速度を計算するために、後続の経路によって要求された速度を使用します。
ApplyRootMotionSource このルートモーションソースの現在のルートモーションLocalIDにRootMotionSourceを適用します。
CalcAnimRootMotionVelocity 動いているroot motionから速度を計算する。
CalcAvoidanceVelocity RVO Avoidance.
CalcRootMotionVelocity TODO:廃止予定です。削除してください。
CalcVelocity 摩擦と加速または減速の影響を適用して、現在の状態に基づいて速度と加速度を更新します。
CanCrouchInCurrentState キャラクタが現在の状態でしゃがむことが許可されている場合はtrueです。
CanStepUp 与えられたFHitResultでactorの上に立つことができるならtrue。
CanWalkOffLedges このポーンが現在、棚を離れることができるかどうか。
CheckFall ポーンが落下中か確認。
CheckLedgeDirection 現在の位置から適切な床のSideStepがある場合はTrueです。
CheckWaterJump 泳ぎ状態のpawnがプールの端に突き当たり、飛び降りるかどうかを確認。
ClearAccumulatedForces AddImpulse()とAddForce()を介して蓄積された力をクリアし、また起動速度も保留します。
ClientAckGoodMove 受信したServerMove()を処理した後にクライアントの調整が必要ない場合、クライアントがSavedMovesから削除できるように適切な移動をしてください
ClientAdjustPosition タイムスタンプの付いたサーバー移動に関連付けられた、位置補正をクライアントに複製します。
ClientAdjustRootMotionPosition 移動にルートモーションを使用する場合は、位置補正をクライアントに複製します。
ClientAdjustRootMotionSourcePosition ルートモーションを使用して移動する場合、ルートモーションソース補正をクライアントに複製します。
ClientVeryShortAdjustPosition 速度がゼロになったときの帯域節約バージョン。
ComputeFloorDist カプセルの底面から床までの距離を計算し、その結果をOutFloorResultに格納します
ComputeOrientToMovementRotation 現在の動きに基づいて目標回転を計算します。
ComputePerchResult GetValidPerchRadius()で指定された半径を持つより小さなカプセルの掃引結果を計算し、InHit.ImpactPointのInMaxFloorDist内で掃引が有効な歩行可能法線に接触する場合はtrueを返します。
ConstrainAnimRootMotionVelocity 現在の移動モード(例えば、下降Zが無視される場合)を考慮して、ルート移動速度の成分を適切に設定しないでください。
ConvertRootMotionServerIDsToLocalIDs ルートモーショングループの受信したサーバーIDをローカルIDに変換します。
Crouch 新しいカプセルサイズが適合するかどうかをチェックし(侵入なし)、成功した場合はCharacterOwner-> OnStartCrouch()を呼び出します。
DisableMovement()
DisplayDebug キャンバスに重要な変数を描画する。
DoJump ジャンプを行う。
FindFloor 指定された場所でカプセルの床を見つけるために垂直方向の掃引を掃引します。
FindNavFloor ナビメッシュに位置を投影して、調整された高さを確認します。
FindWaterLine 可能な限り水面に近づき、現在と同じ面にとどまります。
FloorSweepTest WorldをSweep(掃引)し、最初のブロックヒットを返します。
ForceReplicationUpdate() クライアントが長い間更新していないサーバー上に表示させることで、クライアントの更新を強制します。
GetAirControl 落下時に使用するエアコントロールを取得します。
GetAnalogInputModifier() モディファイア[0..1]は、最後の入力ベクトルの大きさに基づいており、移動中の加速度と最大速度を変更するために使用されます。
GetBestDirectionOffActor キャラクターの速度、ベースアクターの大きさなどに基づいてジャンプするように変更することができます。
GetCharacterOwner() UpdatedComponentを所有するCharacterを取得します。
GetCurrentAcceleration() 現在の加速度。入力ベクトルごとに更新されます。
GetDeltaRotation 時間間隔DeltaTimeの間にキャラクタをどのくらい回転させるか。
GetFallingLateralAcceleration PhysFallingのヘルパー。
GetGroundMovementMode() 現在のGroundMovementMode値を取得します。現在のGroundMovementMode。
GetImpartedMovementBaseVelocity() 移動基底を持っている場合は、通常はその基点から飛び出す際に、その基底によって与えられるべき速度を取得します。
GetLedgeMove 棚に沿って動く新しいデルタ。
GetMaxAcceleration() 現在の状態の最大加速度。
GetMaxBrakingDeceleration() 制動時(すなわち、加速がないとき)の現在の最大減速度。
GetMaxJumpHeight() JumpZVelocityの速度と重力に基づいて最大ジャンプ高さを計算します。
GetMaxJumpHeightWithJumpTime()
GetModifiedMaxAcceleration() TODO:廃止予定です。削除してください。
GetMovementBase() Return PrimitiveComponent we are based on (standing and walking on).私たちが基づいているPrimitiveComponentを返します(立って歩いています)。
GetMovementName() MovementModeの文字列
GetNetworkSafeRandomAngleDegrees() クライアントとサーバーの間でほぼ等しい角度でランダムな角度を生成します。
GetPerchRadiusThreshold() キャラクターがサーフェスの端に止まりそうにない、カプセルの端からの距離。
GetPredictionData_Client_Character()
GetPredictionData_Server_Character()
GetRootMotionSource 現在のルートモーションから名前でRootMotionSourceを取得します。
GetRootMotionSourceByID 現在のルートモーションからRootMotionSourceをIDで取得します。
GetServerLastTransformUpdateTimeStamp() ServerLastTransformUpdateTimeStampの値を取得します。
GetSimulationTimeStep 残りの時間と現在の反復を考慮して残りの時間ステップを計算します。
GetValidPerchRadius() 落ちることなくサーフェスの端に立つことができる半径を返します(ウォーキング可能なサーフェスの場合)。
GetWalkableFloorAngle() キャラクターの歩行可能なサーフェスの最大角度を度で取得します。
GetWalkableFloorZ() キャラクターのための最も急な歩行可能な表面の法線のZ成分を取得します。
HandlePendingLaunch() 更新中に保留中の起動を処理します。起動がトリガーされた場合はtrueを返します。
HasAnimRootMotion() PerformMovement()物理で使用するアニメーションのルートモーションがある場合はTrueです。
HasRootMotionSources() PerformMovement()物理で使用する任意のソースからルートモーションがある場合はTrueです。
HasValidData() 有効なCharacterOwnerとUpdatedComponentがある場合はtrueを返します。
ImmersionDepth() キャラクターがどのくらい深く水に浸されているかを判断する。
IsMovementInProgress() 現在、動きの更新を行っている場合はTrueです。
IsValidLandingSpot 提供されたヒット結果が落下時に有効な着陸地点であることを確認します。
IsWalkable ヒットした結果をキャラクターのウォーキング可能なサーフェスとみなす必要がある場合はtrueを返します。
IsWalking()
IsWithinEdgeTolerance Return true if the 2D distance to the impact point is inside the edge tolerance (CapsuleRadius minus a small rejection threshold).インパクトポイントまでの2D距離がエッジ許容値内にある場合はtrueを返します(CapsuleRadiusから小さな拒否しきい値を引いた値)。
JumpOff このポーンを強制的に現在の基地から跳ね返させる。これは受け入れられない。
JumpOutOfWater 水から海岸に飛ぶ。
Launch Queue a pending launch with velocity LaunchVel.速度LaunchVelで待機中の発射を待つ。
MaybeSaveBaseLocation() 更新を延期しない場合は、SaveBaseLocation()を呼び出します(bDeferUpdateBasedMovementがfalse)。
MaybeUpdateBasedMovement ベースの移動に基づいて位置の更新を更新または遅らせる。
MoveSmooth 現在の移動モード(通常はシミュレートされたプロキシによって使用される)に基づく単純な移動ルールを使用して、指定された移動方向に沿って移動します。
NewFallVelocity 与えられた速度と重力から新しい落下速度を計算する。
NotifyJumpApex() bNotifyApexがtrueでキャラクターがジャンプの頂点を通過したときに呼び出されます。
OnRootMotionSourceBeingApplied Called during ApplyRootMotionSource call, useful for project-specific alerts for "something is about to be altering our movement".ApplyRootMotionSource呼び出し中に呼び出され、「何かが動きを変えようとしている」というプロジェクト固有の警告に便利です。
PackNetworkMovementMode()
PerformAirControl TODO: deprecated, remove.
PerformAirControlForPathFollowing Update Velocity and Acceleration to air control in the desired Direction for character using path following.パスを使用しているキャラクタの目的の方向で、速度と加速度を空気制御に更新します。
PhysFalling 落ちる動きを扱います
PhysicsRotation deltaTimeで回転を実行する
PostPhysicsTickComponent フィジックス(同期シーン)後に呼び出されるTick関数は、布の前にシミュレーションを終了しました
PostProcessAvoidanceVelocity bUseRVOPostProcessが設定されたときに呼び出される修正回避速度を可能にする
RemoveRootMotionSource RootMotionSourceを現在のルートモーションから名前で削除します。
RemoveRootMotionSourceByID 現在のルートモーションからRootMotionSourceをIDで削除します。
RoundAcceleration Round acceleration, for better consistency and lower bandwidth in networked games.ネットワーク化されたゲームの一貫性と低帯域幅のためのラウンドアクセラレーション
SaveBaseLocation() Update OldBaseLocation and OldBaseQuat if there is a valid movement base, and store the relative location/rotation if necessary.有効な移動ベースがある場合はOldBaseLocationとOldBaseQuatを更新し、必要に応じて相対位置/回転を保存します。
ServerMove Network RPCs for movement.移動のためのネットワークRPC。
ServerMoveDual Replicated function sent by client to server - contains client movement and view info for two moves.クライアントからサーバに送信された複製された機能 - クライアントの動きと2つの動きのビュー情報が含まれています。
ServerMoveDualHybridRootMotion Replicated function sent by client to server - contains client movement and view info for two moves.クライアントからサーバーに送信された複製された機能 - クライアントの動きと2つの動きのビュー情報が含まれます。
ServerMoveOld Resending an (important) old move. Process it if not already processed.(重要な)古い動きを再送する。まだ処理されていない場合は処理してください。
SetAvoidanceEnabled Change avoidance state and registers in RVO manager if needed.回避状況を変更し、必要に応じてRVOマネージャに登録します。
SetAvoidanceGroup
SetAvoidanceGroupMask
SetAvoidanceVelocityLock
SetBase Update the base of the character, which is the PrimitiveComponent we are standing on.キャラクタのbaseを更新します。これは、現在立っているPrimitiveComponentです。
SetBaseFromFloor Update the base of the character, using the given floor result if it is walkable, or null if not.指定された床の結果が歩行可能な場合はそれを使用してキャラクタの底辺を更新し、そうでない場合はnullを更新します。
SetDefaultMovementMode() Set movement mode to the default based on the current physics volume.現在の物理ボリュームに基づいて移動モードをデフォルトに設定します。
SetGroundMovementMode Set movement mode to use when returning to walking movement (either MOVE_Walking or MOVE_NavWalking).歩行動作に戻るときに使用する移動モードを設定します(MOVE_WalkingまたはMOVE_NavWalking)。
SetGroupsToAvoid
SetGroupsToAvoidMask
SetGroupsToIgnore
SetGroupsToIgnoreMask
SetMovementMode 移動モードを変更します。
SetWalkableFloorAngle キャラクターの歩行可能なサーフェスの最大角度を度で設定します。 WalkableFloorZも計算します。
SetWalkableFloorZ キャラクタの最も急峻な歩行可能面の法線のZ成分を設定します。
ShouldCatchAir 歩行時および歩行時にキャラクタが下降モードに入るかどうかは、古いフロア結果と新しいフロア結果(両方とも歩行可能とみなされます)に基づいていますか。
ShouldCheckForValidLandingSpot 有効な着陸地点を見つけようとするかどうかを判断する(ヒット結果に基づいて)。
ShouldComputePerchResult Check if the result of a sweep test (passed in InHit) might be a valid location to perch, in which case we should use ComputePerchResult to validate the location.掃引テストの結果(InHitで渡された)が有効な場所であるかどうかを確認します。この場合、ComputePerchResultを使用して場所を検証する必要があります。
ShouldJumpOutOfWater Calculates the best direction to go to "jump off" an actor.アクターを「飛び降りる」ための最良の方向を計算します。
SimulateRootMotion Simulate Root Motion physics on Simulated Proxies.シミュレートされたプロキシのルートモーション物理をシミュレートします。
StartFalling 歩行から落下への移行。
StartNewPhysics MovementModeに基づいて物理を変更します。
StartSwimming Handle start swimming functionality.スタートスイミング機能を処理します。
StepUp Move up steps or slope.ステップまたは斜面を上に移動します。
Swim Swimming uses gravity - but scaled by (1.f - buoyancy).水泳は重力を使用しますが、(1.f - 浮力)
UnCrouch Checks if default capsule size fits (no encroachment), and trigger OnEndCrouch() on the owner if successful.デフォルトのカプセルサイズが適合するかどうか(侵入なし)をチェックし、成功した場合はオーナーのOnEndCrouch()をトリガーします。
UnpackNetworkMovementMode
UpdateBasedMovement Update position based on Base movement.ベースの移動に基づいて位置を更新する
UpdateBasedRotation Update controller's view rotation as pawn's base rotates.ポーンベースの回転に合わせてコントローラのビュー回転を更新します。
UpdateCharacterStateAfterMovement() Update the character state in PerformMovement after the position change.位置の変更後、PerformMovementのキャラクタの状態を更新します。
UpdateCharacterStateBeforeMovement() Update the character state in PerformMovement right before doing the actual position change.実際の位置変更を行う前に、PerformMovementのキャラクタ状態を更新してください。
UpdateFloorFromAdjustment() React to instantaneous change in position.位置の瞬間的な変化に反応する。
VerifyClientTimeStamp On the Server, verify that an incoming client TimeStamp is valid and has not yet expired.サーバーで、着信クライアントのTimeStampが有効であり、まだ有効期限が切れていないことを確認します。
VisualizeMovement() Draw in-world debug information for character movement (called with p.VisualizeMovement > 0).キャラクタ移動のためのインワールドデバッグ情報を描画します(p.VisualizeMovement> 0で呼び出されます)。

参考