7. 为角色添加武器

本贴最后更新于 2903 天前,其中的信息可能已经渤澥桑田

bnc 文件里有 2 个虚拟体是需要注意的
d_wpnL 左手武器挂载点
d_wpnR 右手武器挂载点
还有一点要注意的是,在 TPose 的时候,在 2 个挂载点下各创建一个子物体,这个子物体的世界变换矩阵为 父节点在 tpose 姿态下的 localtotoworldmatrix,就是他和父节点的世界变换矩阵的逆相乘后正好坐标处于 原点,世界旋转为 Quaternion.identity
之后我们命名为
WeaponL_TPos

WeaponR_TPos

加载武器前,需要知道武器由哪些文件组成,最好设计一个武器的表格,填写好这些数据。就是匕首 是放在右手的,双手武器中哪一个在左手哪一个在右手
这里分,单手武器,以及 双手武器,各拿一个作为例子
匕首[林] 属性[林普,火攻,山防,风速]
描述文件 W1_0.des _
实体文件 W1_0.Gmc _
或者实体文件 W1_0.Gmb _
一般的,读取一个描述文件,内部会告诉有多少个实体,多少个虚拟体,实体就是有模型等顶点数据的 mesh,虚拟体就是一个空 gameobject,仅仅做挂载用

SceneObjects 2 DummeyObjects 2
Object wpnLD02
{
Position: 0.000 0.000 0.000
Quaternion: -1.000 0.000 0.000 0.000
TextureAnimation: 0 0.000 0.000
Custom:
{
}
}
Object ldat
{
Position: 0.058 7.985 -0.048
Quaternion: -0.000 0.000 0.000 1.000
TextureAnimation: 0 0.000 0.000
Custom:
{
visible=0
}
}
Object d_wpnRS
{
Position: 0.000 2.387 0.000
Quaternion: -1.000 0.000 0.000 0.000
TextureAnimation: 0 0.000 0.000
Custom:
{
}
}
Object d_wpnRE
{
Position: 0.000 11.808 0.000
Quaternion: -1.000 0.000 0.000 0.000
TextureAnimation: 0 0.000 0.000
Custom:
{
}
}
visible 指代不可见,ldat 此为一个触发器。

以下是个人猜测
实体部分的坐标和旋转,都是无须读取的,这是因为
gmb 和 gmc 是通过原版流星蝴蝶剑的一个 des 解析工具生成的,这个解析工具,按照 des 里的描述,从模型库提取模型原件按照位置和旋转去生成 gmb 文件和 gmc 文件,让 des 文件的实体部分整体成为一个完整的整体,这样从 gmb,gmc 文件读取出来模型后,实体部分是不需要考虑坐标和旋转的。

实际上跟场景上的道具类似的。实体名称对应的 mesh 定义存储在 w1_0.gmc 或者 w1_0.gmb 文件内,包括 uv,贴图等。
所以不必重复解释了
每个武器包括 2 个挂载点。d_wpnRS 剑刃开始点,d_wpnRE 剑刃结束点
这 2 个挂载点有 2 个作用
作用 1:挂载特效
作用 2:计算刀光拖影

再拿双手武器做例子 双刺
描述文件 左手 W8_0l.des 右手 W8_0r.des
左手就是 W8_0l.gmb 或者 W8_0l.gmc
右手类似
完毕之后,配合动画一起,就可以使出匕首绝招,双刺绝招了

到这里,流星蝴蝶剑游戏的地图,地图道具。各种模型,都是由 des 文件驱动的,对应 des 文件的是 gmb 文件和 gmc 文件,其不分是地图还是道具或者武器
都是由实体和虚体 2 部分组成的
实体在 gmb,gmc 里,坐标和旋转不需要设置为 des 文件里相应的
虚拟体会设置旋转和坐标,同时虚拟体也可以指定读取一个 des 文件,如同这个过程的递归。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    :joy:

  • someone

    是不是说的太笼统不好懂

推荐标签 标签

  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 661 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 824 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    202 引用 • 1455 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 53 关注
  • TGIF

    Thank God It's Friday! 感谢老天,总算到星期五啦!

    291 引用 • 4495 回帖 • 663 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 280 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 16 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 616 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    4 引用 • 16 回帖 • 196 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 184 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 133 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 368 关注
  • 反馈

    Communication channel for makers and users.

    120 引用 • 906 回帖 • 280 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 650 关注
  • Visio
    1 引用 • 2 回帖 • 1 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 684 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 712 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    947 引用 • 1460 回帖 • 1 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    240 引用 • 224 回帖
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 7 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 36 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 566 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    134 引用 • 1127 回帖 • 107 关注