芙蕖吧 关注:498贴子:2,677

存档版本,io_scene_烛龙数据V2.6.4_Blender3.3-3.6

只看楼主收藏回复

一楼祭天


IP属地:北京1楼2023-10-18 13:54回复
    io_scene_烛龙数据
    # Nothing happened here in this code, don't mind about it
    from . import 工具, 交互, 接口, 界面, 数据, 文件
    一、插件 io_scene_烛龙数据_2.6.4_Blender3.6.4,存档版本。
    Blender逐渐发展,再次遇到了兼容性问题。笔者以前了解到的第1次兼容问题,是Blender2.49b升级Blender5.0时.blend存储文件不能直接互相读取;第2次则是现在,Blender3.6.4升级Blender4.0时,只有Blender3.6.4这个版本能正常读取Blender4.0的.blend文件,其他的Blender2.8,Blender3.0等旧版本,想打开Blender4.0的.blend文件,只能通过Blender3.6.4中转,读取新的.blend文件,再保存1次,.blend文件才会变成旧版本。而Blender4.0则是能正常读取旧.blend文件。
    除开.blend工程文件的兼容性问题,笔者印象中,Blender的api大概也有2次的改动比较大,让笔者印象深刻,一是Blender2.8的发布,让笔者觉得api比较稳定插件可以开始着手编制,二是Blender3.4的发布,笔者想直接查看Blender界面代码只能用Blender3.3。
    随着2023年10月份,Blender4.0Beta的发布,从blender4.0Beta这次的.blender工程文件改动兼容情况和blender python api的改动情况来看,大概率本插件的材质部分代码将失效。而插件的维护,以后也将移到Blender4.0上,故近期整理代码,形成插件 io_scene_烛龙数据_2.6.4_Blender3.6.4,作为1个存档版本留存。简记于2023年10月17日。
    二、插件简介
    本插件主要用于导入上海烛龙信息科技有限公司(Aurogon Info&Tech (Shanghai) Co., Ltd.)开发发行的《古剑奇谭:琴心剑魄今何在》(2010年07月10日)、《古剑奇谭二:永夜初晗凝碧天》(2013年8月18日)、《古剑奇谭三:梦付千秋星垂野》(2018年11月23日)三款游戏的解包数据文件到Blender3.6.4软件中,注:本存档版本不支持Blender4.0。
    本插件也支持旧引擎版本的《古剑奇谭网络版(Swords of Legends Online)》游戏解包文件导入到Blender软件中。古剑奇谭网络版与古剑3使用相同的游戏引擎,相同的model文件5版本,故本插件能正常把旧古网文件导入到Blender3.3-3.6。后续古网若升级了文件版本、或者升级了游戏引擎版本,或者更换了游戏引擎,则本插件不能保证正常导入,您依然可以用本插件尝试导入新版本的解包游戏文件。
    本插件仅支持古剑1古剑2古剑3三代游戏解包文件,后续的古剑奇谭系列新单机游戏,本插件不支持其解包文件导入。2020年7月11日烛龙官方在嘉年华现场发布消息,古剑奇谭网络版和古剑奇谭系列后续单机游戏,将更换成虚幻4游戏引擎。
    本插件能处理的文件夹目录结构为RPGViewer解包出来的文件及文件夹,请使用RPGViewer30Build20210920软件的顶部菜单功能,【打开游戏目录】和【左侧全选-addon-压缩包操作-批量解包-设置输出目录-解包游戏】,完整解包游戏。
    本插件要求Blender软件版本需达到3.3及以上。由于本插件大量使用python的match case语法,因此Blender内置的python版本需要在3.10及以上。
    三、支持的文件格式
    古剑1
    nif: gamebryo游戏引擎,引擎版本V20.6.0.0,模型及场景文件。
    kf:  gamebryo游戏引擎,引擎版本V20.6.0.0,动画文件。
    古剑2
    xac: Vision Engine游戏引擎,引擎版本V8.0,Emotion Fx模型文件。
    xsm:  Vision Engine游戏引擎,引擎版本V8.0,Emotion Fx动画文件。
    vmesh:  Vision Engine游戏引擎,引擎版本V8.0,havok静态场景部件模型,文件版本V1。
    model:  Vision Engine游戏引擎,引擎版本V8.0,havok模型,文件版本V1。
    srt:  Vision Engine游戏引擎,引擎版本V8.0,speedtree模型,文件版本SRT 05.2.0。
    古剑3
    model: Vision Engine游戏引擎,引擎版本未知,havok模型文件,文件版本V5。
    morph:  Vision Engine游戏引擎,引擎版本未知,havok表情文件,文件版本V5。。
    avatar:  Vision Engine游戏引擎,引擎版本未知,havok角色文件。
    hka:  Vision Engine游戏引擎,引擎版本未知,havok动画文件,文件版本hk_2014.2.0-r1。
    srt:  Vision Engine游戏引擎,引擎版本未知,speedtree模型,文件版本SRT 07.0.0。
    四、说明
    插件历程
    功能说明
    安装教程


    IP属地:北京4楼2023-10-18 14:08
    回复
      五、参考
      十分感谢为本插件的编制提供帮助的人们。
      最后,感谢插件所参考的软件项目的公开代码,这些代码使得Blender古剑游戏系列导入插件,在今天得以以1个较稳定的版本发布。由于插件开发时间跨度接近5年,作者不能一一记起和列举插件所参考的全部开源项目,这里十分感谢这些作者在文件解析方面和导入Blender方面所做的探索,这些探索为插件开发提供了一个良好的基础。
      古剑一nif、kf部分主要参考Noesis软件和ponyrider0’s FarNifAutoGen项目
      written in part using RichwhiteHouse's Noesis's fmt_gamebryo_nif.py as a reference
      Noesis is a tool for previewing and converting between hundreds of model, image, and animation formats.
      https://github.com/ponyrider0/FarNifAutoGen/blob/master/import_nif_con.py if rotation_type == 4:
      古剑二xac, xsm部分主要参考了Szkaradek123 的插件Blender249[Gujian2][xac][xsm][2015-03-02].zip和enenra’s x4modding开源项目的xac, xsm文件格式资料
      https://github.com/enenra/x4modding/wiki/Model-file-infomation-(_arc)
      https://forum.xentax.com/viewtopic.php?t=12641
      古剑三hka动画部分主要参考了Meowmaritus‘s MVDX2开源项目和OpenAWE-Project‘s OpenAWE开源项目
      https://github.com/Meowmaritus/MVDX2/blob/master/MVDX2/Havok/SplineCompressedAnimation.cs
      https://github.com/OpenAWE-Project/OpenAWE/blob/master/src/awe/havokfile.cpp
      https://github.com/zephenryus/havok-reflection
      古剑二/古剑三的SpeedTree Real-Time Model (.srt)文件主要参考了WolvenKit-7软件和io_scene_srt_jsonBlender插件
      https://github.com/WolvenKit/WolvenKit/blob/main/WolvenKit.Common/RED3/SRT/Srtfile.cs


      IP属地:北京5楼2023-10-18 14:08
      回复
        下载io_scene_烛龙数据插件,(不需要提取码,网址可以直接打开)
        插件下载地址:https://pan.baidu.com/s/100Mns8a6eLguL19pwPfv9g


        IP属地:北京6楼2023-10-18 14:09
        回复
          V2.6.4:
          - 修复古剑1kf,裙子动画导入bug
          - 导入模型骨架时,可选添加T姿势
          - 新增单独的功能(与插件导入无关),可切换blender中所选骨架的动画。
          - 新增单独的功能(与插件导入无关),可添加骨架T姿势。


          IP属地:北京7楼2023-10-18 14:12
          回复
            插件使用说明
            日期:2023年10月18日
            一、插件的UI界面
            插件的UI界面有3种,请选择自己喜欢的方式
            (1)点击弹窗

            (2)悬浮弹窗

            (3)嵌入窗口


            IP属地:北京8楼2023-10-18 14:16
            回复
              二、使用方式
              模型导入:左侧点击要导入的文件,右侧设置可以不用设置,直接点击右下方的加载按钮就行。

              动画导入:
              ①先在Blender里面,点击选择要导入动画的骨架对象(支持多选);
              ②顶部菜单,文件-导入-烛龙数据 (.model/ .xac/ .nif/.xsm......)打开Blende的文件浏览器。
              ③在打开的文件浏览器左侧Ctrl+鼠标左键点击要导入的动画,右侧设置可以不用理会,直接点击右下方的加载按钮就行。





              IP属地:北京9楼2023-10-18 14:18
              回复
                3、支持合并骨架,将所多选的文件里面的骨架合并成同一个骨架,为原来古剑3同一个骨架功能的扩展,注意不要多选到其他骨架的文件。


                IP属地:北京12楼2023-10-18 14:22
                回复
                  4、注意,如果模型导入,在坐标系上作了什么设置,则动画不应去改动这些设置,动画只能改动自身设置窗口及其子设置窗口里面的设置。
                  由于Blender文件浏览器打开的是一个文件夹,所以插件只支持同文件夹内模型及动画同时导入。模型及动画文件,分开存储在不同的文件夹的,请分开导入。即先导入模型之后,再在Blender中选择骨架,随后再导入动画。
                  动画支持4种导入形式,这些导入都是自动处理的,只需导入就行:
                  ①先导入模型,再在Blender中选择多个骨架,之后再导入动画,这样每个选中的骨架都会有动画。
                  ②多选,同时导入单独的模型及单独的动画文件,多个动画都会自动加载到所选文件里的所有模型骨架上。当然模型只会显示最后1个加载的动画,其他的动画需要到action里去切换,插件提供单独的功能切换前面导入的action。
                  ③多选。导入的每个文件里面同时有模型及动画,动画只会加载到各自的模型骨架上,不会加载到其他文件骨架上。通过骨架导入模式,选择略过骨架,配合Blender中选中骨架,可以把既有模型又有动画的文件,变成单独的动画文件。使用效果和单独的动画文件一样。动画会加载到Blender中选择的骨架,同时不会导入文件中的骨架。
                  ④多选。导入的多个文件里,有的文件既有模型及动画,有的只有模型,有的只有动画。不管是模型文件里的动画还是单独的文件动画,都会导入到所有的模型。
                  动画支持多选骨架导入,1份动画可以加载到多个骨架,也可以多份动画导入到多份骨架里,当然,只会显示最后的动画,前面导入的动画,需要到action里去切换,插件有提供单独的功能切换action。
                  需要注意,本插件支持fbx文件的骨架及动画导入。如果在导入fbx前,Blender中有选中骨架的话,fbx中的动画除了导入到对应的骨架上面,也会导入到所选的骨架里。
                  需要注意动画和骨架是有对应关系的,动画文件导入到其他骨架,可以尝试,但插件不能保证效果正常。


                  IP属地:北京13楼2023-10-18 14:23
                  回复
                    5、插件支持古剑2模型导入范围自动扩展推测。设置成自动推测,只需点选_body.xac 一个模型,插件会自动再导入对应的_face.xac模型


                    IP属地:北京14楼2023-10-18 14:25
                    回复
                      6、当前Blender3.6依然无法识别全部的古剑3贴图dds文件,所以导入古剑3的模型时,贴图选项需要设置为png,其他选项不用改动,直接导入就行。(插件会在dds贴图所在的文件夹里生成对应的png贴图)


                      IP属地:北京15楼2023-10-18 14:25
                      回复
                        8、测试特性,插件支持把所选的多个动画文件合并成1个动画文件导入。需要开启测试特性才能使用,这个功能可能有用,也可能没有用。


                        IP属地:北京17楼2023-10-18 14:33
                        回复
                          9、插件导入模型骨架时,可选添加1个action,并将其第0帧设施为T姿势。


                          IP属地:北京18楼2023-10-18 14:35
                          回复
                            10、插件单独功能,批量dds转png功能,它是独立的功能,不用点击加载按钮就能运行,文件浏览器点击删除按钮,关闭blender的文件浏览器。
                            使用方式是,先左侧选择dds文件,再点击【添加所选文件】按钮,可以在多个文件夹里来回选择文件,在点击【添加所选文件】按钮,等到想要转换的文件都选择添加完成,在点击【转换所选文件】按钮转换就可以了。点击【转换所选文件】按钮,会在dds贴图所在的文件夹生成新的png文件。
                            注意每次点击转换所选文件按钮,生成的新png贴图都会覆盖已有的png贴图,同时注意,转换过程耗时长,软件会卡住转圈,等转换结束才能操作。
                            不用担心弹出窗体消失,再次点击选项设置,弹窗会再次出现,已经添加的文件有保留在里面。等文件添加完,点击转换就行。





                            IP属地:北京19楼2023-10-18 14:37
                            回复
                              11、插件单独功能,切换所选骨架动作功能和所选骨架添加T姿势功能2个小功能,它是独立的功能,不用点击加载按钮就能运行,(只要不点击加载按钮,插件的导入功能就不会运行,文件浏览器点击删除按钮,关闭blender的文件浏览器界面。
                              切换所选骨架动作功能,这个是笔者因对新版blender不熟悉而写的功能,笔者记得以前的blender是可以直接切换骨架的动作的,新版的blender笔者没找到切换动画在哪里,所以自己写了切换所选骨架的动画功能。
                              所选骨架添加T姿势功能,它有2个使用场景,一是当前动作的某一帧将其修改为T姿势,这不会改动其它帧;二是为所选骨架新建1个action,并将其第0帧添加T姿势。需要特别注意,导入的骨架必须是经过坐标系变换自动处理和坐标系旋转自动处理,完成了骨骼轴向变换的骨架,还有就是古剑1使用古剑1添加T姿势按钮,古剑2使用古剑2添加T姿势按钮,他们是各自对应的,目前没有通用的添加T姿势方式。


                              IP属地:北京20楼2023-10-18 14:38
                              回复