laohu-motion-relations · git:20261106.42593f7 · 2026-11-06 · sha256 6fb768ed2dd134bb
laohu-motion-relations git:20261106.42593f7A
Immutable. This exact content never changes and is served at /api/v1/blob/6fb768ed2dd134bb.
--- name: laohu-motion-relations description: 当具名对象间的包含、分类、关联、比较、方向、流程或层级关系需要作为画面结构被看见或连续重排时,由 laohu-motion 按需读取。 --- # 关系图构建与连续重排 ## 何时采用 当观众必须看见“谁和谁有什么关系、关系朝哪边、它如何改变、结果回到哪里”时,使用本方法把语义关系编成实际画面。它适用于具名对象、节点、来源、条件、结果和它们之间的关系需要可追踪的镜头;题材名词或画面里有几个对象本身不触发。若当前镜头只需介绍单个对象,不必制造关系图。 ## 输入与返回 主线传入具名对象及身份、每条关系的真实含义/方向/证据状态、前态和结果、信息曝光顺序、用户锁定的视觉/材料范围、画幅和工程接口。子级返回每个承重关系的可见操作、节点/锚点与连接端点、对象何时出现/移动/改组/退出、起中落状态和待证事项;写回同一镜头蓝图,供 visual-design 选择全画幅构图,toolchain 映射到真实绘制/事件并用编码帧检查。只有同一节点需跨态追踪、多个表示需要交接或计划要求运动证据时,才把语义 `entityId` 与 renderer 层的 `instanceId` 分开登记;为多对一/一对多呈现标清对应、接手时点和身份依据。若关系须实际连续运动,在动作图中标明预期参与的实体与绘制实例、方向/端点控制者及属性冲突;观察到的节点或已绘出的连线不能反过来定义“预期已全部出现”。 若主线已选 `templateId`,按 `show`、源 grammar 和 renderer 核对节点/关系操作是否能由其 cue 表达;本模块只返回该模板实际接受的输入和需保持的关系方向/身份。模板没有通用 graph/edge/dynamic-points 字段时不得臆造;若接口不够,报告给主线安排其他模板段或本地关系绘制,且不改变模板原算法。 若主线选用 Video Shotcraft `/2`,本模块仍须返回关系参与者、方向、前后态和观众应看见的结果,并指出这些结果由哪些真实 source 对象/props/调用承载。来源 `actionBindings` 只能把可验证的文字 reveal landmark 绑定到对应语义/ASR/音效事件,本身不会创建节点、关系边或因果。若完整源镜头或局部组件没有消费本镜需要的关系结构,就让主线改选有对应能力的源镜头,或回到 Motion 关系绘制;不把 `semanticCueId`、`phaseId` 或装饰线当成关系已呈现。Film 接口及绑定限制按[Video Shotcraft 接入规则](../../references/video-shotcraft-integration.md)核验。 本地局部效果可按 `relationship-mark` 查询 `DG.brace`:它只能沿单个静态矩形的左/右边界括出一个已由蓝图确认的范围,不能自动表达两节点因果、连接或方向;按 `staggered-appearance` 查询时,原 `MO.lagged` 只控制一组已命名静态矩形的显现次序。动态节点/边关系仍需真实路径/对象 consumer,括号或先后本身不得替代语义判断。 ## 先选关系操作,再选图形 每种关系先问它要求观众看到什么变化,再决定用空间、形状、路径、边界、符号或相机操作。节点/点、线/箭头、区域边界、位置、距离、尺度和遮挡都是可选材料,不构成固定模板。可把关系画在点线面之间,也可用对象直接演示;不默认圆形节点、卡片、集合圈、固定输入/机器/输出三栏或任何特定布局。 - 包含或成员关系:使观众能辨出整体、成员和边界,可用共同空间、包围关系、嵌入或其他承载方式;关系方向和真实范围应保留。 - 分类:把类别依据及对象归属变得可辨;同一对象进入另一组时显示状态变化,不让颜色单独承担不明的分类含义。 - 关联/作用/因果:先区分相关、影响、触发和因果。线、方向或对象动作只表达来源支持的强度;因果关系可展开触发、作用和结果,但相关/先后不得画成因果。 - 比较:先核对单位、口径、时间范围、基线与测量定义,再选择同时并置、尺度对应、切换或其他公平呈现。真实数量关系需有可比数据;认知强调或光学推近不自动声称物理量值。 - 层级/先后/流程:让父子、前后或处理顺序能被追踪;若关系会累积到最终状态,过程中的差异必须进入后续结果,不能只显示独立名词逐项进场。 抽象推理可以将前提、追问、隐含条件和结论表示成关系图、符号替换、归属变化或其他可读操作。先识别论证依赖什么、问题检查哪条依赖、结果改变什么;图形不替论证证明结论。不要把所有逻辑写成通用机制模板,也不强制苏格拉底式推理采用某种固定布局。 ## 把关系编入对象生命周期 逐镜列出承重节点和连接,不必将所有细节都变成图。每个对象有稳定身份;每条边/连线写明起点、终点、作用/比较含义、方向和证据状态。规划起态(观众先识别什么)、中态(哪条关系出现或改变、当前焦点在哪)、落态(结果如何回连来源、哪些对象保留/转移/退出)。尚未讲到的文字/节点通常不以完整标签提前暴露;如果单元需要导览概览、预示、并列比较、职责总结或锁定全文/无障碍,可按任务提前显露;在蓝图记录当前焦点及其作为参照/预览/已成立结果的职责,画面要使对象身份和当前关系可辨,但不要求每个概览都加可见状态标签或内部术语,也不能把预显误作处理完成。 明确“移动”还是“复制”:对象从 A 移到 B 时,原位置应退出或变成有明示意义的来源标记;若画面要同时保留两处,就说明它是副本、比较态、历史态还是新结果。不要用两个同内容对象意外暗示同时存在的两个实体。对象、边和标签需共同进入、转接、停留和退出;节点重排后重新核验边端点和方向,不能让连接线仍指旧位置。 ## 端点、标签与遮挡的几何责任 每条边都要连接实际对象的边界端点或有意义的锚点;节点移动、缩放、旋转或形变时,从其当前可见轮廓/变换状态重新求端点,而不是默认三条线都指向节点中心。圆形、矩形、非规则矢量和相机空间的交点算法不同,选 renderer 实际能计算的边界/端口;直线、折线、曲线或避障绕行由关系可读性、遮挡和画面气质决定,不强制全部使用一种。多个关系共享对象时,若同端点汇聚会覆盖标签或混成一团,应按关系语义分配端口、错开落点、分时呈现或重排构图,并确认方向仍清楚。 放置标注前先确定它指向的是物件、对象组、动作、关系、标准还是结果,并核对画面中被指的可见内容是否足以承担这段文字;不能以空间接近代替语义对应。物件名应对应其身份;动作标注须让对应操作可见;关系标注须看见参与者之间实际建立的关系;标准/目标标注应呈现期望条件及必要参照,再与观测或判断对应,单个输出格不能自动替代标准;结果标签须对应实际后态。只展开本镜实际成立的类型,不要求每个镜头逐项填满。编号、文字、底板及附着引线作为同一标注组,交回主线与字体方法共同排布,并返回完整外框、指向与可见时间。主线应据此在蓝图中记录文字语义、明确所指及承载该语义的可见依据,而不是只记一个 role、目标 ID 或“for lesson”。节点、文字或相机改变后,按实际状态更新锚点和占位;没有合适位置时返回主线调整表示法或展示时序,不把标注压进剩余空间。源码可检查目标是否存在及当前可用,几何候选只能检查所交矩形是否相交;二者都不能证明语义对应,仍须用实际画面核验。 用最终加载字体测得的文字 paint bounds,与编号/底板/附属符号的真实 paint 矩形、节点轮廓、连接线宽度、箭头头部及额外安全间距共同判断实际组外框;同一组几何供选位、绘制和逐帧登记消费,避免漏算或重复扩边。标签不能压住边、节点名或下一焦点。通过调整锚点、路径、标签位置、承载层级或出现时间解决冲突;不要仅缩字号或把线改直来隐藏问题。引线应按真实端点、线宽、箭头和路径单独检查;不要用跨越大片空白的总 AABB 代替端点/线段关系,也不把所有相交一概判成错误。明确真实绘制的 z-order、clip/mask 与透明度合成顺序,逐个检查起态、关键交会中态、落态和重复/seek 后的帧,因为端点或文字可能只在动画中间被遮住。把端口/边界算法、组几何、层级与裁切规则交给实际 renderer 消费,并在 [工具链 Reference](../../references/toolchain-render-and-check.md) 的目标尺寸帧中复核。 ## 映射到真实工程 在 motion-core 的基础绘制中,可用 rect、circle、ellipse、line、path、polygon、text 建立点线面和标签;已有 layer parent/transform/clip、camera 与对象 x/y/opacity/visible/progress/morphProgress 事件用于分组、显隐、移动、尺度或路径揭示。line 的 x1/y1/x2/y2 是绘制端点,但不属于普通事件可动画属性,内建线也不自动画箭头头部。路径点列不是普通事件动画属性。只有共用刚性变换且端点在同一空间下时,才用共同图层变换维持连接。 若节点与边须各自移动并保持连接,或需自动计算箭头端点/标签锚点,使用已注册的具名 custom:<name> renderer;让它基于同一绝对时间函数/真实求值状态计算每个节点姿态、锚点、端点、箭头和标签,再绘制关系。沿连接移动的点/高亮与可见连线必须使用同一条实际路径;用 `MotionCore.pointAt` 或等价方式在该路径上取位置,不另造近似路线。先区分它是导览焦点还是对象/过程传递:导览焦点按观看任务引导注意,点位不代表真实对象位置、数量或处理状态;对象/过程传递则按真实到达、接收和处理依赖衔接,并与对象/状态变化一致,不能在尚未到达时暗示已经传递或处理。节点改变位置时,在同一求值时刻一起更新节点姿态、路径及端点,使连线和移动强调始终对应。复杂阶段可拆成多个具名 custom 对象,但应共用一个可核时钟并输出明确中间状态;不同段按到达、处理、等待或结果等职责设定时值,不强行同长。不能编造 graph、edge、arrow 或动态 points 的原生 scene 字段。平滑连续重排若不适合逐事件插值,可由 custom 在状态区间间确定性插值;过冲需作品自定义,不假设通用曲线支持超出端点范围。 ## 返回主线与验收 把选择依据和关系映射写回主线蓝图:对象身份、关系语义、方向/端点、曝光顺序、生命周期、视觉操作、目标帧和实际接口。预演不是只看终态填满的关系图,而是按真实播放顺序检查当前焦点、节点先后、边端点、空间含义和结果回连。颜色可编码对象类别、来源或当前角色,但要先定其语义;同类对象可以共享颜色,类别、来源或角色改变时,须维持该颜色的既定含义,或明确说明颜色语义已交接/改变,不能让颜色编码无说明地改变。表示数量或尺度时沿用 meaning-to-motion 的数据规则:真实数量使用有依据的数据与口径;为解释已核实的机制而构造的教学数值须明确标作示意/非实测,并与实测数据区分;本身没有自然量纲的分类关系以相同/不同、包含/分离等类别关系表达,不硬造损失值、比例或连续数值刻度。距离、面积、颜色强弱或线条粗细若表达差异或变化,必须随真实状态求值并与画面所称的关系相符。对比确实需要固定共同比较框架时允许保持稳定;只有布局成为槽位、没有呈现当前关系或状态时才返回 visual-design 重选构图。无需每拍换颜色、换背景、运镜或增加动画动作。最后在目标尺寸与正常速度确认方向、包含、距离、身份和结果没有被空间排布误读;质量仍由实际成片和接收者证据判断。