骑砍战团MOD开发(37)-module_skin.py皮肤系统

一.脸谱代码

     与地形代码类似,骑砍引擎将人物头部模型采用脸谱代码制作,以实现不同脸谱的动态拼接以及捏脸等功能。

     在人物捏脸界面Ctrl+E可编辑脸谱代码,可配置肤色,发型,年龄等相关参数.在module_troops.py可实现不同兵种脸谱.

#第12 13个参数进行脸谱参数配置
#  Each troop contains the following fields:
#  1) Troop id (string): used for referencing troops in other files. The prefix trp_ is automatically added before each troop-id .
#  2) Troop name (string).
#  3) Plural troop name (string).
#  4) Troop flags (int). See header_troops.py for a list of available flags
#  5) Scene (int) (only applicable to heroes) For example: scn_reyvadin_castle|entry(1) puts troop in reyvadin castle's first entry point
#  6) Reserved (int). Put constant "reserved" or 0.
#  7) Faction (int)
#  8) Inventory (list): Must be a list of items
#  9) Attributes (int): Example usage:
#           str_6|agi_6|int_4|cha_5|level(5)
# 10) Weapon proficiencies (int): Example usage:
#           wp_one_handed(55)|wp_two_handed(90)|wp_polearm(36)|wp_archery(80)|wp_crossbow(24)|wp_throwing(45)
#     The function wp(x) will create random weapon proficiencies close to value x.
#     To make an expert archer with other weapon proficiencies close to 60 you can use something like:
#           wp_archery(160) | wp(60)
# 11) Skills (int): See header_skills.py to see a list of skills. Example:
#           knows_ironflesh_3|knows_power_strike_2|knows_athletics_2|knows_riding_2
# 12) Face code (int): You can obtain the face code by pressing ctrl+E in face generator screen
# 13) Face code (int)(2) (only applicable to regular troops, can be omitted for heroes):
#     The game will create random faces between Face code 1 and face code 2 for generated troops
# 14) Troop image (string): If this variable is set, the troop will use an image rather than its 3D visual during the conversations

二.脸谱模型资源

     CommonRes\meshes_face_gen.brf = head + bead + hair等静态模型,通过不同静态模型的顶点动画实现不同脸谱代码的模型加载.

     CommonRes\materials_face_gen.brf实现不同地域不同年纪脸谱的纹理材质加载.

     在module_skin.py配置不同的静态模型资源可实现自定义脸谱捏脸功能.

#  Each skin record contains the following fields:
#  1) Skin id: used for referencing skins.
#  2) Skin flags. Not used yet. Should be 0.
#  3) Body mesh.
#  4) Calf mesh (left one).
#  5) Hand mesh (left one).
#  6) Head mesh.
#  7) Face keys (list)
#  8) List of hair meshes. //对应头发静态资源
#  9) List of beard meshes.
# 10) List of hair textures.
# 11) List of beard textures.
# 12) List of face textures.
# 13) List of voices.
# 14) Skeleton name
# 15) Scale (doesn't fully work yet)
# 16) Blood particles 1 (do not add this if you wish to use the default particles)
# 17) Blood particles 2 (do not add this if you wish to use the default particles)
# 17) Face key constraints (do not add this if you do not wish to use it)

二.脸谱动态切换

    head_operation.py提供接口实现兵种脸谱动态切换,可实现战团中人物随年纪增长头发变白,联机战斗中人物复活等功能.

str_store_agent_face_keys                = 2749  # (str_store_agent_face_keys, <string_no>, <agent_id>),

str_store_troop_face_keys                = 2750  # (str_store_troop_face_keys, <string_no>, <troop_no>, [<alt>]),

troop_set_face_keys                      = 2751  # (troop_set_face_keys, <troop_no>, <string_no>, [<alt>]),

face_keys_set_hair                       = 2753  # (face_keys_set_hair, <string_no>, <value>),

face_keys_set_beard                      = 2755  # (face_keys_set_beard, <string_no>, <value>),

face_keys_set_face_texture               = 2757  # (face_keys_set_face_texture, <string_no>, <value>),

face_keys_set_hair_texture               = 2759  # (face_keys_set_hair_texture, <string_no>, <value>),

face_keys_set_hair_color                 = 2761  # (face_keys_set_hair_color, <string_no>, <value>),

face_keys_set_age                        = 2763  # (face_keys_set_age, <string_no>, <value>),

face_keys_set_skin_color                 = 2765  # (face_keys_set_skin_color, <string_no>, <value>),

face_keys_set_morph_key                  = 2767  # (face_keys_set_morph_key, <string_no>, <key_no>, <value>),
   

三.人物模型

    骑砍人物模型 = 脸谱(头部) + body_mesh(绑定模型) + hand(静态模型) + foot(静态模型) + skel_human(骨架).

    由于引擎内置了大量固定骨骼动画,故skel_human骨架骨骼数量必须为20个(当然也可以强行改成自定义21个,但需要在人物加载时实时控制播放对应自定义动画),

    CommonRes/body_meshes.brf = hand静态模型可配置顶点动画实现人物拉弓,使用猎弩等手部动作,在module_skin.py可配置对应手部模型.

四.皮肤编号

    骑砍引擎内置module_skin.py中数组索引既为皮肤编号,通过在module_troops.py配置对应皮肤编号,可实现将新增的人物模型添加至兵种中

#Troop flags
tf_male           = 0  对应module_skin.py 数组索引为0
tf_female         = 1  对应module_skin.py 数组索引为1
tf_god            = 2  对应module_skin.py 数组索引为2
tf_mw             = 3  对应module_skin.py 数组索引为3
tf_da_song_male   = 4  对应module_skin.py 数组索引为4
tf_male_no_head   = 5  对应module_skin.py 数组索引为5

#第三个参数实现自定义人物模型
["god_song_guard",  "King Harlaus",  "Harlaus",  tf_mw|tf_guarantee_all, 0,reserved,  fac_kingdom_1, [],knight_attrib_5,wp(220),knight_skills_5|knows_trainer_5, 0x0000000f45041105241acd2b5a66a86900000000001e98310000000000000000,swadian_face_older_2],
  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/307541.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于PhpStorm的安装激活与汉化

访问官网下载PhpStorm https://www.jetbrains.com/phpstorm/download/#sectionwindows 点击download 下载好后&#xff0c;双击exe安装程序 点击下一步 选择安装位置 前两个肯定需要勾选&#xff1a; 创建桌面快捷方式&#xff1b;创建关联php&#xff1b; 根据以往经验&am…

阿里云国际服务器设置安全防护程序

阿里云云服务器&#xff08;ECS&#xff09;提供弹性、安全、高性能、高性价比的虚拟云服务器&#xff0c;满足您的所有需求。立即在这里免费注册&#xff01; 常见 Web 应用程序 请勿对 Web 服务控制台&#xff08;如 WDCP、TOMCAT、Apache、Nginx、Jekins、PHPMyAdmin、Web…

基于SpringBoot的精品在线试题库系统(系统+数据库+文档)

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目 希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;一、绪论 1. 研究背景 现在大家…

Java中内存模型

参数传递图解与结论 通过上面的两段程序可以得出如下结论&#xff1a;根据内存去解释&#xff0c;局部变量随方法栈的弹出而消失&#xff1b; 当调用方法时&#xff0c;如果传入的数值为基本数据类型&#xff08;包含String类型&#xff09;&#xff0c;形式参数的改变对实际…

模仿Activiti工作流自动建表机制,实现Springboot项目启动后自动创建多表关联的数据库与表的方案

文/朱季谦 熬夜写完&#xff0c;尚有不足&#xff0c;但仍在努力学习与总结中&#xff0c;而您的点赞与关注&#xff0c;是对我最大的鼓励&#xff01; 在一些本地化项目开发当中&#xff0c;存在这样一种需求&#xff0c;即开发完成的项目&#xff0c;在第一次部署启动时&…

第二证券:证监会紧急声明!加密货币大笔爆仓

当地时刻1月9日&#xff0c;美股三大指数涨跌纷歧。道指跌157.85点&#xff0c;跌幅为0.42%&#xff0c;报37525.16点&#xff1b;纳指涨13.94点&#xff0c;涨幅为0.09%&#xff0c;报14857.71点&#xff1b;标普500指数跌7.04点&#xff0c;跌幅为0.15%&#xff0c;报4756.50…

蓝凌EIS智慧协同平台 ShowUserInfo.aspx sql注入漏洞

漏洞描述&#xff1a; 蓝凌EIS智慧协同平台是一个简单、高效的工作方式专为成长型企业打造的沟通、协同、社交的移动办公平台&#xff0c;覆盖OA、沟通、客户、人事、知识等管理需求&#xff0c;集合了非常丰富的模块&#xff0c;满足组织企业在知识、项目管理系统建设等需求的…

三维猴打印PCB外壳预留板壳间距

3D文件下单那里有一个“3D模型设计规范”&#xff0c;里面详细讲了设计时要考虑打印的参数细节。如果有其他的设计规范不了解的也可以进去查看&#xff0c;里面写的很详细。 这里是打印PCB外壳预留板壳间距相关说明&#xff1a; 设计模型为装配体&#xff0c;请务必满足装配最…

IoT 物联网 MQTT 协议 5.0 版本新特性

MQTT 是一种基于发布/订阅模式的轻量级消息传输协议&#xff0c;专门为设备资源有限和低带宽、高延迟的不稳定网络环境的物联网场景应用而设计&#xff0c;可以用极少的代码为联网设备提供实时可靠的消息服务。MQTT 协议广泛应用于智能硬件、智慧城市、智慧农业、智慧医疗、新零…

基于ssm的在线视频网站开发论文

摘 要 计算机网络发展到现在已经好几十年了&#xff0c;在理论上面已经有了很丰富的基础&#xff0c;并且在现实生活中也到处都在使用&#xff0c;可以说&#xff0c;经过几十年的发展&#xff0c;互联网技术已经把地域信息的隔阂给消除了&#xff0c;让整个世界都可以即时通话…

LED电子屏组装常见故障及解决办法大全

在LED电子屏的组装过程中&#xff0c;可能会遇到各种故障。以下是一些常见问题及其解决方法&#xff1a; 1. 加载不上可能的原因及解决办法&#xff1a; A. 确保控制系统硬件正确上电&#xff08;5V&#xff09;。 B. 检查并确认用于连接控制器的串口线为直通线。 C. 检查串口…

JAVA课程设计--类京东购物车设计

目录 小组成员 负责模块&#xff1a; 程序介绍&#xff1a; 1.前期调查&#xff1a; 1.1京东购物车页面 首页 购物车界面 商品信息界面 搜索界面 1.2程序设计页面 首页 购物车页面 商品信息界面 搜索界面&#xff1a; 2.使用环境&#xff1a; 3.技术支持 前端V…

pycharm+pyqt 外部工具:ui转py、打开qtDesigner、.qrc转py

目录 1、打开设置-外部工具 2、qtdesigner工具 3、ui转py 4、prc转py 5、找到配置好的外部工具进行使用 1、打开设置-外部工具 点击“ctrlalts”一键打开设置界面&#xff0c;进入界面后“工具-外部工具-按钮-创建工具栏”打开创建外部工具窗口&#xff0c;如下图所示&…

算法通关村番外篇-LeetCode编程从0到1系列二

大家好我是苏麟 , 今天来说LeetCode编程从0到1系列二 . 内置函数 最后一个单词的长度 描述 : 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子…

STM32F103C8T6(HAL库函数 - 内部Flash操作)

简介 STM32F103C8T6 内部Flash 为 64KB&#xff0c;本次将对他多余空间进行读写。 介绍 数据手册下载 STM32F103x8/STM32F103xB 数据手册 包含Flash Memory Page分布 STM32F设备命名 设备容量类型 中容量类型 内部空间介绍 64 KBytes大小Flash Memory 从 0x0800 0000 ~…

【驱动序列】C#获取电脑硬件之CPU信息,以及它都有那些品牌

欢迎来到《小5讲堂》&#xff0c;大家好&#xff0c;我是全栈小5。 这是是《驱动序列》文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识…

燃油车智能化时代将终结,长安汽车凭啥引领“数智新汽车”周期?

日前高工智能汽车研究院发布报告称&#xff0c;2024年将是新能源市场的新拐点&#xff0c;燃油车智能化时代即将终结&#xff0c;新能源和智能化将深度融合发展。 伴随着整车电子电气架构加速迈入中央计算-区域控制架构时代&#xff0c;智能电动汽车将从单一功能升级的智能化1…

机器学习 —— 自用整理期末复习笔记

一、绪论 机器学习术语 假设空间 p5 监督学习&#xff08;supervised learning&#xff09;的任务是学习一个模型&#xff0c;使模型能够对任意给定的输入&#xff0c;对其相应的输出做出一个好的预测。模型属于由输入空间到输出空间的映射的集合&#xff0c;这个集合就是假设空…

shader技巧

数学函数&#xff1a; abs()&#xff1a;绝对值函数。 acos()&#xff1a;反余弦函数。 asin()&#xff1a;反正弦函数。 atan()&#xff1a;反正切函数。 ceil()&#xff1a;向上取整函数。 cos()&#xff1a;余弦函数。 cross()&#xff1a;向量叉积函数。 distance()&#x…

Cesium笔记 viewer控件隐藏

Cesium初始化后&#xff0c;场景中会有时间轴&#xff0c;动画&#xff0c;home等控件显示&#xff0c;需要将这些控件隐藏&#xff0c;如下&#xff1a; init() {let viewer new Cesium.Viewer("cesiumContainer", {fullscreenButton: false, // 隐藏界面右下角全…