Compare commits

..

No commits in common. "master" and "v0.0.1" have entirely different histories.

2 changed files with 15 additions and 38 deletions

View File

@ -1,6 +1,5 @@
using ImageMagick; using ImageMagick;
using NLua; using NLua;
using System.Reflection.Metadata.Ecma335;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
namespace ArtemisFgTools namespace ArtemisFgTools
{ {
@ -19,7 +18,7 @@ namespace ArtemisFgTools
Console.WriteLine("请输入立绘fg文件夹的所在路径无需\"\""); Console.WriteLine("请输入立绘fg文件夹的所在路径无需\"\"");
string? fgImagePath = Console.ReadLine(); string? fgImagePath = Console.ReadLine();
Console.WriteLine("请输入exlist的文件路径:"); Console.WriteLine("请输入exlist.ipt的文件路径:");
string? luaFilePath = Console.ReadLine(); string? luaFilePath = Console.ReadLine();
Console.WriteLine("请输入保存位置:"); Console.WriteLine("请输入保存位置:");
@ -82,21 +81,15 @@ namespace ArtemisFgTools
foreach (var pose in fgObject.Pose) foreach (var pose in fgObject.Pose)
{ {
Parallel.ForEach(fgObject.Fuku, fuku => Parallel.ForEach(fgObject.Fuku, fuku =>
//foreach (var in )
{ {
//💢 skip //For ハミダシクリエイティブ
if (fuku == "99")
{
return;
}
bool special = false; bool special = false;
string special_text="";
string fuku_current = fuku; string fuku_current = fuku;
int index = fuku_current.IndexOf('|'); //if the tail of fuku is |0099, spec to true & remove |0099
if (index != -1) if (fuku_current.EndsWith("|0099"))
{ {
special = true; special = true;
special_text = fuku_current[(index + 1)..]; fuku_current = fuku[0..^5];
fuku_current = fuku_current[..index];
} }
// <head><siz><pose[0]><fuku><pose[1]>0 // <head><siz><pose[0]><fuku><pose[1]>0
// *sp:fuku: 02 | 0099→02fuku & 0099face // *sp:fuku: 02 | 0099→02fuku & 0099face
@ -104,8 +97,8 @@ namespace ArtemisFgTools
foreach (var face in fgObject.Face[pose[0]]) foreach (var face in fgObject.Face[pose[0]])
{ {
string layerImg = Path.Combine(pathWithSize, $"{face}.png"); string layerImg = Path.Combine(pathWithSize, $"{face}.png");
string layer2Img = special ? Path.Combine(pathWithSize, $"{pose[0]}{special_text}.png") : ""; //眼镜 string layer2Img = special ? Path.Combine(pathWithSize, $"{pose[0]}0099.png") : ""; //眼镜
string savePathWithAll = Path.Combine(savePathWithSizePart, $"{fgObject.Head}{siz}{pose[0]}{fuku_current}{pose[1]}0_{face}" + (special ? ($"_{pose[0]}{special_text}.png") : (".png"))); string savePathWithAll = Path.Combine(savePathWithSizePart, $"{fgObject.Head}{siz}{pose[0]}{fuku_current}{pose[1]}0_{face}" + (special ? ($"_{pose[0]}0099.png") : (".png")));
ProcessAndSave(baseImg, layerImg, layer2Img, savePathWithAll, special); ProcessAndSave(baseImg, layerImg, layer2Img, savePathWithAll, special);
} }
@ -122,27 +115,19 @@ namespace ArtemisFgTools
{ {
Parallel.ForEach(fgObject.Fuku, fuku => Parallel.ForEach(fgObject.Fuku, fuku =>
{ {
//💢 skip //For ハミダシクリエイティブ
if (fuku == "99")
{
return;
}
bool special = false; bool special = false;
string special_text = "";
string fuku_current = fuku; string fuku_current = fuku;
int index = fuku_current.IndexOf('|'); if (fuku_current.EndsWith("|0099"))
if (index != -1)
{ {
special = true; special = true;
special_text = fuku_current[(index + 1)..]; fuku_current = fuku[0..^5];
fuku_current = fuku_current[..index];
} }
string baseImg = Path.Combine(pathWithSize, $"{fgObject.Head}no{pose[0]}{fuku_current}{pose[1]}0.png"); string baseImg = Path.Combine(pathWithSize, $"{fgObject.Head}no{pose[0]}{fuku_current}{pose[1]}0.png");
foreach (var face in fgObject.Face[pose[0]]) foreach (var face in fgObject.Face[pose[0]])
{ {
string layerImg = Path.Combine(pathWithSize, $"{face}.png"); string layerImg = Path.Combine(pathWithSize, $"{face}.png");
string layer2Img = special ? Path.Combine(pathWithSize, $"{pose[0]}{special_text}.png") : ""; string layer2Img = special ? Path.Combine(pathWithSize, $"{pose[0]}0099.png") : "";
string savePathWithAll = Path.Combine(savePathWithSizePart, $"{fgObject.Head}no{pose[0]}{fuku_current}{pose[1]}0_{face}" + (special ? ($"_{pose[0]}{special_text}.png") : (".png"))); string savePathWithAll = Path.Combine(savePathWithSizePart, $"{fgObject.Head}no{pose[0]}{fuku_current}{pose[1]}0_{face}" + (special ? ($"_{pose[0]}0099.png") : (".png")));
ProcessAndSave(baseImg, layerImg, layer2Img, savePathWithAll, special); ProcessAndSave(baseImg, layerImg, layer2Img, savePathWithAll, special);
} }
}); });

View File

@ -2,11 +2,11 @@
立绘合成 立绘合成
只测试了 **セレクトオブリージュ**、**ハミダシクリエイティブ** 只测试了 **セレクトオブリージュ**
----- -----
提取fg文件夹image\fg、exlist.ipt文件pc\ja\extra\exlist.iptハミダシクリエイティブ是system\table\exlist.tbl准备好空文件夹以存放合并后的文件这里以out为例 提取selectoblige.pfs中的fg文件夹image\fg、exlist.ipt文件pc\ja\extra\exlist.ipt准备好空文件夹以存放合并后的文件这里以out为例
![](https://git.chenx221.cyou/chenx221/ArtemisFgTools/raw/branch/master/img/2024-07-28_172347.jpg) ![](https://git.chenx221.cyou/chenx221/ArtemisFgTools/raw/branch/master/img/2024-07-28_172347.jpg)
@ -14,14 +14,6 @@
![](https://git.chenx221.cyou/chenx221/ArtemisFgTools/raw/branch/master/img/2024-07-28_172635.jpg) ![](https://git.chenx221.cyou/chenx221/ArtemisFgTools/raw/branch/master/img/2024-07-28_172635.jpg)
等待完成... 然后就是等了...
![](https://git.chenx221.cyou/chenx221/ArtemisFgTools/raw/branch/master/img/2024-07-28_172940.jpg) ![](https://git.chenx221.cyou/chenx221/ArtemisFgTools/raw/branch/master/img/2024-07-28_172940.jpg)
-----
セレクトオブリージュ全部合并大小约14.4 GB
ハミダシクリエイティブ全部合并大小约27.0 GB
应该可以通过修改exlist内容实现合并部分内容