メインコンテンツまでスキップ

現行機能と互換性

Shadingの実装には、現在のツールボックスに表示される機能と、旧プロジェクトを読み込むために登録されている機能があります。getInfo()やVM primitiveに登録が残っていることだけを根拠に、現行ユーザー向け機能とは判断しません。

現在表示されるカテゴリ

表示名実装上のID主な内容
Objectsobjects描画、グループ、変形、合成、時間、ライト
LookspenfxPenFXの動的ブロック
Cameramotionカメラ操作とレポーター
Soundsound時間範囲付きの音声
Eventseventsinitializerender frame、ブロードキャスト
ControlcontrolScratchの制御
SensingsensingScratchのセンシング
OperatorsoperatorsScratchの演算子とeasing
Variablesdata変数とリスト
My Blocksprocedures通常のカスタムブロック

標準のlookspenは、現在のMovie用ツールボックスでは表示しません。表示名がLooksでも、現行の実体はpenfx extensionです。

互換性専用の機能

次の機能は、旧プロジェクトのロード・実行・再保存などに必要な範囲で維持されますが、新しい作品で使う現行パレットの機能ではありません。

  • 旧Objectsのアニメーション、カーブ、手続き型描画、旧時間制御
  • 旧Movie Looksのビデオ、マテリアル、モデル、レンダリングフレーム操作
  • 旧Movie Soundの sound_playatframe
  • My Blocks Shaderのcompiler、procedure mutation、myblocksshader_*

具体的には、objects_animateobjects_shapeobjects_timeRangelooks_rendermodellooks_exportrenderingmp4などが互換性のために残っています。これらは現行ブロックリファレンスには掲載しません。

一方、looks_clearlightlooks_addpointlightlooks_addlightは旧opcodeを使いますが、現在はObjectsカテゴリに表示されるため現行機能です。

非表示Objects opcode

objects_animate
objects_loopValue
objects_pingPongValue
objects_wiggle
objects_interpolateAngle
objects_interpolateVector
objects_numberCurve
objects_colorCurve
objects_angleCurve
objects_stepCurve
objects_instanceId
objects_instanceSeed
objects_shape
objects_arc
objects_circularSegment
objects_line
objects_group
objects_simulation
objects_matte
objects_renderPass
objects_drawPass
objects_clearPass
objects_repeat
objects_timeOffset
objects_timeRange
objects_timeScale
objects_timeLoop
objects_timeFreeze
objects_timeReverse
objects_timeRemap

非表示Movie Looks/Sound opcode

looks_switchvideoto
looks_setvideoframeto
looks_changevideoframeby
looks_settextfont
looks_clearscene
looks_clearmaterial
looks_addmaterial
looks_setalbedofromcolor
looks_setalbedofromtexture
looks_setemissionfromcolor
looks_setemissionfromtexture
looks_setdisplacementmap
looks_setnormalmap
looks_setroughmap
looks_setmodelframeto
looks_rendermodel
looks_renderwall
looks_renderfloor
looks_renderbox
looks_switchmodelto
looks_addrenderingframe
looks_clearrenderingframe
looks_exportrenderingmp4
sound_playatframe

looks_rendervideoも旧exact-frame描画のために残っています。直後のstampが正しい動画フレームを消費できるよう内部ではblocking renderとして扱います。

現行機能を選ぶときの原則

  • 描画はObjectsの drawgroupingtransformcompositesceneを使う
  • 時刻はタイムラインとObjectsの現行時間レポーターを使う
  • 画面エフェクトはPenFXの組み込みブロック、またはPenFX shader packageを使う
  • 動画出力はタイムラインのレンダリング設定から行う
  • 旧ブロックの動作を新規作品の仕様として前提にしない

この区別により、互換性のための登録が現行APIの一覧へ混入することを防ぎます。

フレームを再現する考え方

プレビュー、シーク、書き出しでは、タイムラインの時刻からフレームを組み立てます。書き出しのrender frameはフレーム番号とFPSから時刻を決めるため、実時間に依存しません。

次はObjectsの基本で、現行Objectsブロックの構造を確認してください。