Events・Sound・Operators
このページでは、Movieのフレーム生成に関係するEvents、Sound、Operatorsの現行機能をまとめます。
Events
| Opcode | 役割 |
|---|---|
event_initialize | タイムライン書き出し開始時の初期化。既存スレッドを再起動する |
event_renderframe | プレビューまたは書き出し対象の各フレームを構築するカスタムhat |
event_whenbroadcastreceived | 通常のScratchブロードキャストを受け取る |
event_broadcast | 通常のScratchブロードキャストを送る |
event_broadcastandwait | 通常のScratchブロードキャストを送り、完了を待つ |
event_renderframeはcommand blockではありません。runtime.startHats('event_renderframe')の呼び出しは、hat本体を同期的に進める場合があり、呼び出し自体がVM yieldを作るとは限りません。
event_renderframeのscriptが保留中でも、同じフレームを再起動して時間を進めることはありません。保留中のvisual workが終わった後に既存threadを継続します。
Sound
Movie用に現在表示されるSoundブロックはsound_playattimeです。
play [sound] from [T1] to [T2] sec
speed [SPEED] volume [VOLUME] %
T1とT2はタイムライン上の開始・終了時刻です。SPEEDが正数でない場合は1に補正します。VOLUMEは0〜100%へクランプします。- 再生中は同じブロックをフレームごとに再起動せず、同じ音源の再生状態を継続します。
- 一時停止中の
event_renderframe再評価はスクラブ用のため無音です。ブロックを直接クリックした場合の試聴は許可されます。 - 書き出し中はフレームごとの音声イベントとして収集し、速度、音量、パン、ピッチを反映します。
旧sound_playatframeは互換性専用で、現行のSoundパレット機能には含めません。
Operatorsとeasing
Operatorsには通常のScratch演算子に加えて、現行のoperator_easingがあります。
easing [TYPE] value [V0] ~ [V1] time [T0] ~ [T1]
power [POWER] speed [SPEED]
TYPEはPowerIn、PowerOut、PowerInOut、CircIn、CircOut、CircInOut、ExpoIn、ExpoOut、ExpoInOutです。
時間が開始時刻より前ならV0、終了時刻より後ならV1、範囲内なら選択したeasingで補間します。T1 <= T0の場合は、開始時刻より前ならV0、それ以外ならV1です。
Objectsの色補間などが使う共通のanimation vocabularyには、Linear、BackIn、BackOut、BackInOutも含まれます。