凌果 发表于 2019-11-18 23:05:25

关于打开一些DDS图和新增单位头像的方法

本帖最后由 凌果 于 2020-8-26 05:35 编辑

2020-8-26说明:本文写于2019-11-18,当时的游戏结构和现在有很大不同。当时Nvidia的DDS插件也只有2013年旧版的,新版的DDS插件是2020年才发布的(而且新版插件刚出的时候很不好用,但现在经过2个版本更新后就好用了),今天我就更新一下本文,先按照新版插件来讲,旧版插件在后半部分……另外关于新增单位头像,可以参考2楼……

    例如我想打开游侠的头像图标,这个图标位于\AoE2DE\widgetui\textures\ingame\units\002_50730.DDS
    首先你需要有Photoshop,这个就不说了。
    然后你需要安装Photoshop的DDS插件才能打开,新版DDS插件官方下载地址在:
https://developer.nvidia.com/nvidia-texture-tools-exporter
(这个是Nvidia的产品,下载需要登录Nvidia账号,这里是附件分流:)
    然后就可以打开DDS文件了,打开时的选项勾上"Load Alpha as Channel Instead of Transparency"的话则alpha通道独立,不勾则alpha通道以透明的方式整合进图片里,我习惯勾上。
    打开时的第二个选项Mipmaps,游戏经过多次更新,现在似乎已经不使用了,勾不勾没区别了。游戏刚发售的时候还会有在一些图标上使用。


    然后就可以编辑保存之类的,如果想要保存回游戏里的话,请注意保存回\AoE2DE\widgetui\textures\ingame\units\这个文件夹里是没用的。因为原版图标已经不再使用该文件夹里的文件了,而是用的是“\AoE2DE\widgetui\textures\atlas\UHD\”这个文件夹里的文件。例如单位头像用的是其中的ingameunits.dds。这个文件夹里的文件只有新版DDS插件可以打开,下文旧版的DDS插件打不开。
    但是可以用本地模组的方式让游戏使用单个的图标,即将图标保存在:C:\Users\用户名\Games\Age of Empires 2 DE\一串数字\mods\local\自定义模组名\widgetui\textures\ingame\units,这个文件夹内。非单位头像的其它类型图标请根据其原本路径创建文件夹位置。
关于创建本地模组可参考https://www.hawkaoe.net/bbs/thread-146365-1-1.html
    编辑完图片后保存回游戏的时候,保存选项有几点要注意一下:


    1.保存的格式要根据图片原本的格式来选择,例如\AoE2DE\widgetui\textures\atlas\UHD\里的文件用BC7。
又例如\AoE2DE\widgetui\textures\ingame\units\002_50730.DDS这类用8.8.8.8BGRA32bpp | unsigned。
双例如\AoE2DE\widgetui\textures\backgrounds\mainmenu_bg.dds这类用BC1。
叒例如\AoE2DE\widgetui\textures\atlas\HD\里的文件这类用BC3。
    2.当选择8.8.8.8BGRA32bpp | unsigned这类图标的时候,可能需要互换红蓝通道才能在游戏中显示正常的颜色。方法参照下文旧版DDS插件所述互换红蓝通道部分。
    3.Generate Mipmaps不勾,现在游戏似乎都没用到Mipmaps了(万一还有某个图片用到了当我没说{:11_481:})
    4.Compression Quality,对于小图建议选择Highest,对于像ingameunits.dds这种大图来说可以选Production,而且非常考验你的CPU的性能。大图选高质量保存的时候将会非常非常耗时间(任务管理器内可以看到CPU高负荷运转),而选最低质量(Fastest)进游戏会有点模糊。


    以下是旧版DDS插件的说明:
旧版DDS插件官方下载地址:
https://developer.nvidia.com/gam ... dobe-photoshop-8-55

    用旧版DDS插件打开文件,会看到打开后颜色是错的,需要将红蓝通道互换才能显示正常的颜色。

    在通道右上箭头处选择分离通道,然后可以立刻再选择合并通道,在弹出来的窗口里选择模式RGB颜色,通道数3,然后对调红蓝通道,颜色就正常了。
    另外Alpha通道标记了玩家色的位置,分离合并通道后会使Alpha通道独立出来,可以在Alpha通道处点右键选复制通道将其复制回文件里。

    然后就可以正常编辑保存之类的……小提示,如果需要大量打开使用这些DDS图的话,对调通道的操作就显得麻烦了,可以用PS的动作功能简化操作

    如果要保存回游戏中,需要将红蓝通道互换回去,然后保存选项里有两点要注意:

    1.模式根据原本DDS的模式来选择,例如单位头像用“8.8.8.8 ARGB 32 bpp | unsigned”
又例如AoE2DE\widgetui\textures\backgrounds\mainmenu_bg.dds这类就用“DXT1 RGB 4 bpp | no alpha”
双例如AoE2DE\widgetui\textures\atlas\HD\ingameunits.dds这类用DXT5(而且这两类不需要对调红蓝通道)

    2.MIP Map Generation 选项要根据文件来选择,例如游侠头像原本就没有MIP map,那就选择“No MIP maps”
又例如一些科技的图标原本就带有MIP map的话,则根据你打开时有无勾上“Load MIP maps”来选,勾上则选“Use Existing MIP maps All”,未勾上则选“Generate MIP maps”
(2019年写下这篇贴子时,科技图标都是有MIPmap的,现在游戏经过几个月的更新之后,图标似乎都没MIPmap了。)

    总之正常的话,保存后文件大小(字节数)跟原文件应该保持一致。


关于新增单位头像,可以参考2楼。

凌果 发表于 2019-12-16 01:03:34

本帖最后由 凌果 于 2023-5-19 21:43 编辑

gaoxily 发表于 2019-12-15 21:53
求教一个问题 怎么在原来的基础上新增一个头像图标呢
比如002_50730.DDS这个文件改过之后 游侠的头像确实改 ...
新增一个单位头像需要改5处:
1.使用本地模组的方式如图1.1所示创建354_50730.DDS文件。(游戏经过多次版本更新后新增头像不再是354这个数了,具体到哪个数自行查询一下)
或者如图1.2所示修改\widgetui\textures\atlas\UHD\ingameunits.dds这个文件。
二选一,强烈推荐本地模组的方式。

2.AGE里要改的那个单位头像改成354(修改前注意要把图示上方两个选项勾上)

3.\widgetui\icon.json里添加如图3所示一段文字,注意逗号不要漏了。

4.\widgetui\materials.json里添加如图4所示一段文字,注意Blend处为AlphaPlayerColor。

5.还是materials.json,添加图5所示一段文字,注意逗号不要漏了。

其中,
"imageTLX":"0.700098",
"imageTLY":"0.850098",
"imageBRX":"0.749902",
"imageBRY":"0.899902"
这四行参数表示的意思是该图标位于ingameunits.dds图片里的位置。(图1.2的方式才需要准确确定这几个值,图1.1的方式用不到这几个值随便填就行)

AGE改的DAT数据文件、icon.json、materials.json都可以用本地模组的形式更改。但是当前ingameunits.dds不支持本地模组的形式,因此第1步里推荐也用本地模组的方式。

补充:官方每次更新游戏基本都会更新materials.json这个文件,如果是MOD作者,上架了自己的MOD,并涉及修改这个文件的话,可能需要每次官方更新后都更新一下自己的MOD。

梦影决幻 发表于 2019-11-18 23:58:16



PS CC2018可以正常使用
今晚编辑好DDS看到这个贴子,到这看看怎么打包做mod

newtonerdai 发表于 2019-11-19 14:03:36

梦影决幻 发表于 2019-11-18 23:58
PS CC2018可以正常使用
今晚编辑好DDS看到这个贴子,到这看看怎么打包做mod
...

哇,你这个是怎么做到的!

发布mod方法见
《发布自制内容到官方模组的方法》
https://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=145387&fromuid=296861

我是谁004 发表于 2019-11-19 18:50:13

不错,看来头像确实是单个的文件。接下来可以研究一下玩家色是如何确定的

梦影决幻 发表于 2019-11-20 23:45:04

newtonerdai 发表于 2019-11-19 14:03
哇,你这个是怎么做到的!

发布mod方法见


主菜单背景图发布了mod叫做 Night Edition Main Menu
但是主菜单的按钮无法被修改,只能强行替换游戏本体文件

resources\_common\wpfg\resources这个目录下,mod无法控制

gaoxily 发表于 2019-12-15 21:53:35

求教一个问题 怎么在原来的基础上新增一个头像图标呢
比如002_50730.DDS这个文件改过之后 游侠的头像确实改变了
但是把这个文件名改成354_50730.DDS 然后用AGE把一个单位头像设置成354的话 头像就变成空白了

gaoxily 发表于 2019-12-17 13:40:27

非常感谢 回去试一下

shongyue 发表于 2019-12-24 21:54:55

如果要保存回游戏中,需要将红蓝通道对调回去

{:157:}大佬,这步不会,没找到再对调回去的选项,分离和合并都变灰了?

shongyue 发表于 2019-12-26 20:22:47

{:158:}老大,我整明白了,等回头展示下学习成果。

leejuly29 发表于 2020-1-27 20:53:43

本帖最后由 leejuly29 于 2020-1-27 20:55 编辑

一個一個轉實在太麻煩,寫了一個指令碼,可以直接利用 photoshop 的指令碼功能讀取文件夾內的DDS檔自動對調通道存成 png

#target Photoshop

app.bringToFront();

var doc;
// DDS文件路徑
var $inputFolder = new Folder("E:/SteamLibrary/steamapps/common/AoE2DE/widgetui/textures/ingame/units");
var $fileList = $inputFolder.getFiles("*.DDS");
var $pegOptions = new PNGSaveOptions();
$pegOptions.compression = 1;

for (var i = 0; i < $fileList.length; i++) {
if ($fileList instanceof File) {
    open($fileList);
    doc = app.activeDocument;
    startTask ();
    // 預設輸出入徑是放在 output 資料夾下,要自行創建否則會提示錯誤
    doc.saveAs(new File($inputFolder + "/output/"+ $fileList.name + ".png"), $pegOptions, true);
    doc.close(SaveOptions.DONOTSAVECHANGES)
}
}

function startTask () {
var $channels = doc.channels;

var $red = $channels;
var $green = $channels;
var $blue = $channels;

doc.selection.selectAll();
doc.activeChannels = [$red];
doc.activeLayer.copy();

var $blue_dup = $blue.duplicate();

doc.activeChannels = [$blue];
doc.paste ();
doc.activeChannels = [$blue_dup];
doc.activeLayer.copy();
doc.activeChannels = [$red];
doc.paste ();
$blue_dup.remove();
doc.activeChannels = [$red, $green, $blue];
}
使用方式:
創建文件副檔名存成 jsx
將指令碼複製進去(記得改DDS存放入徑,輸出入徑預設放在輸入路徑的output資料夾,記得先創建好)
將檔案丟到PS的指令碼資料夾 (Program Files/Adobe/Adobe Photoshop xxx/Presets/Scripts
打開 PS 便會在 檔案->指令碼的地方看到剛剛加入的指令碼,點選可執行

chifeiyen 发表于 2020-5-1 01:15:09

请问MIP maps是什么?怎么看图像有没有MIP map?

凌果 发表于 2020-5-1 05:49:59

本帖最后由 凌果 于 2020-5-1 05:53 编辑

chifeiyen 发表于 2020-5-1 01:15
请问MIP maps是什么?怎么看图像有没有MIP map?

打开时勾上“Load MIP maps”,会出现上图圈起来的那些的话就是有MIP map。
我写这个贴子的时候,科技图标都是有MIP map的,现在经过这几个月的更新之后,图标似乎都变成没有MIP map的了。

chifeiyen 发表于 2020-5-1 23:01:24

凌果 发表于 2020-5-1 05:49
打开时勾上“Load MIP maps”,会出现上图圈起来的那些的话就是有MIP map。
我写这个贴子的时候,科技图 ...

谢谢!那“原本DDS的模式”怎么查看?例如“8.8.8.8 ARGB 32 bpp | unsigned”之类的。

凌果 发表于 2020-5-2 02:31:17

本帖最后由 凌果 于 2020-5-2 03:35 编辑

chifeiyen 发表于 2020-5-1 23:01
谢谢!那“原本DDS的模式”怎么查看?例如“8.8.8.8 ARGB 32 bpp | unsigned”之类的。 ...
图标类用8.8.8.8 ARGB 32 bpp | unsigned
AoE2DE\widgetui\textures\backgrounds\mainmenu_bg.dds这类用DXT1
AoE2DE\widgetui\textures\atlas\HD\empireicons.dds这类用DXT5
似乎大部分都是这些。
也可以用16进制编辑软件打开文件,看图里圈起来的地方(图标类这个位置没有信息)。
没有16进制编辑软件的话,用notepad++,记事本之类的打开也可以,在前几行的乱码里可以看到。

chifeiyen 发表于 2020-5-2 16:29:50

凌果 发表于 2020-5-2 02:31
图标类用8.8.8.8 ARGB 32 bpp | unsigned
AoE2DE\widgetui\textures\backgrounds\mainmenu_bg.dds这类用DX ...

谢谢详细解答,我用notepad++去看看。

chifeiyen 发表于 2020-5-2 16:34:37

对了,请问:

3.\widgetui\icon.json里添加如图3所示一段文字,注意逗号不要漏了。
4.\widgetui\materials.json里添加如图4所示一段文字。
5.还是materials.json,添加图5所示一段文字,注意逗号不要漏了。

这几个json文件分别作用于游戏里的哪个部分?我看编辑器里有些单位在左下角面板上不显示头像,但实际又是有头像的,可以通过在哪个json文件中添加语句修复吗?

chifeiyen 发表于 2020-5-2 17:39:28

比如编辑器里的巨型投石机,明明是有头像的,但是在左下角这个面板里不显示头像。我想是不是某个json文件里缺少语句,不知是哪个json文件控制这个面板?

凌果 发表于 2020-5-2 18:46:05

本帖最后由 凌果 于 2020-5-2 18:47 编辑

chifeiyen 发表于 2020-5-2 17:39
比如编辑器里的巨型投石机,明明是有头像的,但是在左下角这个面板里不显示头像。我想是不是某个json文件里 ...
不清楚,没怎么研究过,你有兴趣的话可以自己研究一下

vatashi 发表于 2020-5-2 22:30:08

您好,我按照帖子里的方法添加了一个头像354,但是却是显示的353的头像
我一开始试着复制两个头像并拼接到了一起并保存为240,但进入游戏显示的仍是原本的240
然后我新增了354,进入游戏显示353
我以为是我的头像文件有问题,于是复制了一个dds改名为354,进入游戏仍显示353
页: [1] 2 3
查看完整版本: 关于打开一些DDS图和新增单位头像的方法