打印

[求助] ev合成,英雄×魔王

我觉得这个例子不好

原因在于必须动用photoshop,firework,也就是说要手动定位坐标

根据我的汇总来看,离现在最近的比较合适学习的例子是夢喰い-つるみく式ゲーム製作-
引用:
原帖由 haibara 于 2009-12-12 19:57 发表

夢喰い-つるみく式ゲーム製作-
作用对象:事件,立绘
合成类型:差分合成
使用工具:MagickMerger,配置Alpha Blending,DirectMuxer
注意事项:事件使用MagickMerger,但有个例外;立绘使用DirectMuxer

[quote]
<CustomProfile>
  <Name>Alpha Blending</Name>
  <Setting>
    <Match>(.+\d+z?)([^\d_z]{1,2})\.png</Match>
    <Catch>$1.png</Catch>
    <Merge>$1_$2.png</Merge>
    <Command>[composite] [Match] [Catch] png24:[Merge]</Command>
  </Setting>
</CustomProfile>
[/quote]

[ 本帖最后由 haibara 于 2010-02-22 22:55 编辑 ]
引用:
原帖由 airlose 于 2010-02-23 13:12 发表


对应文件名 ...
在合成前我们先要判断这是什么合成类型:1,alpha blending;2,color blending
判断的标准就是差分图是否是32位,如果是则是alpha blending,反之亦然

对于alpha blending,可以使用DirectMuxer和MagickMerger,对于color blending要用BatchBlender

对于你的例子,我根据系统知道是color blending的,所以要用BatchBlender

1,打开BatchBlender,选目录

2,filter color选蓝色(可能)

3,blending profile选color blending

4,点击config
修改source regex为$1.edt.bmp
修改delta regex为(ev\d+)[a-z]\.edt\.bmp
其它不变,保存

5,点击filter

6,点击generate command

7,点击detail launch
引用:
原帖由 kk 于 2010-02-23 15:52 发表

說起來,偶好像5年前用C語言寫過一個合成程序.
當時是因為,自截某遊戲的CG過大,所以分別對上,下截圖,再用此程序合成.
應該可以作為參考來做坐標自動定位的程序的.如果 haibara 有興趣的話,偶也可以把源碼發出來的 ...
自动定位,ps都做不到(它的photomerge不稳定的说),厉害呀,总之学习下
引用:
原帖由 airlose 于 2010-02-23 16:54 发表

这个成功了,嘎嘎,偶总算会合成了,中间就几个失败的,继续改进中
那个正则的话应该哪里学的?以前只是用正则处理些文本文档,就知道几个命令。。。
知道语法的话,多多练习就是
我怎么觉得不对,应该说差分图边缘(线)不可能与基本图一样的,应该说像素比较接近(按照面搜索,估计与photoshop的photomerge差不多,非常不稳定,而且只能效果更差吧)

ps:有可能我想当然了,不过既然没有这样的合成器,我觉得怎么简单应该是不可能,我以前思考过怎么实现的不过我都假设边缘不一样的

[ 本帖最后由 haibara 于 2010-02-24 08:43 编辑 ]
引用:
原帖由 sailotos 于 2010-02-24 08:27 发表
请指点一下,
source regex  
delta regex
这两个选项的填写规则?

老是提示:image not  matched
source regex为$1.edt.bmp
delta regex为(ev\d+)[a-z]\.edt\.bmp
引用:
原帖由 airlose 于 2010-02-24 11:02 发表
海大,偶现在在合成《光与影的传说》
合成了一部分
还有一部分
7S03A.bmp要匹配到source regex
主文件是
7S03.bmp
7S03A.bmp
后面需要合成的文件名
7S03K2.bmp
7S03K3.bmp
7S03K4.bmp
现在偶合成了7S03. ...
既然可以匹配到7S03了。那么加个后面A就是了
引用:
原帖由 kk 于 2010-02-24 15:47 发表

嘛,因為偶幾個月前也寫過個差分摳圖工具,
所以偶還是相信這種算法是可行的.

不過這樣討論下去也不會有進展.
要不這樣吧,樓上提供主樓那個的無損素材,上面2張圖就足夠了(注意,是無損,一切算法都是建立在無損的 ...
与无压缩有关系吗,php没有图像读取类?

我觉得你的算法的前提是color blending

安啦,我也随便测试下,拿大妈的kagura的好了
BufferedImage sDelta = ImageIO.read(arg0);
                BufferedImage sBasic = ImageIO.read(arg1);
                byte[] basicData = ((DataBufferByte) sBasic.getData().getDataBuffer()).getData();
                byte[] deltaData = ((DataBufferByte) sDelta.getData().getDataBuffer()).getData();
                byte[] basicLine = new byte[sDelta.getWidth() * 3];
                byte[] deltaLine = new byte[sDelta.getWidth() * 3];
                System.arraycopy(deltaData, 0, deltaLine, 0, deltaLine.length);
                GOTO: for (int y = 0; y < sBasic.getHeight(); y++) {
                        for (int x = 0; x < sBasic.getWidth() - sDelta.getWidth(); x++) {
                                System.arraycopy(basicData, (sBasic.getWidth() * y + x) * 3, basicLine, 0, basicLine.length);
                                if (Arrays.equals(deltaLine, basicLine)) {
                                        System.out.println("x=" + x + "y=" + y);
                                        break GOTO;
                                }
                        }
                }

[ 本帖最后由 haibara 于 2010-02-28 00:06 编辑 ]
引用:
原帖由 kk 于 2010-02-28 01:50 发表
貌似改了很多次.
偶只看見 17:35 那次,和現在 00:06 的一次.

偶暫時不是很想學JAVA,只想知道成功了米有?
改了3次吧,第1次其实就对了,不过不好看,改了后边界问题,然后再改,又忘记像素X3字节。。。

我测试了1个,可以

[ 本帖最后由 haibara 于 2010-02-28 02:31 编辑 ]
查看积分策略说明

快速回复主题

选项

[完成后可按 Ctrl+Enter 发布]  预览帖子  恢复数据  清空内容

当前时区 GMT+8, 现在时间是 2024-05-12 08:26

Processed in 0.014002 second(s), 6 queries.