RunService

RunServiceはアニメーションに使用できます。また、リアルタイムの更新やフレームごとの制御を可能にします。

イベント詳細
Heartbeat物理シミュレーションが完了した後、毎フレーム発生します。
PostSimulation物理シミュレーションが完了した後、毎フレーム発生します。
PreAnimation物理シミュレーションの前、レンダリング後に毎フレーム発生します。
PreRenderフレームがレンダリングされる前に毎フレーム発生します。
PreSimulation物理シミュレーションの前に毎フレーム発生します。
RenderSteppedフレームがレンダリングされる前に毎フレーム発生します。
Stepped物理シミュレーションの前に毎フレーム発生します。

RunServiceとwait()の比較

local part = Instance.new("Part")
part.Size = Vector3.new(4, 4, 4)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Parent = workspace

local speed = 5 -- studs per second

spawn(function()
    while true do
        wait(0.033) -- Approximate wait time for 30 FPS (Frame per second)
        part.Position = part.Position + Vector3.new(speed * 0.033, 0, 0)
    end
end)
wait()は精度が低く、タイミングが多少異なることがあり、アニメーションが滑らかではない場合があります。

RunServiceとTweenServiceの比較

  • 滑らかで予測可能なアニメーションに最適です。
  • 単純なプロパティの遷移に最適です。
  • 組み込みのイージングスタイルが使いやすい。
  • TweenServiceは、RunServiceと同様のメカニズムを活用して、滑らかなアニメーションを保証し、フレームに依存しないプロパティの補間を実現します。
  • リアルタイムで動的な更新に適しています。
  • フレームごとの制御を可能にします。
  • アニメーション以外のさまざまなタスクに使用できます。
  • RenderSteppedはレンダリングプロセスに結び付いており、クライアント側で発生するため、LocalScriptsに制限されています。

RunServiceの使用例

詳細
Custom Render Logic3D GUI: ゲーム内のパーツやキャラクターに従う必要がある3D GUI要素を作成して更新します。
Player-Exclusive Featuresローカルゲームメカニクス: ローカルプレイヤーにのみ影響する機能やメカニクスを実装します。例: ローカル専用のパーティクルエフェクトや照明の変更。
Camera Manipulation動的なカメラ制御: プレイヤーの操作やゲームイベントに基づいて、カメラの位置、方向、または焦点を滑らかに更新し、より没入感のある体験を提供します。

このチュートリアルがお役に立ちましたら、私の仕事をサポートするためにコーヒーをおごっていただけると嬉しいです。

ご支援、誠にありがとうございます!

コーヒーをおごる