-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[功能改进]:操作逻辑、界面改进方案 #86
Comments
谢谢,图我已经看到了,不过确实有点复杂,我慢慢看 |
我觉得把各自导出合并到一个页面是有一定道理的,但最早的时候没这么设计,是因为输出三种原理图需要额外构建三维结构,地图画很可能超过限高,用户需要知道到底有没有超限高,以及地图画的实际尺寸;但输出纯文件地图画不需要构建三维结构 |
是这样的,设计中也考虑了这一点,所以不同格式使用的是不同的子页面,只不过三种原理图的页面元素有部分重合。 |
谢谢,我很期待后面的概念图。不过我在仔细看了你的第一版图之后,发现一个比较难实现的要求:全部转化、全部构建(三维结构)。SlopeCraft内核的设计逻辑不适合同时持有多个图片或者多个三维结构,而只能逐个处理每个图片,真正存储了多个图片的是界面。 不过我感觉界面逻辑三大步的划分还是相当合理的,非常适合内核运行的逻辑。 内核运行的基本逻辑也确实分几步:
只要完成第三步,就都可以输出转化后图片和纯文件地图画;只要完成第四步,就可以输出所有类型的地图画。 另外我自认为VisualCraft的界面逻辑还是很适合批量处理的,也许可以参考一下。不过它表格的形式确实不够方便,只是刚好能显示和修改所有信息。 |
ok,这一部分的设计其实旨在让批量处理和单件处理操作无缝融合,和VisualCraft(以下简称VC)的设计理念相近,但我希望优化一些细节,提升可视性,让操作更加直观。 按我的理解,目前SlopeCraft(以下简称SC)的内核无法暂存多张图片或三维结构,而VC批量导出时实际是将颜色转换、结构构建单线程地做了一遍,界面中转换的图片仅用于预览。 我之所以想增加项目池的概念,是因为这非常便于表现SC的转换逻辑,用户一层一层转化图像的动作同时也是一种引导。 |
a2-1引入的新问题:项目池中的不同图片可以使用不同算法 补充制作概念图的过程中,我发现“项目池”的设计并不是最好的,因为这会引入一大堆新问题 |
我在想,有没有可能把处理后的缓存转化为文件,暂存在软件目录下,方便后续步骤调取。blender应该就是用这种方法储存流体模拟数据的 |
我觉得,没有必要允许不同图片使用不同算法,批量处理通常是多个相似的图片经过几乎一样的方法生成地图画。如果要用不同的算法,那用户完全可以分成不同批次,没必要把不同算法挤进同一批次里。 |
是的,你的理解完全正确。 |
确实可以设计一种缓存格式,并且让内核可以加载缓存 |
我想到了一个解决方案:用户每对算法做出一次改动,就清空一次缓存区,这样就能保证缓存区内所有图片都使用相同的算法 顺带对a1-1的设计做出详细说明:将缓存区的状态做了可视化,并且整合到项目池中(就是图片右下角的小箭头)。绿色箭头表示图片已被转换到缓存区,红色箭头表示还未转换 |
按理来说,二次颜色转换应该是没有任何变化的,因为输出的图片只包含了地图画可用色,二次导入的话,每个像素都必定能找到完全一样的颜色。 |
但实际启用抖动仿色就可能出现各种奇怪的变化。二次导入应该作为一种正常操作,而不是野路子,所以优化流程是必要的,要避免潜在的问题 |
只要启用抖动仿色,用其它算法其实也会有部分像素出现变化,只不过HSV是最明显的(不启用抖动仿色就和原图一样) |
但是技术上,二次导入也不可以绕过转化图像这一步,因为每个颜色都必须换成地图画可用的颜色,这是地图画的死要求。我刚才试过了,抖动+二次导入的图片,在其他算法的效果下都几乎没有变化,除了HSV。 |
emmmmm,我要不干脆隐藏掉HSV吧 |
另外我觉得SlopeCraft采用一步一步的操作逻辑也不是很好,我现在更倾向于多个选项卡的模式,不限制用户翻页,只禁用不能点的按钮,就像VisualCraft那样。(分步操作的逻辑仍然存在于代码里,但是在界面上,不根据步骤限制用户翻页,只根据步骤限制用户按按钮) |
其它算法还是会有部分像素发生变化,这肯定还是违背了精修的原则(我经常用光追渲染引擎,所以对噪点确实比较敏感) |
我也有相同的想法,用户自己翻页的同时也能了解整个过程 |
这样就相当于修改了调色算法,二次导入无疑就覆盖了原始图像 |
我觉得这不会是一个问题,在有项目池的情况下,除非有重名,否则是可以允许导入的图像和原始图像同时存在的。而如果没有项目池,目前的主操作面板也只能进行单件操作,导入图像必定覆盖原图像
那这样也挺好,理论上可以统计队列中的总材料表了。而且我在V1.1中有个疏忽的点:需要构建三维结构查看结构尺寸。我会想办法优化的 |
这样会不会让用户觉得费解,或者误以为是bug? 我倒是觉得,可以把逻辑设计的简单点,让“二次导入”仅仅只覆盖原图、修改调色算法,不禁用任何控件(这样界面代码写起来容易很多很多)。甚至再简单点,把二次导入改名叫重新导入,让它根本不关心一个图被按了多少次,只是机械的覆盖原图、调色算法改为RGB、禁用抖动。 至于用户在二次抖动之后修改调色算法的操作,可以弹一个警告的窗口,其他像普通的图片一样。 我认为这样写,界面逻辑简单些,更不容易出错 |
我觉得倒不一定会让用户费解,只要有充足的设计,引导就不成问题(例如在项目池中相应的图片上加一个特别的标志)
至于“二次导入”的最终名称先待定吧,毕竟也可以导入用色板从零画出的图像,“重新导入”也不太贴切 虽然二次导入的图片没有再手动转换的必要,但你的方案在代码上更容易实现,也确实可以作为其中一个选项 |
因为emoji的减号只有灰色,手动改色后就失去了文字信息(不过反正都要转图像也无所谓)
我觉得依然需要个标志来提醒用户有图像未转换(甚至应该在项目池下注明未转换的数量?不过可以先不搞,太复杂了bug会满天飞) |
找不到就算了吧 |
这可能是最后一版设计图最后进行了一波梳理和修正,你再检查一下,如果没有问题就定稿了 顺便附上xmind文件,以便今后使用 |
谢谢,我已经按照设计图开始写新的界面了,你可以在github actions上找到最新的预览版,这里面的SlopeCraft就是正在开发的预览版 |
我现在已经搞定了转化缓存的写入和读取,不过因为没有图标的图片,还不能在任务池里显示标志 |
正式版概念图概念图的排版不一定是最优,仅做参考 素材包:如果可以,还是尽量注意一下图片的缩放策略 |
辛苦了,用ps拼出来这么多图,不容易啊 |
不用太担心,qt给了平滑插值(疑似双立方)和快速插值(疑似双线性)两种方式,如果都不好,我还可以手写一个最近邻插值,这反而是最简单的 |
我其实指的是窗口缩放时图像的填充策略,可能会比较麻烦。不过其实也可以不缩放装饰物(毕竟大多数软件就是这么做的) |
我已经实现了。我发现实际显示的时候完全可以不用缩放图标,我只需要把原图缩小到符合任务池的宽度,然后把图标画右下角就完事了。 |
切换到未转换的算法时,项目池中的图标依然显示已转换 |
目前的设计是:切换到相应的算法时,两个项目池显示相应算法缓存的状态 |
太复杂了,怕无限递归,就偷懒了。现在试着修了一下 |
但现在又出现了一堆新的问题,图标切换并不符合逻辑,有些操作甚至还会导致崩溃 |
目前能做到这个,因为缓存的路径包含了颜色表+地图画类型+游戏版本的哈希,哈希不一样路径就对不上,没有缓存就认为没有转化过 |
就是因为逻辑太复杂了,所以先少写点,避免出现死循环崩溃,我慢慢完善吧…… |
确实有些道理,我今天就玩崩了一次 |
最近列出的4个bug均已修复(https://github.com/SlopeCraft/SlopeCraft/release/latest |
我个人觉得可以增加一个功能,就是增加方块可选,有一些颜色比如白色,他是强制选择的,可是可以选择的只有蜘蛛网或蘑菇柄等一些很难获得的东西,如果有这个功能,那请忽略。 |
同时Windows版本建议适配arm的版本,之前Mac版本不可用,所以只能用虚拟机,但是程序在构建3D时崩溃了,可能是因为转译的原因,要解决这个问题,只能选择原生适配arm,但现在也许不用适配,因为bug解决了 |
@VinsonFather |
oh,那就把arm虚拟机崩溃的问题就一下吧 |
@VinsonFather |
描述
前言
目前SlopeCraft的操作逻辑并不清晰,界面混乱的设计更是雪上加霜。
要想进行改进,就要先将基础逻辑梳理好,再用经过刻意设计的界面进行引导,而这肯定不是一个小工程。不过幸运的是,现有的界面虽然分类混乱,但大部分该有的功能都有,这让我们可以节省一些功夫,不需要100%重写界面。这个issue就会尽可能的利用已有功能,通过重新排布元素使逻辑更清晰明了
整个改进流程:
1)我会先提交改进方案的设计图,进行可行性讨论,并不断改进。
2)改出满意的版本后,我会用这版的设计图画出界面的各版本概念图(因为实际的界面是立体的,同一个功能在界面上有多种实现方式,我们需要找到最适合的方式)。
3)概念图通过后再对代码进行更改。
注意:我并不会编程,以下仅为我通过经验整理出的方案,请仔细甄别,并指出错误
目前方案的整理和“批判”
这一步是为了充分了解当前的所有功能,并找出缺陷所在,方便后续的改进。
↓(画的比较潦草,请谅解)
第一版操作逻辑改进设计图
这张图是重点。目前并不完善,欢迎提出各种意见,我会不断进行改进
另外,因为我不会编程,所以可行性的分析就交给你们了
补充
↓“改进设计图”中提到的批量操作改进概念图 (仅作为批量操作概念演示,不包含其它功能)
↑最左侧的为“项目池”
The text was updated successfully, but these errors were encountered: