Repository navigation
Releases
Releases · TT432/blockbench
v5.4.11
- 新增JannisX11#358:宏录制现在能录「录制模型 GIF」这件事本身——设置对话框里填的参数、点浮层上的录制按钮、以及最后保存 GIF 的落盘路径都记进同一个 GIF 步骤(记下实际录到的帧数与时长)。回放时走同一套录制代码:自动打开设置、开始录制、录到同样帧数后结束、按路径写盘(文件名同样支持
${name}/${file}占位),因此「选一个文件夹批量给模型录旋转展示图」可以一次跑完;录制途中取消的那次 GIF 不会留下空步骤。PNG 序列格式同样覆盖(回放时跳过保存对话框直接写 zip) - 改进JannisX11#367:宏回放的截屏与 GIF 步骤会先把视角框到整个模型再截(包围盒居中 + 按模型尺寸定相机距离/正交缩放,保持当前观察方向)。录制时不会记录相机,回放到比初始视场大的模型上时原来会被裁掉一部分,现在无论模型多大都完整入画;透视与正交(含侧视图)两种投影都适用
- 修复JannisX11#368:宏录制绘画模式的「调整曲线…」时只记住了要打开这个工具、没记住曲线被拉成什么样,回放等于没调。原因是这个对话框的参数(曲线控制点)是嵌套的数组,而录制只收字符串/数字/布尔这类原始值,控制点整段被跳过。现在会记录可 JSON 化的嵌套数据(曲线点、当前通道、预览开关、画布尺寸等),回放时写回并让组件按新曲线重算,逐像素结果与录制时一致;纹理列表、画布这类对象仍然不记录(由动作自己重建)
- 修复JannisX11#362:宏出现报错后面板会停在不可用的状态——重放/批量按钮消失、只剩「清空宏」,日志还被几百行「节点不存在」刷满。三处根因一起修:① 回放准备阶段抛异常时「正在回放」标记没复位,播放/批量按钮会永久隐藏;现在准备阶段也在 try/finally 里,任何异常都会复位状态。② 回放/批量途中点「清空宏」只清了列表,已经跑起来的循环会继续往空面板里写日志;现在清空会同时取消回放。③ 日志里缺失节点只列前 6 个并给出总数,连续重复的消息合并为一条。另外新增「停止回放」按钮(回放中才出现):中途想退出不必再清空宏,当前步骤做完就停;新增「撤销面板操作」:删除/移动/清空/载入步骤前都会留一份快照,点一下撤回上一步,回到之前的步骤列表(与模型撤销历史互不影响,Ctrl+Z 仍然只回退模型)
- 修复JannisX11#364:打开宏录制面板后再关闭模型标签页,面板仍会先闪到软件左上角几帧。上次只处理了「不要清空浮动定位」,但容器本身还挂在工作区里、带着上一次模式的定位与尺寸,模式切到起始界面的那几帧只要工作区还在显示就会被画出来。现在位置为「隐藏」的面板会直接把容器从 DOM 里摘掉(与手动隐藏面板走同一条路),任何过渡帧都不会再出现;重新打开模型时面板回到原来的位置与尺寸
- 修复JannisX11#365:宏回放里「创建材质」这类步骤仍然会被下一步打断,模型越大越明显。原因是等待逻辑只看到「对话框关掉了」和「undo 事务结束了」,而模板贴图生成是异步的、根本不开 undo 事务,之前又给等待设了 3 秒上限——大模型上生成超过 3 秒就直接进入下一步。现在贴图模板生成带一个在跑计数,下一步会一直等到生成真正结束(上限 120 秒),undo 事务的等待上限也放宽到 30 秒并在超时时写一条日志,不再静默抢跑
v5.4.10
- 修复JannisX11#359:宏录制把「全选」录成了一大串方块名字,换到别的模型上重放或批量处理时名字一个都对不上,整个步骤被跳过——「全选 → 创建材质」这类批量操作因此完全跑不起来。现在录制时若选区就是全选(全部未锁定元素 + 全部根组),只记这个意图、不再逐个记名字,回放时按当前模型重新全选,节点名不同也照常执行;只是部分选中时仍然严格按名字匹配(「删掉这个组」换模型不会误删别的组)
- 修复JannisX11#360:宏回放执行完之后,宏面板与工具栏上的「重放宏」「批量」按钮有时消失,要切到其他模型标签页再回来才重新出现。原因是这两个按钮的显示条件依赖「是否正在回放」,而回放开始/结束时界面没有刷新按钮状态——播放中按钮被移除后没人恢复。现在录制、回放的开始与结束、批量处理结束时都会刷新工具栏,按钮随之出现/消失
- 修复JannisX11#361:宏录制记下导出/截屏的落盘路径时把文件名一起记了,同一套宏批量处理时所有模型都写进同一个文件名、互相顶掉。现在文件名整段记成
${name}占位符、只保留目录与扩展名(render.png→${name}.png,ModelA.geo.json→${name}.geo.json),回放与批量处理时按当前模型替换,每个模型写自己的文件 - 修复JannisX11#362:宏回放中某一步报错会立刻中断整段宏,界面停在「正在回放」的状态——重放按钮被隐藏、只有「清空宏」能用,看起来像卡死在错误界面。现在单步出错只写一条面板日志并继续执行下一步,整段宏一定能跑完;配合上面工具栏刷新的修复,回放结束后「重放宏」「批量」按钮立即恢复可用
- 修复JannisX11#363:对文件夹里的模型批量截图,出来的图片是空白(1×1 像素)。原因是批量打开模型走的是「新建工程 + 解析」的路径,贴图是异步解码的,解析一返回就截图,画布上还没有任何内容,自动裁切只能得到 1×1 空白图;手动打开模型时贴图早就载好了,所以看起来正常。现在每个模型解析后会等所有贴图解码完成(或失败)并刷新一次视图,再开始重放
- 修复JannisX11#364:打开了宏录制面板(浮动窗口)之后关闭模型文件,面板会先闪到软件左上角再消失。原因是面板位置按界面模式分开记录,关闭文件时模式会短暂切到「起始」状态,那一帧面板用的是另一份默认位置数据,清掉浮动定位就跳到了左上角。现在位置为「隐藏」的面板不再清掉浮动定位,模式切换时保持原位置不动
- 修复JannisX11#365:宏回放时操作太快,前后步骤会叠在一起——例如「全选 → 创建材质 → 一键镜像组」,镜像组在材质还没生成完时就执行,把材质创建打断而失败。原因是步骤之间的等待时间是写死的(0.1 秒左右),而创建材质确认之后还要生成贴图,耗时随模型大小变化。现在每一步都等到真正做完再走下一步:弹出的对话框会等它关闭,对话框填完表自动确认后还会等 undo 事务结束(例如贴图生成完成)
v5.4.9
- 修复JannisX11#355:宏录制回放「全选元素」之后的步骤时,右侧大纲面板会来回猛抖、滚动位置乱跳,而且回放只恢复了最后一个选中元素。原因是回放按录制时记下的名字逐个调用元素的选中方法:每调一次都会先取消其它选中项(几百个元素的多选只剩最后一个),并且在默认开启的「选中时在大纲中显示」下每调一次还会排一个自动滚动动画,几百个连发时面板剧烈抖动。现在先按名字把节点全部解析出来、确认都在之后才统一标记选中(缺节点时整步跳过、当前选区保持原样),最后只刷新一次选区——选区与录制时一致,大纲滚动位置不受影响
- 修复JannisX11#356:宏录制对绘画模式图像工具的「调整亮度和对比度…」「调整饱和度和色调…」这类对话框只记住了要执行该动作、没记住里面填的参数,回放时对话框按默认值重开、改了等于没改。原因是这些对话框不是表单式而是组件式(参数挂在对话框自己的组件上),录制时读的是表单字段,读不到内容。现在这类对话框也会记录组件里的原始参数(亮度、对比度、饱和度、色相、预览开关等),回放时写回参数、让组件按新参数重算并自动确认
- 修复JannisX11#357:宏录制截屏/导出时把模型名当文件名一起记了下来,同一套宏换到别的模型上仍然写进第一个模型的文件名,图片互相顶掉。现在录制时若落盘文件名就是当前模型名(含
.geo.json这类多段扩展名),这一段自动记成${name}占位符,回放与批量处理时按当前模型替换,每个模型写自己的文件;用户自己改过名的文件名保持原样
v5.4.8
- 修复JannisX11#349:智能复制组里删除其中一方(例如右侧成员)后,剩下那一方还带着链接 id,右键「取消智能复制组」点了没有反应;此时撤回再重做还会把两边的组一起弄丢。现在删除成员后,链接里一旦只剩最后一方,它就就地解除智能复制组身份(还有其它成员时链接照常保留);撤回后两侧的链接与内容都回来,重做后只剩幸存成员、保持已解除状态,组里的块不再被连带删掉。旧工程里已经留下的孤立链接也能被「取消智能复制组」正常识别并解除
- 修复JannisX11#350:用顶点捕捉移动方块或组的枢轴点时,「忽略轴」勾选不生效——枢轴点在被忽略的轴上照样跟着目标顶点走。现在枢轴点落到目标顶点时,被忽略的轴留在原坐标、其余轴跟随;同一次捕捉里「组枢轴点跟随」(JannisX11#346 开关)也遵守忽略轴,旋转过的方块平移时枢轴点不再在被忽略的轴上漂移
- 修复JannisX11#351:智能复制组状态下对组内元素使用「仅显示所选项」(I),会把所有元素一起隐藏、功能直接失效。原因是可见性被当成可同步的内容镜像到了对侧。现在可见性完全不参与智能复制组同步:独显只隐藏未选中的一侧,再按一次或撤销都能正常恢复
- 修复JannisX11#352:模型里有智能复制组时,在动画模式摆好姿态后进入绘制模式,任何绘制操作一撤回就丢掉当前动画下的骨骼姿态。原因是画笔类编辑(只改贴图)也被记进了一条完整的大纲快照,撤销时按快照重建节点把骨骼变换复位。现在不含元素/组的编辑不再参与智能复制组同步,画笔撤销只回滚贴图,姿态与关键帧保持不变
- 新增JannisX11#354:视图 → 面板里新增「宏录制」面板。点录制动作用界面正常操作,顶部菜单、工具栏、面板按钮(创建材质、缩放、颜色、添加元素、转换格式、导出、截屏…)与模式切换都会按顺序记成步骤,对话框里填的参数(导出设置、创建纹理的分辨率与类型等)连值一起记;停止后可以对当前模型一键重放,回放时带对话框的步骤会自动填好录制时的参数并确认。每一步还记下当时选中的组/元素名字,回放前按名字重建选区,因此「删掉 root 组」这类步骤换到别的模型上仍然作用在同名组上,名字对不上就跳过该步并写进面板日志,不会误删别的东西。导出与截屏步骤记下实际落盘路径,路径支持 ${name}(模型名)与 ${file}(模型文件路径)占位;「批量重放」选一个文件夹即可对其中每个 .bbmodel 逐个打开、执行同一套宏并按占位符替换后的路径输出(桌面版)。宏可以存成 .bbmacro 文件(JSON)再载入复用;步骤可上下移动、单独删除,导出/截屏路径可在面板里直接改
v5.4.7
- 改进JannisX11#348:动画控制器面板里,状态「动画」列表每行的 movie 图标打开的动画菜单中,「移除」条目原来固定在列表最底部——动画条目一多、菜单出现滚动条,就得先滚到最底才能点到。现在「移除」置顶:菜单第一项就是「移除」,与下面的「未设置」和动画条目用分隔线隔开,列表带搜索栏时位于搜索栏下方第一项;点击行为不变(移除该状态里的这条动画,可撤销),菜单条目数量、排序与搜索过滤逻辑都不受影响
v5.4.6
- 修复JannisX11#347:接地层大小可调之后,接地面整体偏了半个方块——模型不站在接地面正中,尺寸调得越小越明显。原因是接地面网格被固定偏移了半个方块(居中网格格式 +半个方块,其它格式因场景整体平移而 −半个方块),旧版的固定 4096 尺寸几乎铺满视野,这个偏移看不出来;尺寸可调后小接地面一把边角露出来就暴露了。现在接地面以画布网格中心(世界原点)为中心、覆盖范围关于中心对称,贴图格线同时平移半格,仍然与方块边界和像素网格对齐(每格仍是 1 个方块);切换格式、进出显示设置后位置同样保持居中
v5.4.5
- 新增JannisX11#346:顶点捕捉新增「捕捉时组枢轴点跟随」开关(工具条与 设置 → 社区版功能,默认关闭)。选中组做平移类捕捉时(移动模式,以及缩放模式下无法按角点拆轴、退化为整块平移的情形),组的枢轴点跟着组内元素一起平移,枢轴点相对内容的偏移保持不变;关闭时保持原版语义——内容走了、枢轴点留在原地。骨骼格式(子节点按自身 origin 定位)、组套在带旋转的父组里、同时选中父子组这几种情形都按同一套「世界坐标 → 存储坐标」换算,内容不会被移两次;撤销/重做一并包含枢轴点的变化。缩放与旋转模式下枢轴点仍是变换中心,不受该开关影响
v5.4.4
- 新增JannisX11#345:「变换 → 枢轴点」行新增「以枢轴点缩放」开关(默认关闭)。开启后拖动尺寸数值滑块(拖动或直接输入数值)时,所选元素围绕自身枢轴点缩放,枢轴点在整段缩放中保持不动;多选时每个元素按自己的枢轴点缩放。方块/包围盒类元素在缩放后整体平移
from/to,网格与样条网格按枢轴点换算到顶点坐标系后缩放。关闭时保持原版手感——方块从起始边缩放、网格从所选顶点中心缩放,与transform_cube_from_center设置的组合行为不变;带尺寸限制的格式仍按限制裁剪
v5.4.3
- 修复JannisX11#343(复报):开启镜像绘画后用复制画笔,镜像出来的图案整体错开 1 像素(另一侧看起来像被挪了一格)——镜像落点本身是对的,问题在镜像侧取内容的方式:笔刷直径为偶数时(默认 16 就是偶数),镜像落点按「连续坐标(像素边界)」算,为此比像素回文多偏了一格,这样镜像笔迹的覆盖范围才正好是源侧的镜像;但复制画笔把这同一个落点直接当成了像素对应关系,于是镜像图案跟着偏了一格。现在落下笔时把这一格从内容取样里扣掉:覆盖范围仍按原约定(保留这一格),内容按像素回文对应,镜像侧图案与源侧逐像素对称。直径为奇数时行为与之前完全一致;UV 镜像(全局/局部)与物理镜像、任意旋转/朝向/UV 大小的面、纹理序列帧都同样生效
v5.4.2
- 修复JannisX11#340(复报):在动画的粒子帧里导入粒子文件后,「效果」与「文件路径」两栏仍显示导入前的旧值(用户看到的「效果」一直是空的,以为文件名没有自动写入)——数据其实已经写进关键帧,但关键帧与其数据点是非响应式对象(
__v_skip),导入回调里直接赋值不会触发面板重渲染,必须重新点选这一帧才看得到。现在导入完成后立即刷新关键帧面板,效果名与文件路径当场显示;效果名取粒子文件名去掉格式后缀,并保留原有大小写(旧实现会把英文名整串转成小写)。音效帧的文件导入走同一条刷新路径