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 文件,如同这个过程的递归。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于