Empty
Empty
Empty
RunServiceはアニメーションに使用できます。また、リアルタイムの更新やフレームごとの制御を可能にします。
イベント | 詳細 |
---|---|
Heartbeat | 物理シミュレーションが完了した後、毎フレーム発生します。 |
PostSimulation | 物理シミュレーションが完了した後、毎フレーム発生します。 |
PreAnimation | 物理シミュレーションの前、レンダリング後に毎フレーム発生します。 |
PreRender | フレームがレンダリングされる前に毎フレーム発生します。 |
PreSimulation | 物理シミュレーションの前に毎フレーム発生します。 |
RenderStepped | フレームがレンダリングされる前に毎フレーム発生します。 |
Stepped | 物理シミュレーションの前に毎フレーム発生します。 |
RunServiceとwait()の比較
Empty
Empty
Empty
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の比較
Empty
Empty
Empty
- 滑らかで予測可能なアニメーションに最適です。
- 単純なプロパティの遷移に最適です。
- 組み込みのイージングスタイルが使いやすい。
- TweenServiceは、RunServiceと同様のメカニズムを活用して、滑らかなアニメーションを保証し、フレームに依存しないプロパティの補間を実現します。
Empty
Empty
Empty
- リアルタイムで動的な更新に適しています。
- フレームごとの制御を可能にします。
- アニメーション以外のさまざまなタスクに使用できます。
- RenderSteppedはレンダリングプロセスに結び付いており、クライアント側で発生するため、LocalScriptsに制限されています。
RunServiceの使用例
例 | 詳細 |
---|---|
Custom Render Logic | 3D GUI: ゲーム内のパーツやキャラクターに従う必要がある3D GUI要素を作成して更新します。 |
Player-Exclusive Features | ローカルゲームメカニクス: ローカルプレイヤーにのみ影響する機能やメカニクスを実装します。例: ローカル専用のパーティクルエフェクトや照明の変更。 |
Camera Manipulation | 動的なカメラ制御: プレイヤーの操作やゲームイベントに基づいて、カメラの位置、方向、または焦点を滑らかに更新し、より没入感のある体験を提供します。 |