骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 1741|回复: 10

[功能与代码] ai能用的骑砍战团乳摇功能,类似物理服装效果的实现

[复制链接]

212

主题

1032

回帖

1048

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
2893127
第纳尔
14847
精华
0
互助
93
荣誉
21
贡献
325
魅力
1382
注册时间
2017-11-5
鲜花(431) 鸡蛋(0)
发表于 2024-8-3 15:11:36 | 显示全部楼层 |阅读模式
本帖最后由 vegetto 于 2024-8-3 16:35 编辑

前言:要想在骑砍战团做乳摇,首先切入点应该是顶点动画和着色器,但是顶点动画针对身体这种关联部位在人物运动的时候保持不了完美的契合度,动作幅度过大就会有脱离感,而着色器毕竟达不到动画程度的效果。
故,退而求其次,我们可以采用类似顶点动画而非顶点动画的equip方式切换装备同类但不同姿态物品的方法,也就是先做出衣服带乳摇的顶点动画效果,然后导入骑砍绑骨后,分解帧,因为brf里分解各帧姿态模型会自动命名成顶点动画模型名称+frame_帧数数字这种命名方式,则全部选中所有各帧模型后集中重命名,再将这个模型名称预先设置在item_kinds1形成连续序号的多个衣服模型,顺便可以将这个模板保留下来,下次换其他衣服时,只需要再替换公共名称,保留序号后缀,一劳永逸。


视频效果



准备工作,在item_kinds1文件中注册ID名称及引用模型名称为proprole0-proprole74共75个序号及位置连续的item物品。
然后
MT中需要使用的场景中加入如下代码,  (0.000000, 0.000000, 0.000000, 条件


(assign, ":var_301", "itm_proprole0"),                      #定义该带动画衣服的首帧数衣服模型的itm ID
(assign, ":var_302", 74),                                           #定义衣服有多少帧数,74+1=75
(assign, ":var_303", 1),                                       #控制帧数播放速度,即不同帧数的itm装备equip切换速度
(store_mul, ":var_304", ":var_302", ":var_303"),
(store_sub, ":var_305", ":var_304", 1),
(try_for_agents, ":var_0"),
    (agent_is_alive, ":var_0"),
    (agent_is_human, ":var_0"),
    (try_begin),
        (agent_get_slot, ":var_1", ":var_0", 600),
        (store_div, ":var_2", ":var_1", ":var_303"),
        (store_mod, ":var_3", ":var_1", ":var_303"),
        (try_begin),
            (agent_slot_eq, ":var_0", 601, 0),   #slot600表示当前处于衣服的多少帧数位置的itm模型(实际是帧数x播速),601slot判断是正向播放还是反向播放,因为我目前做的参考衣服模型是胸和头发一次性下坠,所以要正常循环动画,就要正方向播放一次反方向再播放一次,循环往复
            (is_between, ":var_1", 0, ":var_304"),
            (store_add, ":var_4", ":var_1", 1),
            (agent_set_slot, ":var_0", 600, ":var_4"),
        (else_try),
            (agent_slot_eq, ":var_0", 601, 0),
            (eq, ":var_1", ":var_304"),
            (agent_set_slot, ":var_0", 601, 1),
            (agent_set_slot, ":var_0", 600, ":var_305"),
        (else_try),
            (agent_slot_eq, ":var_0", 601, 1),
            (is_between, ":var_1", 1, ":var_304"),
            (store_sub, ":var_4", ":var_1", 1),
            (agent_set_slot, ":var_0", 600, ":var_4"),
        (else_try),
            (eq, ":var_1", 0),
            (agent_slot_eq, ":var_0", 601, 1),
            (agent_set_slot, ":var_0", 601, 0),
        (try_end),
        (try_begin),
            (eq, ":var_3", 0),
            (store_add, ":var_5", ":var_301", ":var_2"),
            (try_for_range, ":var_68", 4, 8),                                           #取消其他非武器装备及衣服装备
                (agent_get_item_slot, ":var_69", ":var_0", ":var_68"),
                (neg|eq, ":var_69", -1),
                (neg|eq, ":var_69", ":var_5"),
                (agent_unequip_item, ":var_0", ":var_69"),
            (try_end),
            (agent_equip_item, ":var_0", ":var_5"),                          #切换当前播放帧数的衣服装备
        (try_end),
    (try_end),
(try_end),



######模型我就不分享了,因为做的匆忙,正常的战团绑骨绑的很糟糕,贴图也没好好贴,主要就是表达下这种类型功能的可能性。
然后没加条件筛选,针对所有场景里的活人,实际上要判断兵种id作为条件等等。

#####然后至于乳摇的动画怎么做方便的,你们可以考虑下MMD,MMD很多时候经常对胸部绑骨,然后MMD插件自动可以BUILD出基本的乳摇和物理服装、头发海飞丝动画。

#####这个功能的难点在哪呢:1、动画的制作处理;2、绑骨,因为女子四肢太纤细,绑不好就和我视频一样。
而这个功能的最大缺陷在哪呢:比如,我这75个衣服模型为一个类型的兵种准备的,占了100MB的空间。


#####功能延申一下,可以用于带动画的翅膀等等一切和身体契合的配件动态效果的制作,但是要注意的还是一点,就是绑骨要细致,不能让无关的骨骼过多的牵引像马尾辫、尾巴、翅膀这些身体突出的部件,这样骨骼动画和帧动画共同组合的效果就会比较差。
视频示例


#####功能再延申一下,你可以做表情系统,嘴唇说话








评分

参与人数 1第纳尔 +11 互助 +3 魅力 +5 收起 理由
幼稚园殺手 + 11 + 3 + 5 文章不错,继续努力!

查看全部评分

4

主题

27

回帖

9

积分

平民

Rank: 1

UID
3622284
第纳尔
15
精华
0
互助
0
荣誉
0
贡献
0
魅力
1
注册时间
2024-2-21
鲜花(3) 鸡蛋(0)
发表于 2024-8-4 08:52:12 来自手机 | 显示全部楼层
楼主牛逼来自: Android客户端

26

主题

804

回帖

399

积分

骑士

民间工匠

Rank: 4Rank: 4

UID
1115705
第纳尔
4062
精华
0
互助
26
荣誉
2
贡献
0
魅力
30
注册时间
2012-12-13
鲜花(235) 鸡蛋(10)
发表于 2024-8-4 14:45:32 | 显示全部楼层
你这是在造福lsp吗?

3

主题

147

回帖

125

积分

见习骑士

Rank: 3

UID
3500189
第纳尔
830
精华
0
互助
14
荣誉
1
贡献
10
魅力
235
注册时间
2023-3-30
鲜花(50) 鸡蛋(0)
发表于 2024-8-4 20:38:40 | 显示全部楼层
创建一个个item的步骤换成cur_item_add_mesh应该也行

212

主题

1032

回帖

1048

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
2893127
第纳尔
14847
精华
0
互助
93
荣誉
21
贡献
325
魅力
1382
注册时间
2017-11-5
鲜花(431) 鸡蛋(0)
 楼主| 发表于 2024-8-4 21:46:47 | 显示全部楼层
本帖最后由 vegetto 于 2024-8-5 08:50 编辑
龙静颜 发表于 2024-8-4 20:38
创建一个个item的步骤换成cur_item_add_mesh应该也行

这个方法我清楚和想过,不过要看模型的形式。像精细的女性模型就如mmd那样一个人物十几个贴图和mesh,加动画后身体肌肤的动作形变都是联动的,所以这种情况并不适合add mesh(因为骑砍所有那几个能控制mesh部件的操作是受部件仅有效控制9个上限限制的)。

如把模型mesh UV贴图合并一个处理一下,倒是可以往这个方向想。

PS:我用翅膀那个按cur item add mesh写过了,效果算比较平滑的,后面再补充上去做个对比



27

主题

218

回帖

259

积分

见习骑士

Rank: 3

UID
3225805
第纳尔
1483
精华
0
互助
37
荣誉
0
贡献
0
魅力
256
注册时间
2021-3-14
鲜花(48) 鸡蛋(0)
发表于 2024-8-4 22:17:40 | 显示全部楼层
好家伙 我直呼好家伙,乳摇都研究了

46

主题

627

回帖

492

积分

骑士

Rank: 4Rank: 4

UID
3398051
第纳尔
1841
精华
0
互助
48
荣誉
5
贡献
10
魅力
341
注册时间
2022-8-13
鲜花(57) 鸡蛋(0)
发表于 2024-8-5 14:48:30 | 显示全部楼层
效果有点搞啊

3

主题

147

回帖

125

积分

见习骑士

Rank: 3

UID
3500189
第纳尔
830
精华
0
互助
14
荣誉
1
贡献
10
魅力
235
注册时间
2023-3-30
鲜花(50) 鸡蛋(0)
发表于 2024-8-5 18:42:39 | 显示全部楼层
vegetto 发表于 2024-8-4 21:46
这个方法我清楚和想过,不过要看模型的形式。像精细的女性模型就如mmd那样一个人物十几个贴图和mesh,加动 ...

研究透彻

6

主题

157

回帖

84

积分

子爵[版主]

自由骑士
联机ID:老六

Rank: 7Rank: 7Rank: 7

UID
117173
第纳尔
1103
精华
0
互助
5
荣誉
1
贡献
50
魅力
61
注册时间
2009-2-25

舰长勋章骑砍中文站APP会员勋章骑砍中文百科会员勋章原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章汉匈决战正版勋章霸主正版勋章骑士美德之慷慨勋章杰出贵宾勋章元老骑士勋章衣谷会员勋章衣谷首次众筹勋章

鲜花(9) 鸡蛋(0)
发表于 2024-8-5 20:46:35 来自手机 | 显示全部楼层
控制好尺度,咳咳。。。来自: Android客户端

46

主题

627

回帖

492

积分

骑士

Rank: 4Rank: 4

UID
3398051
第纳尔
1841
精华
0
互助
48
荣誉
5
贡献
10
魅力
341
注册时间
2022-8-13
鲜花(57) 鸡蛋(0)
发表于 2024-8-6 22:06:57 | 显示全部楼层
其实加两条骨骼绑定乳,设置ragdoll也行

8

主题

57

回帖

20

积分

随仆

Rank: 1

UID
3093752
第纳尔
681
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2019-8-6
鲜花(3) 鸡蛋(0)
发表于 2024-8-20 15:12:22 | 显示全部楼层
阿?什么玩意?怎么nb的吗?
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-11-19 12:21 , Processed in 0.147469 second(s), 35 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表