mcpField
S
scenario-unreal-cinematics

scenario-unreal-cinematics

github.com/scenario-labs创意与媒体1.2k196 次安装1 天前更新
代码仓库

关于 scenario-unreal-cinematics

面向 Unreal Engine 5.8 影视制作的技能,服务于使用 Sequencer 和 Movie Render Graph 的创作与技术团队。它将剪辑规划、镜头构建、渲染审计和 EXR 交付纳入可检查的流程。

主要功能

  1. 01以数据规划镜头和剪辑结构
  2. 02按统一模板构建 Sequencer 镜头
  3. 03检查预卷、画面与剪辑连续性
  4. 04按镜头组织 Movie Render Graph 渲染
  5. 05审计 EXR 输出并生成交付说明

适用场景

  1. 01在动画制作前检查剪辑节奏和镜头计划
  2. 02按镜头制作并审核灯光与画面
  3. 03为最终渲染配置 EXR 和色彩流程
  4. 04在渲染后整理剪辑表与交付文件

MCP 相关

工作流建议先检查 MCP SequencerTools 工具集;MCP 或 PythonRemote 可用于编辑器中的工作。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/scenario-labs/skills --skill scenario-unreal-cinematics

安装后在 Claude Code 中输入/scenario-unreal-cinematics确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
critique.md
expert-notes.md
gui-paths.md
procedures.md
sources.md
scripts/
cine_render_callbacks.py
ue_cine.py

详细介绍

Unreal Engine 5.8 中的电影制作(Sequencer 和 Movie Render Graph)

此处的专家级水准意味着:在构建任何内容之前,先将剪辑作为数据进行检查;评判渲染时看的是文件和帧,而不是视口。核心原则:离线规划,在一次事务中完成构建,在动画制作前根据音乐锁定时序,依据已批准的母版布光,通过一个模板图表按镜头渲染,并将线性 EXR、剪辑和色彩说明交给调色。如果此处提到的同级技能不在你可用的技能中,请用户安装该技能 (npx skills add scenario-labs/skills --skill <name>);若是在无人值守的情况下,请依据工具架构继续操作,并标明这一缺口。

必备背景: scenario-unreal-expert(通道、审核流程、5.8 陷阱)。

状态(2026-09-24): scripts/ue_cine.py 和 scripts/cine_render_callbacks.py 尚未在 Unreal 中运行;离线测试已通过(计数见:references/sources.md)。在引擎中,先运行 tests/code/unreal-cinematics/job_00_probe_cine.py。

立场(专家的独到见解)

  • 主序列负责剪辑;镜头负责内容。 摄影机、角色和关键帧都放在镜头中;各专业的子序列(灯光、特效)也置于镜头内,因此调整节奏时移动的是片段,而不是动画(Sir Wade,ywtvn1uncZo [00:07:32];Glitch,uzTo5vQchkk [00:35:24])。每个镜头专属的对象是生成型对象,场景则是可占有对象,因此电影序列能在任意关卡中播放(yOcgYMcxr3Q [00:07:53] [00:13:50]);在一个镜头中动画化的可占有对象会在镜头结束后复位;大纲视图中的可见性不会保存,关卡面板中的可见性则会保存([00:10:34] [00:02:23])。复制主序列会共享镜头:“有人调整了灯光,七个镜头都会受影响”(Epic CAT,S4Iyzbl-oaE [00:41:34]);要尝试不同方案,请使用 New Take。
  • 结构由模板和脚本定义,绝不靠点击拼凑。 显示帧率、起始帧、偏移量、命名和文件夹模板只需在版本控制下的 DefaultEngine.ini 中设置一次(S4Iyzbl-oaE [00:15:22] [00:21:52]);CAT 5.8 架构支持嵌套,也可以为每个镜头分配自己的关卡(VP 5SJA1FfRPWs [00:19:07] [00:20:44])。每个工具都要用一个 ScopedEditorTransaction 包裹一个 ScopedSlowTask,因为“运行时间较长的 Python 代码看起来很像引擎冻结了”(SPI,moQTQzAOFVA [00:16:16])。
  • 动画制作前先锁定时序。 用恒定关键帧制作分镜,音乐放在独立轨道上,音效强调点要精准落在剪辑点上;“你不想把时间花在最终影片中永远不会出现的帧上”(Toonen,mAMp6qCt7kc [00:15:04] [00:15:36] [00:04:55])。重新定时必须保留原有意图:关键帧随镜头移动,跨越多个镜头的子序列则要拆分,并为每一段创建独立资源(moQTQzAOFVA [00:14:04] [00:24:19])。
  • 预热只需处理三项,结束帧不包含在范围内。 CPU 空闲时进行模拟:将 Engine Warm Up Count 设为 30 以上;需要时间历史时:使用 Render Warm Up;第 1 帧就有运动时:在起始帧之前延长动画和摄影机切换,并进行摄影机切换预热,以便计算前置帧,而不是停留在第 1 帧(技巧文档;Comly/Hoffman,《demystifying MRQ》)。范围 0 到 50 会渲染 0 到 49。
  • 采样只提升动态模糊和抗锯齿,不会带来其他效果。 噪点要从源头处理(《demystifying MRQ》;Faucher,fVg5ihB8Wdc [00:09:15])。仅使用时间采样,搭配 Frame Center 时使用奇数采样数;或搭配 Frame Close 时使用 Blur 的 24/48/64(AAAhD5tEUBs [00:39:32]);采样数超过 8 时将 AA 设为 None;除非某个命名镜头有特定问题需要解决,否则不要设置控制台变量(fVg5ihB8Wdc [00:03:00])。
  • 以线性 EXR 在外部调色,并说明如何解读。 关闭色调曲线会得到线性 sRGB,其亮度比视口约低一档,因为 UE 的色调曲线“带有 ACES 风格,但并非真正的 ACES”(Faucher,2Q3CybANHKE [00:04:31] [00:09:39])。在 Resolve 中使用 ACES Transform:开启色调曲线时,选择 sRGB (Linear) 到 sRGB Texture;关闭时,选择 Linear sRGB 到 sRGB;若供应商要求,则使用 ACEScg 到 sRGB([00:08:30] [00:09:05])。通过视口的 OCIO Display 进行打光和审片,并将其设为对应视图([00:10:28] [00:11:00])。
  • 镜头是渲染的基本单位。 “Unreal Engine 中最小的可分发工作单位是单个摄影机切换”(MRQ 命令行文档):每个镜头一个任务、一个模板图表、每个任务单独覆盖变量,绝不修改共享图表。普通 MRQ 需要人工看管,崩溃会导致镜头丢失,因此无人值守的多镜头渲染应交由农场管理器处理(Glitch [00:40:14])。
  • 通过流程让灯光制作规模化。 从第一天起就使用临时摄影机灯光;然后为每种灯光场景选择一两个代表性镜头,与导演一起锁定;接着从这些镜头派生每个镜头的 _LGT 子序列,并根据它们与主镜头的差异进行调整(Glitch [00:27:18] [00:28:51] [00:29:23] [00:31:32] [00:36:59])。

先确定事项

输入变更未说明时的默认值
交付:调色或直出色调曲线、格式、OCIO、色彩说明调色:EXR 16-bit half,关闭色调曲线
制作记录(帧率、起始帧、偏移、命名)每个序列、EDL项目的 DefaultEngine.ini;否则为 24 fps,起始帧为 0(SPI 101、CAT demo 1000:与剪辑保持一致)
时长、镜头、音乐布局、提示音创意简报;分镜前先准备一条临时音轨
画幅和胶片后背镜头、构图16:9 Digital Film[核实 mm];宽银幕使用 2.39 裁切
关卡和现有内容绑定设置为可占有;摄像机、角色、镜头灯光设为可生成;主灯光放在关卡中
演员预滚、成本使用现有的 Animation Sequences;每个角色对应的关节和网格
每个镜头的运动、快门时序采样、预滚Frame Center,使用奇数计数
曝光连贯性手动曝光、物理摄像机;通过 ISO 补偿光圈变化
渠道构建、分镜、渲染分镜使用实时编辑器(MCP、PythonRemote);最终输出使用 ue_run 或命令行

工作流

import ue_cine as C(技能 scripts/,并将 scenario-unreal-expert 的 scripts/ 加入路径)。完整代码:references/procedures.md。

  1. 搭建基础(每个项目一次)。 生产默认设置只需记录一次(CAT Production Setup 或 Project Settings),并复制到 plan["production"];文件夹模板;镜头按 10 递增编号;使用 CAT 5.8 时,镜头架构包含 _LGT 架构;镜头需要独立场景状态时,每个镜头使用一个关卡(P2)。先检查 MCP SequencerTools 工具集 [verify]。GATE:C.check_production(plan) 无失败;检查 audit_sequence 的 seq.rate 和 seq.start。
  2. 将剪辑规划为数据(python3)。 镜头、景别、镜头、摄影机和主体位置、运动、标志、演员阵容(关节、网格体)、转场音效、灯光场景。C.check_plan(plan):时长、镜头、构图、180 度轴线、屏幕方向、跳切、景深、预滚、曝光、演员阵容、转场音效、灯光组(P1)。GATE:无失败;每条警告都已修复或在计划中作出回应。
  3. 在一个事务中构建(编辑器)。 C.build_from_plan(plan):包含 Shots 和音乐的主序列;每个镜头一个可生成的 Cine Camera(镜头参数设为关键帧,开启 Use Field of View for LOD);摄影机剪辑从预滚开始,到不包含终点的结束位置;演员预滚;带临时灯光的 <shot>_LGT(P3);绝不覆盖。GATE:C.audit_sequence 无失败;bind.override 已作出回应;C.empty_level_test 仅列出场景物件。
  4. 分镜并锁定剪辑(延迟编辑器)。 C.board_generator(..., preroll=True):每个镜头的首帧、中间帧、末帧,以及单独读取的每个镜头的首个预滚帧(GUI:Evaluate Sub Sequences In Isolation);ue_review.image_checks、接触表(P4)。调整时长(C.retime_shot)、拍摄条目(C.new_take),在 C.editor_tool 中使用自有工具(P5)。GATE:没有全白或全黑帧;评估接触表和配乐剪辑;C.ready_to_animate(plan) 通过。
  5. 打磨表演和摄影机。 将拉焦设为关键帧 Manual Focus Distance(P6),摄影机运动采用基础层加偏移层再加抖动层(P7);仅在景深为核心的镜头中使用 Accumulation DOF。GATE:重新生成分镜;关键帧焦点等于主体距离;段落边界处没有跳变。
  6. 灯光(配合 scenario-unreal-lighting-rendering)。 临时灯光渲染可让所有人继续工作;执行 C.lighting_masters(plan),仅渲染这些镜头(render_jobs(plan, only=...)),将导演批准结果写入 plan["lighting_approved"];然后在 _LGT 中为每个镜头添加轮廓光和补光,并通过视口 OCIO Display 检查灯光效果(P7b)。GATE:C.ready_for_final_lighting(plan);亮度连续性符合要求,并已依据主样片获得批准;若镜头渲染缓慢,检查 stat unit 或 Insights 跟踪记录。
  7. 渲染草稿并审阅。 使用审阅图表或 5.8 Basic 配置;配上音乐运行 C.review_movie_cmd(P10)。GATE:依次运行 C.check_render_output、C.first_frame_pop、C.cut_flash,然后带声音观看。
  8. 最终 EXR。 使用 P8 的模板图表和 CineWrittenFiles Execute Script(仅限编辑器);运行 C.audit_render_settings(C.normalize_graph_snapshot(C.graph_snapshot(graph)));运行 C.render_jobs(plan, sequences=C.active_shot_paths(master, plan))、C.render_orchestration,然后运行 C.render_generator(全局持有执行器)或按镜头运行 C.mrq_command_line(始终使用 -notexturestreaming)(P9)。GATE:设置审计通过;对抽样帧运行 C.check_manifest、C.exr_checks;发生崩溃后,整段重新渲染 C.shots_to_render(...) 所列镜头。
  9. 交付。 每个镜头的 EXR、C.edl(plan)、审阅用 MP4、C.delivery_note(plan, settings)(Resolve 解释)、JSON 报告;技术意见与创意意见分开,进行三轮创意修改,然后安排现场会议(Glitch [00:32:37] [00:33:40])(P11)。

数值

项目数值相对于,来源
层级偏置根节点为 0,每级增加 100,相同数值会混合镜头文档
预滚动布料、头发、运动中的粒子需预留 24 到 48 帧摘要;技巧文档
引擎预热,静止布料超过 30 帧技巧文档
时间采样帧间闭合:基础值为 24(占 Blur 镜头的 95%),快速运动为 48,非常快速运动为 64;帧中心:奇数(15、25、49、65;Faucher:15 到 31 可覆盖 95% 到 98%)AAAhD5tEUBs [00:39:32] [00:40:05];fVg5ihB8Wdc [00:06:01] [00:10:58]
抗锯齿方法总采样数超过 8 时不使用MRG 图像质量文档
预热采样仅对预热阶段的最后 5 帧进行采样5.6 和 5.8 说明
线性视图与视口暗约 1 档2Q3CybANHKE [00:09:39]
审片 MP4 视频比特率fps x 2 x 1000 kb/s(24 fps 时为 48,000)2Q3CybANHKE [00:22:54]
角色少于 200 个关节Glitch [00:05:33]
主灯光每集 400 个镜头配置 10 到 13 组,每组耗时 1 到 2 天Glitch [00:28:51]

质量关卡

  • 可测量: check_plan、ready_to_animate、ready_for_final_lighting 和 audit_sequence 均须通过;audit_render_settings 须通过,且不得有未处理的警告;帧数使用不包含结束帧的计数方式(check_render_output、check_manifest);EXR 为 half 格式,无 NaN 或 Inf,不得为黑帧,线性模式下明亮镜头的数值须高于 1.0,且元数据齐全;first_frame_pop 和 cut_flash 均为 false;仅在预期位置出现亮度跳变。
  • 视觉: 联系表、独立查看的预滚动帧、首帧、每个剪辑点、头发和遮挡物边缘的景深、最快速运动的运动模糊、通过调色的 OCIO 视图查看灯光与主光照的匹配情况,以及配乐下的剪辑点。

常见错误

错误表现修正
复制主场景以进行试验更改泄漏到“备份”中在镜头内创建新的 Take(new_take)
将角色和摄像机设为可占有对象在另一张地图中出错使用生成对象;empty_level_test
将布景作为可占有对象进行动画制作镜头结束后它会跳回原位在需要的位置添加关键帧,或使用生成对象(bind.override)
使用 Outliner 的眼睛图标隐藏 Actor重新打开后又会出现使用 Levels 面板或 Level Visibility 轨道
多个骨骼网格,共用一个动画轨道部件不会跟随设置 Leader Pose Component(check_characters)
Python 工具运行时间长,且无进度提示“冻结”的编辑器在写入途中被终止使用 editor_tool
尚未锁定时序就开始制作动画在最终被剪掉的帧上浪费工作使用分镜板、在剪辑点添加提示音,并运行 ready_to_animate
对运行中的角色使用 Engine Warm Up布料在第一帧跳变使用预滚动以及镜头剪辑预热
认为会包含最后一帧0 到 50 帧中“缺少”第 50 帧结束帧不包含在内;计数为 end - start
通过增加采样数来减少噪点耗时增加,噪点却没有变化修正灯光或后期处理设置
使用 Frame Center 时采用偶数采样,混合时间采样和空间采样画面跳变、浪费资源仅使用奇数时间采样(或使用 Frame Close 时采样数设为 24)
逐镜头布光,没有主场景创意方向后期变更先批准主场景
在默认视口中布光,却以线性空间渲染画面观感会相差一档使用视口 OCIO Display
发送线性 EXR,却没有说明如何解读在 Resolve 中画面偏暗、颜色异常使用 delivery_note
按镜头编辑共享图表每个任务都会受到影响为每个任务公开变量
使用本地队列过夜,或使用本地执行器崩溃会导致队列丢失;渲染停止使用农场管理器,或每个镜头运行一个进程;使用 shots_to_render 和 start_render
无头渲染时未添加 -notexturestreaming第一批帧画面模糊使用 mrq_command_line

交接

  • 接收自 scenario-unreal-lighting-rendering:已布光的关卡(天空、雾、主光、无界 PPV、曝光策略、作为子关卡或数据层的主照明)、源头已修复的噪点、供审批的已布光母版。自 scenario-unreal-animation:带有时长和帧率的 Animation Sequences、关节数少于 200 且多网格 Blueprint 上设置了 Set Leader Pose Component 的角色、布料或物理标记。自 scenario-unreal-vfx:带有用户参数和预热需求的 Niagara 系统。自 scenario-unreal-world-building:地图及其场景元素。
  • 交付给剪辑师和调色师:每个镜头的 EXR({sequence_name}/{sequence_name}.####.exr,线性、半精度、元数据)、<prod>.edl、交付说明、审片 MP4、联系表、JSON 报告、母版。交付给 scenario-unreal-lighting-rendering:未通过连续性或噪点检查的镜头及对应帧。将渲染农场命令交给 scenario-unreal-pipeline-automation;将耗时较长的镜头交给 scenario-unreal-performance。

UE 5.8 说明

  • MRG 已可用于生产,新功能仅支持图形界面;队列以 Basic 配置打开;新增:Light Modifier、图层预热、DWAA/DWAB EXR、Accumulation DOF(实验性插件)(5.8 说明;VP [00:33:35])。
  • 在 MRG 中,Game Overrides 仅在连接时生效;渲染器节点上设置色调曲线,输出节点上设置 OCIO;Execute Script 节点需要启用 Editor Only 模式才能使用 Python(过渡文档;5.8 说明)。
  • Spawnables 是自定义绑定;使用 LevelSequenceEditorSubsystem.add_spawnable_from_class 创建;没有 add_master_track;时间函数接受 MovieSceneTimeUnit(seq-py 文档;版本差异)。
  • 播放遵循所选范围;Sensor Aspect Ratio 不可设为动画;Take Recorder 和 VCam 接受 spawnables;使用 Sandboxes 进行实验。
  • 搭配 ACES 2.0 的 OpenColorIO 2.5.1:视图名称可能与“ACES 1.0 SDR Video”不同[待验证]。
  • Mac:MRG 的 H.264 节点仅适用于 Windows(使用 ffmpeg 编码);ProRes 在 Mac 上存在冲突[待验证];路径追踪需要 macOS 26.4+。

参考资料

  • references/procedures.md:P0 到 P11、完整代码、计划字段、模板图表规范(P8)。编写 Sequencer 或渲染代码前请先加载。
  • references/expert-notes.md:各位专家的判断、时间戳、决策条件。
  • references/critique.md:评估标准及其对应的代码检查。
  • references/gui-paths.md:相应流程的菜单和设置。
  • references/sources.md:来源、凭据、URL、时间戳;修订历史。
  • scripts/ue_cine.py(工具包;其文档字符串列出了所有调用)和 scripts/cine_render_callbacks.py(Execute Script 类)。

评论

支持 Markdown