找到一个大佬制作的星神少女的spine展示

正在上传:spineShot(1).rar…
解包后发现全是重名的文件 ,站内所有的导出方法都用还是不能正确分类,麻烦大佬用没有效的方法导出分类

通过百度网盘分享的文件:spineSho…
链接:https://pan.baidu.com/s/17c0ZpRIUl9L48-Ria7cIvA
提取码:eqot

实现方法有二
1.搜索 a. .skel中的插槽词条,在遍历所有的.atlas中的词条,当匹配度达到90%时就认为找到了*.atlas
b.从.altas中搜索*.PNG后的size,遍历所有这个尺寸的*.PNG

2.skeleton_SkeletonData_16.asset 文件中 找到 a. *.skel b. atals assets
b.从 skeleton_Atlas_15. asset ( atals assets)文件中找 c1 * .atlas ; c2 *.materials
c2. 从 *.materials文件中找 主贴图 d *.png
d. 重命名 c1 ,d 以及修改 c1中的 *.png的词条

这个资源不错,请问在哪下的

能说下是怎么解包的?AS好像无法直接打开

解压后,用AS选择Data目录的data.unity3d就能打开了,如果打不开就是AS版本不对,用站里大佬们推荐的各种版本,多下几个备用,一个个试

游戏群友发的

直接在AS里面看,一个一个导出

感觉没什么好方法,可以通过path_id导出重名文件,但是还是不知道哪些文件能组成一组spine模型。

这个试过了,不起作用

导出后文件夹名还原思路:发现resource文件名1101_lv3,选中model后全部导出,导出后的文件夹下除了.fbx文件还有对应的.png文件,everything手动对比修改文件名,或者python搞定。


这个我也用了,导出后所有文件是以pathid命名的,没有分类

请问要怎么设置才能导出这样的目录啊?

大佬说得略精简,我们这些零基础的看得云里雾里,我摸索了一会原来大佬的意思是
1.选中列表[scene hierarchy]在列表下钩上分好类的文件夹如下
image
2.model项目里选择导出钩选的项目
image
3.就得到分好类的png图片
image
4.但是每个分类的文件夹只有分好类的png图片
image
5.接下来怎么匹配skel和atlas我还是没弄懂,知道的再佯细告诉一下
6.关于ExportExviewerConfig怎么配置我也没搞懂,也求教,我是直接默认啥也没设置

1.在model里导出所有model到文件夹a;
2.用GitHub - Ahykal/StudioPluginVer: Modded AssetStudio with new features 在plugin里导出spine到文件夹b;
3.将a,b文件夹和.py文件放到同一文件夹里,然后运行.py。
.python修改文件名,代码里a是有fbx的参考文件夹,b是要重命名的spine文件夹,路径可以自行修改。
.根据文件名和大小来匹配,导出的图片先不要修改尺寸,不然大小匹配不上。
.有8组名字大小都相同的,_lv1和_lv1a其中一个重命名不了,还会被移动到另一个文件夹里面。
.可以改成md5值来匹配,还是手动处理吧。
.软件作者直接中文解释得十分详细,看完后使用应该没问题,其他的我也不懂,全靠豆包AI,建议也问问AI。

python代码显示的有问题用zip里的,点击展开

import os
import shutil

def rename_folders_by_file(a_folder, b_folder):
renamed = set() # 记录已重命名的b文件夹下级文件夹路径
count = 0 # 统计重命名文件夹数量

# 获取a文件夹下的所有下级文件夹路径
subfolders_a = [os.path.join(a_folder, d) for d in os.listdir(a_folder) if os.path.isdir(os.path.join(a_folder, d))]
# 获取b文件夹下的所有下级文件夹路径
subfolders_b = [os.path.join(b_folder, d) for d in os.listdir(b_folder) if os.path.isdir(os.path.join(b_folder, d))]

for folder_b in subfolders_b:
    if folder_b in renamed:
        continue
    match_info = {}  # 记录每个a文件夹下级文件夹与当前b文件夹下级文件夹的匹配文件数量
    for folder_a in subfolders_a:
        match_count = _count_matching_files(folder_b, folder_a)
        match_info[folder_a] = match_count

    # 先筛选出有至少两个文件匹配的a文件夹下级文件夹
    valid_folders_a_two_matches = [f for f in match_info if match_info[f] >= 2]
    if valid_folders_a_two_matches:
        target_folder_name = os.path.basename(valid_folders_a_two_matches[0])
        new_dir_b_path = os.path.join(os.path.dirname(folder_b), target_folder_name)
        if os.path.basename(folder_b) == target_folder_name:
            print(f"重命名前后文件夹名相同,跳过对 {folder_b} 的重命名操作")
            continue
        try:
            shutil.move(folder_b, new_dir_b_path)
            print(f"{folder_b} 文件夹重命名成 {new_dir_b_path} 文件夹")
            renamed.add(folder_b)
            count += 1
        except FileExistsError as e:
            print(f"重命名失败,目标文件夹已存在,错误信息: {e}")
        except shutil.Error as e:
            print(f"重命名出现其他错误,错误信息: {e}")
        continue

    # 如果不存在至少两个文件匹配的情况,再考虑只有一个文件匹配的情况
    valid_folders_a_one_match = [f for f in match_info if match_info[f] == 1]
    if valid_folders_a_one_match:
        target_folder_name = os.path.basename(valid_folders_a_one_match[0])
        new_dir_b_path = os.path.join(os.path.dirname(folder_b), target_folder_name)
        if os.path.basename(folder_b) == target_folder_name:
            print(f"重命名前后文件夹名相同,跳过对 {folder_b} 的重命名操作")
            continue
        try:
            shutil.move(folder_b, new_dir_b_path)
            print(f"{folder_b} 文件夹重命名成 {new_dir_b_path} 文件夹")
            renamed.add(folder_b)
            count += 1
        except FileExistsError as e:
            print(f"重命名失败,目标文件夹已存在,错误信息: {e}")
        except shutil.Error as e:
            print(f"重命名出现其他错误,错误信息: {e}")
print(f"总共重命名了 {count} 个文件夹")

def _count_matching_files(folder1, folder2):
“”"
统计两个文件夹中名字和大小都相同的文件数量
“”"
file1_list = os.listdir(folder1)
file2_list = os.listdir(folder2)
count = 0
for file1 in file1_list:
file1_path = os.path.join(folder1, file1)
for file2 in file2_list:
file2_path = os.path.join(folder2, file2)
if os.path.isfile(file1_path) and os.path.isfile(file2_path) and
os.path.basename(file1_path) == os.path.basename(file2_path) and
os.path.getsize(file1_path) == os.path.getsize(file2_path):
count += 1
return count

if name == “main”:
a_folder = “a”
b_folder = “b”
rename_folders_by_file(a_folder, b_folder)

rename.py.txt.zip (1.1 KB)

注意MonoBehaviour资源可能的dll程序集载入需求,在asset list里找一个MonoBehaviour资源,点击后弹出的选择文件夹选择data文件夹下的managed文件夹(有很多.dll的文件夹)。

请问一下大佬这样点击什么也没有导出来,是什么原因?

大佬,导出skeleton的文件夹是怎么按path-id构成文件夹的,我导出要么就是全部在一个文件夹,用上面那个就导不出来,只有图片能够按文件夹,atlas和skel文件不行

我和你一样,用这个导出没有反应,看打印日志是报错了,不知道要怎么设置

这个说明应该是英译中,所以看得挺晦涩难懂
你加了注释后,我才看得明白,
原来,每次筛选MonoBehaviour项目后,有些项目点击一下,第一次都会弹一个选择文件夹的框,我都不知道是做什么用的,原来是要选择连接库,只要选中data文件夹下的managed文件夹(有很多.dll的文件夹)这个目录,之后再使用
SaveByAllMonoBehaviourScript(从所有的MonoBehaviour`中导出可用的Spine资源组)即可以正常导出
image

感谢大佬 导出来了

再补充一下,这样导出直接就分好类能直接观看了

大佬发的python是另一个匹配的方法吗?没有说明,加我不懂python所以不明白

找一个ai,我用的是豆包,代码给他,问怎么用,不懂再问,我也不会python,全靠豆包搞定的,所以有几个重命名不了。