DaVinci Resolve 16 Pythonスクリプトに関する覚書き
Blackmagic社のDaVinci ResolveではPythonやluaによる操作が出来ます。
ここではPythonによる操作の勉強がてら知り得た知識を記載していきます。間違ってるかもしれませんが、ご了承ください。
サンプルフォルダについて
まず、DaVinciをスクリプトで操作する方法が検索しても日本語の情報が出てきません。
仕方ないので、DaVinci Resolve16をインストールするとサンプルスクリプトも入るのでそこから手掛かりを探しましょう。
/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/
Macを使っている方は、Finderの移動から「フォルダへ移動」を選んで上記のパスを入力してみましょう。ここには下記のようなPythonとLuaのサンプルが用意されています。
まずは、README.txtから見ていきましょう。
READMEに書いてあること
README.txtには下記の事が記載されています。
なお、以下の文章はREADME.txtを翻訳したものがベースとなっています。
Blackmagic Design Fusionと同様に、LuaおよびPythonプログラミング言語で書かれたスクリプトがサポートされています。
一般的には、スクリプトはコンソール・ウインドウから起動したり、コマンドラインを使用します。
この時、実行する権限は「Fusion Settings」から変更することで、コンソールからのみ実行したり、ローカルネットワークから実行したりできます。
DaVinci Resolveアプリケーションの外部からスクリプトによるアクセスを可能にする時は、セキュリティへの影響に注意してください。
具体的には、ワークスペース上に「コンソール」があり、Fusionメニューからは「Macro Editor...」が呼び出せます。
スクリプトを起動するには、DaVinci Resolveが実行してある必要があります。
また、書かれたスクリプトを外部フォルダ内から実行するには、ソフトウェアがスクリプトが場所を認識している必要があります。
Pythonのインストール時には、適切な依存関係を選択できるように、次の環境変数を設定する必要がある場合があります。
なお、各プラットフォームでのデフォルトの場所は下記の通りになります。
Mac OS X:
RESOLVE_SCRIPT_API="/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting/"
RESOLVE_SCRIPT_LIB="/Applications/DaVinci Resolve/DaVinci Resolve.app/Contents/Libraries/Fusion/fusionscript.so"
PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/"
Windows:
RESOLVE_SCRIPT_API="%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting\"
RESOLVE_SCRIPT_LIB="C:\Program Files\Blackmagic Design\DaVinci Resolve\fusionscript.dll"
PYTHONPATH="%PYTHONPATH%;%RESOLVE_SCRIPT_API%\Modules\"
Linux:
RESOLVE_SCRIPT_API="/opt/resolve/Developer/Scripting/"
RESOLVE_SCRIPT_LIB="/opt/resolve/libs/Fusion/fusionscript.so"
PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/"
(Note: For standard ISO Linux installations, the path above may need to be modified to refer to /home/resolve instead of /opt/resolve)
Fusionスクリプトと同様に、Resolveスクリプトはメニューとコンソールから呼び出すこともできます。
起動時にはDaVinci Resolveは下記のフォルダのスクリプトを読み込みに行きます。
なお、読み込まれたFusionタブのスクリプトメニューに表示されます。
Mac OS X: /Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts/Comp/
Windows: %APPDATA%\Blackmagic Design\DaVinci Resolve\Fusion\Scripts\Comp\
Linux: /opt/resolve/Fusion/Scripts/Comp/ (or /home/resolve/Fusion/Scripts/Comp/ depending on installation)
コンソールを使用すると、簡単なスクリプトコマンドの実行、プロパティの照会や変更、スクリプトのテストを簡単に行うことができます。
コンソールはLua、Python 2.7、Python 3.6のコマンドを受け付けます。
コンソールの使用方法については、 「DaVinci Resolve User Manual」 を参照してください。
ここではPythonスクリプトで、単純なプロジェクトを作成してみましょう。
#!/usr/bin/env python
import DaVinciResolveScript as dvr_script
resolve = dvr_script.scriptapp("Resolve")
fusion = resolve.Fusion()
projectManager = resolve.GetProjectManager()
projectManager.CreateProject("Hello World")
Rosolveオブジェクトは、DaVinci Resolveを使用したスクリプト作成の基本的な出発点です。
ネイティブオブジェクトとして、スクリプト化可能なプロパティーを調べることができます。
これは、Luaのテーブル反復と"getmetatable"と、Pythonのdir()(他のメソッド)のdirなどです。
上の重要なスクリプト化可能オブジェクトはfusionです。
これにより、既存のFusionスクリプト機能にアクセスできます。
DaVinci Resolveのヘッドレスモードでの実行
DaVinci Resolveは、-noguiコマンドラインオプションを使用して、ユーザーインターフェイスなしでヘッドレスモードで起動できます。
このオプションを使用してDaVinci Resolveを起動すると、ユーザー・インタフェースは無効になります。
ただし、さまざまなスクリプトAPIは引き続き期待どおりに動作します。
Basic Resolve API
一般的に使用されるAPI関数の一部を次に示します。
解決オブジェクトと同様に、各オブジェクトのプロパティと関数を検査できます。
下記は「メソッド --> 戻り値」で記載されています。
Resolve
Fusion() --> Fusion
■Fusionオブジェクトを返します。Fusionスクリプトの開始点。
GetMediaStorage() --> MediaStorage
■メディアの場所と状態をメディアストレージオブジェクトへ返します。
GetProjectManager() --> ProjectManager
■現在開いているデータベースのプロジェクトマネージャオブジェクトを返します。
OpenPage(pageName) --> None
■Davinci Resolveで指定したタブページに切り替える。
入力は"media"、 "edit"、 "fusion"、 "color"、 "fairlight"、 "deliver"のいずれかです。
ProjectManager
CreateProject(projectName) --> Project
■プロジェクト名(テキスト)が一意の場合、プロジェクトを作成して返します。そうでない場合は、「なし」を返します。
DeleteProject(projectName) --> Bool
■プロジェクトファイルが読み込まれていない場合、現在のフォルダ内のプロジェクトを削除します
LoadProject(projectName) --> Project
■一致するものが見つかった場合は、プロジェクトをname=projectName(text)という名前で読み込み、戻り値を返します。一致するプロジェクトが存在しない場合は、Noneとなります。
GetCurrentProject() --> Project
■現在読み込まれているDaVinci Resolveプロジェクトを返します。
SaveProject() --> Bool
■現在読み込まれているプロジェクトを独自の名前で保存します。
成功した場合はTrueを返します。
CreateFolder(folderName) --> Bool
■フォルダ名(テキスト)のフォルダが無いことを確かめてフォルダを作成します。
GetProjectsInCurrentFolder() --> [project names...]
■現在のフォルダ内のプロジェクト名の一覧を配列で返します。
GetFoldersInCurrentFolder() --> [folder names...]
■現在のフォルダ内のフォルダ名の一覧を配列で返します。
GotoRootFolder() --> Bool
■データベース内のルートフォルダを開きます。
GotoParentFolder() --> Bool
■現在のフォルダに親がある場合、データベース内の現在のフォルダの親フォルダを開きます。
OpenFolder(folderName) --> Bool
■指定された名前の下のフォルダを開きます。
ImportProject(filePath) --> Bool
■指定されたファイルパス下にプロジェクトをインポートします。
成功した場合はtrueを返します。
ExportProject(projectName, filePath) --> Bool
■指定された名前のプロジェクトを、指定されたファイルパス下にエクスポートします。成功した場合はtrueを返します。
RestoreProject(filePath) --> Bool
■指定されたバックアップファイルパス下にプロジェクトを復元します。
成功した場合はtrueを返します。
Project
GetMediaPool() --> MediaPool
■メディアプールオブジェクトを返します。
GetTimelineCount() --> int
■プロジェクトに現在表示されているタイムラインの数を返します。
GetTimelineByIndex(idx) --> Timeline
■指定されたインデックスでタイムラインを返します
1 <= idx <= project.GetTimelineCount()
GetCurrentTimeline() --> Timeline
■現在読み込まれているタイムラインを返します。
SetCurrentTimeline(timeline) --> Bool
■指定されたタイムラインをプロジェクトの現在のタイムラインとして設定します。正常に終了した場合はTrueを返します。
GetName() --> string
■プロジェクト名を返します。
SetName(projectName) --> Bool
■指定したプロジェクト名(テキスト)が無い場合、そのプロジェクト名を設定します。
GetPresets() --> [presets...]
■プリセットとその情報のテーブルを返します。
SetPreset(presetName) --> Bool
■プリセット名(string)という名称のプリセットをプロジェクトに設定します。
GetRenderJobs() --> [render jobs...]
■レンダリングジョブとその情報のテーブルを返します。
GetRenderPresets() --> [presets...]
■レンダリングプリセットとその情報のテーブルを返します。
StartRendering(index1, index2, ...) --> Bool
■指定されたレンダリングジョブのレンダリングをインデックスに基づいて開始します。パラメータを指定しないと、すべてのレンダリングジョブでレンダリングが開始されます。
StartRendering([idxs...]) --> Bool
■インデックスに基づいて、レンダリングジョブのレンダリングを開始します。パラメータが指定されていない場合は、すべてのレンダリングジョブのレンダリングが開始されます。
StopRendering() --> None
■すべてのレンダリングジョブのレンダリングを停止します。
IsRenderingInProgress() --> Bool
■レンダリング進行中の場合、trueを返します。
AddRenderJob() --> Bool
■レンダーキューにレンダリングジョブを追加します。
DeleteRenderJobByIndex(idx) --> Bool
■指定されたジョブインデックス(int)に基づいてレンダリングジョブを削除します。
DeleteAllRenderJobs() --> Bool
■レンダリングジョブをすべて削除します。
LoadRenderPreset(presetName) --> Bool
■プリセット名(text)が存在する場合、プリセットを現在のプリセットとしてレンダリングするよう設定します。
SaveAsNewRenderPreset(presetName) --> Bool
■プリセット名(text)が一意の場合、指定された名前で新しいレンダリングプリセットを作成します。
SetRenderSettings([settings map]) --> Bool
■レンダリングの設定を指定します。
マップの設定はマップ、マップのキーは「SelectAllFrames」、「MarkIn」、「MarkOut」、「TargetDir」、「CustomName」です。
GetRenderJobStatus(idx) --> [status info]
■指定されたジョブインデックス(整数)に基づいて、ジョブのステータスと完了レンダリングの割合を返します。
GetSetting(settingName) --> string
■プロジェクト設定の値(settingName、文字列で指定)を返します。詳細については、次のセクションを参照してください。
SetSetting(settingName, settingValue) --> Bool
■プロジェクト設定(settingName、文字列で指定)を値(settingValue、文字列)に設定します。詳細については、次のセクションを参照してください。
GetRenderFormats() --> [render formats...]
■使用可能なレンダリングフォーマットのリストを返します。
GetRenderCodecs(renderFormat) --> [render codecs...]
■指定されたレンダリングフォーマット(文字列)の使用可能なコーデックの一覧を返します。
GetCurrentRenderFormatAndCodec() --> [format, codec]
■現在選択されているレンダリングフォーマットとレンダーコーデックを返します。
SetCurrentRenderFormatAndCodec(format, codec) --> Bool
■レンダリングのオプションとしてレンダリングフォーマット(文字列)とレンダリングコーデック(文字列)を設定します。
MediaStorage
GetMountedVolumes() --> [paths...]
■メディアストレージに表示されるマウントされたボリュームのそれぞれのフォルダパスの配列を返します。
GetSubFolders(folderPath) --> [paths...]
■指定されたフォルダパス(絶対パス)にある、サブフォルダのフォルダパスの配列を返します。
GetFiles(folderPath) --> [paths...]
■指定された絶対フォルダパス内のメディアおよびファイルリストの配列を返します。メディアリストは論理的に統合されたエントリである可能性があることに注意してください。
RevealInStorage(path) --> None
■DaVinciのメディアストレージ内で、特定のファイル/フォルダパスを展開して表示します。
AddItemsToMediaPool(item1, item2, ...) --> [clips...]
■指定したファイル/フォルダのパスをメディアストアから現在のメディアプールフォルダに追加します。1つまたは複数のファイル/フォルダパスを入力します。
AddItemsToMediaPool([items...]) --> [clips...]
■指定されたファイル/フォルダパスをメディアストアから現在のメディアプールフォルダに追加します。入力は、ファイル/フォルダパスの配列です。
MediaPool
GetRootFolder() --> Folder
■メディアプールのルートフォルダを返します。
AddSubFolder(folder, name) --> Folder
■指定されたFolderの下に、指定された名前の新しいサブフォルダを追加します。
CreateEmptyTimeline(name) --> Timeline
■新しいタイムラインを指定された名前で追加します。
AppendToTimeline(clip1, clip2...) --> Bool
■指定されたMedia Pool Itemオブジェクトを現在のタイムラインに追加します。成功した場合はTrueを返します。
AppendToTimeline([clips]) --> Bool
■指定されたMedia Pool Itemオブジェクトを現在のタイムラインに追加します。成功した場合はTrueを返します。
CreateTimelineFromClips(name, clip1, clip2, ...)--> Timeline
■指定した名前で新しいタイムラインを作成し、指定したMedia Pool Itemオブジェクトを追加します。
CreateTimelineFromClips(name, [clips]) --> Timeline
■指定した名前で新しいタイムラインを作成し、指定したMedia Pool Itemオブジェクトを追加します。
ImportTimelineFromFile(filePath) --> Timeline
■指定されたファイル内のパラメータに基づいてタイムラインを作成します。
GetCurrentFolder() --> Folder
■現在選択されているフォルダを返します。
SetCurrentFolder(Folder) --> Bool
■指定したフォルダを現在のフォルダを設定します。
DeleteClips([clips]) --> Bool
■メディアプール内の指定されたクリップを削除します。
DeleteFolders([subfolders]) --> Bool
■メディアプール内の指定されたサブフォルダを削除します。
MoveClips([clips], targetFolder) --> Bool
■指定されたクリップをターゲットフォルダに移動します。
MoveFolders([folders], targetFolder) --> Bool
■指定したフォルダをターゲットフォルダに移動します。
Folder
GetClips() --> [clips...]
■フォルダ内のクリップ(アイテム)の一覧を返します。
GetName() --> string
■フォルダのユーザ定義名を返します。
GetSubFolders() --> [folders...]
■フォルダ内のサブフォルダの一覧を返します。
MediaPoolItem
GetMetadata(metadataType) --> [[types],[values]]
■metadataTypeの値を返します。パラメータが指定されていない場合は、設定されているすべてのメタデータ・パラメータが戻されます。
SetMetadata(metadataType, metadataValue) --> Bool
■指定されたタイプと値でメタデータを設定します。成功した場合はTrueを返します。
GetMediaId() --> string
■Media Pool Itemに関連する固有のID名を返します。
AddMarker(frameId, color, name, note, duration) --> Bool
■指定されたframeId位置に、指定されたマーカー情報で新しいマーカーを作成します。
GetMarkers() --> [markers...]
■すべてのマーカーとその情報のリストを返します。
■フォーマットのテーブルを返します。
(例) - {96.0: {'color': 'Green', 'duration': 1.0, 'note': '', 'name': 'Marker 1'}, ...}
■上の例では、オフセット96(マーカの位置)に「緑」マーカーが1つあります。
DeleteMarkersByColor(color) --> Bool
■指定した色のすべてのマーカーをメディアプール項目から削除します。引数として「すべて」を指定すると、すべてのカラーマーカーが削除されます。
DeleteMarkerAtFrame(frameNum) --> Bool
■メディアプール項目からフレーム番号のマーカーを削除します。
AddFlag(color) --> Bool
■指定された色のフラグを追加します(テキスト)。
GetFlags() --> [colors...]
■項目に割り当てられたフラグカラーのリストを返します。
ClearFlags(color) --> Bool
■アイテムから指定した色のフラグをクリアします。「すべて」引数を指定すると、すべてのフラグがクリアされます。
GetClipColor() --> string
■アイテムの色を文字列で返します。
SetClipColor(colorName) --> Bool
■colorName(文字列)に基づいて項目のカラーを設定します。
ClearClipColor() --> Bool
■項目のクリップカラーをクリアします。
GetClipProperty(propertyName) --> [[types],[values]]
■propertyName(文字列)で示されるアイテム・プロパティ値の値を返します。詳細については、以下のセクションを参照してください。
SetClipProperty(propertyName, propertyValue) --> Bool
■指定したpropertyName(文字列)・propertyValue(文字列)に設定します。詳細については、以下のセクションを参照してください。
Timeline
GetName() --> string
■タイムラインのユーザ定義名を返します。
SetName(timelineName) --> Bool
■固有のタイムライン名をtimelineName(テキスト)として設定します。
GetStartFrame() --> int
■タイムラインの開始位置のフレーム番号を返します。
GetEndFrame() --> int
■タイムラインの最後のフレーム番号を返します。
GetTrackCount(trackType) --> int
■指定されたトラックタイプ(「audio」、「video」または「subtitle」)に基づいてトラック数を返します。
GetItemsInTrack(trackType, index) --> [items...]
■指定されたインデックスにあるビデオトラックまたはオーディオトラック(trackTypeに基づく)のタイムライン項目の配列を返します。
1 <= index <= GetTrackCount(trackType).
AddMarker(frameId, color, name, note, duration) --> Bool
■指定されたframeId位置に、指定されたマーカー情報で新しいマーカーを作成します。
GetMarkers() --> [markers...]
■すべてのマーカーとその情報のリストを返します。
■フォーマットのテーブルを返します。
(例) - {96.0: {'color': 'Green', 'duration': 1.0, 'note': '', 'name': 'Marker 1'}, ...}
#上の例では 、オフセット96(マーカーの位置)に「緑 」マーカーがあります。
DeleteMarkersByColor(color) --> Bool
■タイムラインから指定したカラーのすべてのマーカーを削除します。
引数として「All」を指定すると、すべてのカラーマーカーが削除されます。
DeleteMarkerAtFrame(frameNum) --> Bool
■タイムラインからフレーム番号のマーカーを削除します。
ApplyGradeFromDRX(path, gradeMode, item1, item2, ...)--> Bool
■指定されたファイルパス(文字列)から静止画を読み込み、gradeModeのタイムライン項目に等級を適用します
(int): 0-「キーフレームなし」、1-「ソースタイムコードのアライン」、2-「開始フレームの位置合わせ」。
ApplyGradeFromDRX(path, gradeMode, [items]) --> Bool
■指定されたファイルパス(文字列)から静止画を読み込み、gradeModeのタイムライン項目に等級を適用します
(int): 0-「キーフレームなし」、1-「ソースタイムコードのアライン」、2-「開始フレームの位置合わせ」。
GetCurrentTimecode() --> string
■「カット」 (Cut)、「編集」 (Edit)、「カラー」 (Color)、「配信」 (Deliver) ページで、タイムラインの現在位置のタイムコードを表す文字列を返します。
GetCurrentVideoItem() --> item
■現在のビデオタイムライン項目を返します。
GetCurrentClipThumbnailImage() --> [width, height, format, data]
■rawサムネールイメージデータ(この画像データはbase64フォーマットでエンコードされ、画像フォーマットはRGB8ビット)を返します。
この画像データは、辞書(Python)とテーブル(Lua)の形式でColorページ内のカレントメディアの場合に使用されます。
情報リターンは、「幅」、「高さ」、「フォーマット」および「データ」です。
例は、Exampleフォルダの6_get_current_media_thumbnail.pyに表示されます。
TimelineItem
GetName() --> string
■項目の名前を返します。
GetDuration() --> int
■項目の継続時間を返します。
GetEnd() --> int
■終了フレームの位置を返します。
GetFusionCompCount() --> int
■タイムラインアイテムに関連付けられているFusionコンポジションの数を返します。
GetFusionCompByIndex(compIndex) --> fusionComp
■指定されたインデックスに基づいてFusionコンポジションオブジェクトを返します。
1 <= compIndex <= timelineItem.GetFusionCompCount()
GetFusionCompNames() --> [names...]
■タイムラインアイテムに関連付けられているFusionコンポジション名のリストを返します。
GetFusionCompByName(compName) --> fusionComp
■指定された名前に基づいてFusionコンポジションオブジェクトを返します。
GetLeftOffset() --> int
■左側からのクリップのフレームごとの最大延長を返します。
GetRightOffset() --> int
■右側からクリップのフレーム単位で最大拡張値を返します
GetStart() --> int
■最初のフレームの位置を返します。
AddMarker(frameId, color, name, note, duration) --> Bool
■指定されたframeId位置に、指定されたマーカー情報で新しいマーカーを作成します。
GetMarkers() --> [markers...]
■すべてのマーカーとその情報のリストを返します。
■フォーマットのテーブルを返します。
(例) - {96.0: {'color': 'Green', 'duration': 1.0, 'note': '', 'name': 'Marker 1'}, ...}
#上の例では 、オフセット96(マーカーの位置)に「緑 」マーカーがあります。
DeleteMarkersByColor(color) --> Bool
■指定された色のマーカーをタイムライン項目からすべて削除します。
引数として「All」を指定すると、すべての色マーカーが削除されます。
DeleteMarkerAtFrame(frameNum) --> Bool
■タイムライン項目からフレーム番号のマーカーを削除します。
AddFlag(color) --> Bool
■指定された色のフラグを追加します(テキスト)。
GetFlags() --> [colors...]
■項目に割り当てられたフラグカラーのリストを返します。
ClearFlags(color) --> Bool
■アイテムから指定した色のフラグをクリアします。引数に「All」を指定すると、すべてのフラグがクリアされます。
GetClipColor() --> string
■アイテムの色を文字列で返します。
SetClipColor(colorName) --> Bool
■colorName(文字列)に基づいて項目のカラーを設定します。
ClearClipColor() --> Bool
■項目のクリップカラーをクリアします。
AddFusionComp() --> fusionComp
■タイムライン項目に関連付けられた新しいFusionコンポジションを追加します。
ImportFusionComp(path) --> fusionComp
■アイテムの新しいコンポジションを作成して追加することにより、指定したファイルパスからFusionコンポジションを読み込みます。
ExportFusionComp(path, compIndex) --> Bool
■指定されたインデックスに基づくFusionコンポジションを指定されたファイル名パスに書き出します。
DeleteFusionCompByName(compName) --> Bool
■指定された名称のFusionコンポジションを削除します。
LoadFusionCompByName(compName) --> fusionComp
■指定された名前でFusionコンポジションをロードし、アクティブなコンポジションとして設定します。
RenameFusionCompByName(oldName, newName) --> Bool
■指定した名前でFusionコンポジションの名前を変更し、新しい名前を付けます。
AddVersion(versionName, versionType) --> Bool
■タイムラインアイテムに関連付けられた新しいバージョンを追加します。
versionType:0 - ローカル、1 - リモート
DeleteVersionByName(versionName, versionType) --> Bool
■指定された名前でバージョンを削除します。
versionType:0 - ローカル、1 - リモート
LoadVersionByName(versionName, versionType) --> Bool
■指定された名前でバージョンをロードし、アクティブなバージョンとして設定します。
versionType:0 - ローカル、1 - リモート
RenameVersionByName(oldName, newName, versionType)--> Bool
■指定された名前の新しい名前でバージョンの名前を変更します。
versionType:0 - ローカル、1 - リモート
GetMediaPoolItem() --> MediaPoolItem
■タイムライン項目メディアプール項目が存在する場合は、それに対応するを返します。
GetVersionNames(versionType) --> [strings...]
■指定したバージョン名のリストを返します。
versionType:0 - ローカル、1 - リモート
GetStereoConvergenceValues() --> [offset, value]
■ キーフレームオフセットとそれぞれの収束値のテーブルを返します。
GetStereoLeftFloatingWindowParams() --> [offset, value]
■ 左目 -> 各フローティングウィンドウパラメータと、キーフレームオフセットのテーブルを返します。
特定のオフセットにおける値は、左、右、上、下のフローティングウィンドウパラメータを含みます。
GetStereoRightFloatingWindowParams() --> [offset, value]
■ 右目 -> 各フローティングウィンドウパラメータと、キーフレームオフセットのテーブルを返します。
特定のオフセットにおける値は、左、右、上、下のフローティングウィンドウパラメータを含みます。
SetLUT(nodeIndex, lutPath) --> Bool
■ 指定されたノードインデックスにマッピングするノードのLUTパスを設定します。lutPathには、相対パスまたは絶対パスを指定できます。
■ 操作はDaVinci Rosolveがすでに検出した有効なLUTパスでは正常に実行されます。
SetCDL([CDL map]) --> Bool
■ マップのキーは、「NodeIndex」、「Slope」、「Offset」、「Power」、「Saturation」です。
■ Pythonコードサンプル
SetCDL({"NodeIndex" : "0", "Slope" : "0.5 0.4 0.2", "Offset" : "0.4 0.3 0.2", "Power" : "0.6 0.7 0.8", "Saturation" : "0.65"})
AddTake(mediaPoolItem, startFrame, endFrame) --> Bool
■ セレクタを追加するための新しいテイクを追加します。
このタイムライン項目は、まだ1つでない場合、セレクタとして初期化されます。
引数startFrameおよびendFrameは省略可能です。指定されていない場合、クリップ全体が追加されます。
GetSelectedTakeIndex() --> int
■ 現在選択されているテイクのインデックスを返します。クリップがテイクセレクタでない場合は0を返します。
GetTakesCount() --> int
■ テイクセレクタのテイク数を返します。クリップがテイクセレクタでない場合は0を返します。
GetTakeByIndex(idx) --> map
■ 指定されたインデックスのテイク情報を持つマップを返します。キー「mediaPoolItem」、「startFrame」および「endFrame」があります。
DeleteTakeByIndex(idx) --> Bool
■ インデックスでテイクを削除します
1 <= idx <= number of takes.
SelectTakeByIndex(idx) --> Bool
■ インデックスでテイクを選択します。
1 <= idx <= number of takes.
FinalizeTake() --> Bool
■ テイクの選択を確定します。
CopyGrades([tgtTimelineItems]) --> Bool
■ tgtTimelineItemsリスト内のすべてのアイテムにグレードをコピーします。
成功した場合はtrueを返し、エラーが発生した場合はfalseを返します。
プロジェクトとクリップのプロパティを調べる
--------------------------------------
このセクションでは、関数「Project:GetSetting」、「Project:SetSettin」、「MediaPoolItem:GetClipProperty」および「MediaPoolItem:SetClipProperty (MediaPoolItem:SetClipProperty)」の追加の注意事項について説明します。
これらの機能は、[Project Settings]ダイアログボックスと[Clip Attributes dialogs]ダイアログボックスを使用して、ユーザが使用できるプロパティを取得したり設定したりするために使用します。
ファンクションはキー値ペア形式に従い、各プロパティーはキー(設定名またはpropertyNameパラメーター)によって識別され、値(通常はテキスト値)を持ちます。
キーと値は次のとおりです。
分析UIのパラメータ名および値と簡単に関連付けることができるように設計されています。
一部のパラメータの明示的に列挙された値を次に示します。
一部のプロパティは読み取り専用です。
たとえば、日付のような固有のクリッププロパティやサンプルレート、および特定のアプリケーションコンテキストで無効化できるプロパティ(カスタムカラースペースなど)があります。
ACESワークフローの場合、または動作がタイムラインに一致するように設定されている場合の出力サイズ設定パラメータ
値の取得:
適切なプロパティー・キーを使用して「Project:GetSetting」または「MediaPoolItem:GetClipProperty」を呼び出します。
クエリー可能なすべてのプロパティ(キーと値)のスナップショットを取得するには、「Project:GetSetting」と入力するかパラメータなしの「MediaPoolItem:GetClipProperty」(または、 [NoneType] または空白のプロパティキーを使用します。)。
パラメータなしの「MediaPoolItem:GetClipProperty」(または、 [NoneType] または空白のプロパティキーを使用します。)。
特定のキーを使用して個々のプロパティを照会すると、より高速になります。
プロパティを取得するには、次の点に注意してください。
無効なキーは、些細な結果を返します。
値の設定:
適切なプロパティキーと有効な値を指定して、「プロジェクト:設定」または「MediaPoolItem:SetClipProperty」を呼び出します。
パラメータを設定する場合は、戻り値をチェックして操作が成功したことを確認してください。
UIから目的の結果を設定し、変更前後のプロパティスナップショットをチェックすることで、キーと値の有効性をトラブルシューティングできます。
次のプロジェクトプロパティーには、特に値「superScale」が列挙されています。
プロパティ値は、0~3の間で列挙された整数で、これらの意味は次のとおりです。
0=自動、1=スケールなし、2、3、4はスーパースケールの乗数2x、3x、4xを表します。
影響:
• x = Project:GetSetting('superScale') and Project:SetSetting('superScale', x)
"timelineFrameRate"
プロパティ値は、「タイムラインフレームレート」オプションの下にあるプロジェクト設定で使用できるフレームレートの1つです。
サポートされているフレームレートに対してドロップフレームを設定できます。
たとえば「29.97DF」はドロップフレームを有効にし、「29.97」はドロップフレームを無効にします。
影響:
• x = Project:GetSetting('timelineFrameRate') and Project:SetSetting('timelineFrameRate', x)
次のクリッププロパティには、特に値「superScale」が列挙されています。
プロパティ値は、以下の意味を持つ1〜3の列挙された整数です。
1=スケールなし、2、3、4はスーパースケールの乗数2x、3x、4xを表します。
影響:
• x = MediaPoolItem:GetClipProperty('Super Scale') and MediaPoolItem:SetClipProperty('Super Scale', x)
この記事が気に入ったらサポートをしてみませんか?