跳轉至

實用自訂指引 (Customization Guide)

所有專案層級的自訂配置皆存放在工作區目錄下的 griptape-nodes-project.yml 中。您只需宣告欲變更的項目 — 其餘未設定之處將完整繼承系統預設規範。

修改輸出目錄實體路徑

將所有節點輸出成果統一遷移至名為 renders 的資料夾:

project_template_schema_version: "1.0.0"
name: "My Project"

directories:
  outputs:
    path_macro: "renders"

此時所有引用 {outputs} 的情境規則皆會自動將檔案存入 renders 資料夾而非預設的 outputs。

修改輸入目錄實體路徑

project_template_schema_version: "1.0.0"
name: "My Project"

directories:
  inputs:
    path_macro: "source_files"

新增自訂目錄

為客戶最終交付成品新增專用目錄:

project_template_schema_version: "1.0.0"
name: "My Project"

directories:
  deliverables:
    path_macro: "client/final"

新增完成後,{deliverables} 即可作為變數在任何巨集中直接調用。

新增自訂情境規則

新增一個將最終彩現輸出以直接覆寫原則存入 deliverables 目錄的情境規則:

project_template_schema_version: "1.0.0"
name: "My Project"

directories:
  deliverables:
    path_macro: "client/final"

situations:
  save_deliverable:
    macro: "{deliverables}/{workflow_name?:_}{file_name_base}.{file_extension}"
    policy:
      on_collision: overwrite
      create_dirs: true
    description: "交付給客戶的最終成品"

修改現有情境規則

修改 save_node_output,強制在檔名前包含當前工作流程名稱:

project_template_schema_version: "1.0.0"
name: "My Project"

situations:
  save_node_output:
    macro: "{outputs}/{workflow_name:_}{file_name_base}{_index?:03}.{file_extension}"

此處僅替換了 macro 欄位。覆寫原則 (policy)、備援規則 (fallback) 與描述文字 (description) 皆平穩繼承自系統預設值。

新增自訂環境變數

定義可在巨集中隨處調用的自訂鍵值:

project_template_schema_version: "1.0.0"
name: "My Project"

environment:
  CLIENT_CODE: "ACME"
  SEASON: "S03"

在目錄路徑或情境巨集中引用它們:

directories:
  outputs:
    path_macro: "{CLIENT_CODE}/{SEASON}/renders"

依副檔名自動分流檔案

使用 file_extension_directories 將不同類型的檔案自動存入不同的子資料夾中,而無需為每種類型編寫獨立的情境規則。完整手冊請參閱副檔名目錄分流 (File Extension Directories)。

project_template_schema_version: "1.0.0"
name: "My Project"

file_extension_directories:
  png: "images"
  jpg: "images"
  mp4: "videos"
  wav: "audio"

situations:
  save_node_output:
    macro: "{outputs}/{file_extension_directory?:/}{node_name?:_}{file_name_base}{_index?:03}.{file_extension}"

副檔名映射值亦支援巨集。若希望將影片導向至共用網路磁碟、而其餘檔案保持存於 outputs 下,可採用由分流數值主導根目錄的情境巨集:

project_template_schema_version: "1.0.0"
name: "My Project"

file_extension_directories:
  png: "{outputs}/images"
  mp4: "{workspace_dir}/shared/videos"

situations:
  save_node_output:
    macro: "{file_extension_directory?:/}{node_name?:_}{file_name_base}{_index?:03}.{file_extension}"

引用作業系統環境變數

自啟動引擎的作業系統環境中擷取數值:

project_template_schema_version: "1.0.0"
name: "My Project"

environment:
  SHARED_DRIVE: "$STUDIO_SHARED_STORAGE"

directories:
  outputs:
    path_macro: "{SHARED_DRIVE}/renders"

若作業系統環境變數 STUDIO_SHARED_STORAGE 設定為 /mnt/studio,則 {outputs} 將順利解析為 /mnt/studio/renders。

完整實戰配置範例

視覺特效 (VFX) 專案的完整實體自訂專案設定檔:

project_template_schema_version: "1.0.0"
name: "VFX Pipeline"
description: "VFX 製程專用自訂檔案架構"

environment:
  SHOW_CODE: "AURORA"

directories:
  inputs:
    path_macro: "source"
  outputs:
    path_macro: "renders"
  plates:
    path_macro: "source/plates"
  deliverables:
    path_macro: "deliverables/{SHOW_CODE}"

situations:
  save_node_output:
    macro: "{outputs}/{workflow_name?:_}{file_name_base}{_index?:03}.{file_extension}"

  save_deliverable:
    macro: "{deliverables}/{workflow_name?:_}{file_name_base}.{file_extension}"
    policy:
      on_collision: overwrite
      create_dirs: true
    fallback: save_file
    description: "最終交付成品"