骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

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

[经验与教程] 换皮或马甲思维的综合应用-专篇目录(未写完)

[复制链接]

202

主题

984

回帖

986

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
2893127
第纳尔
14521
精华
0
互助
90
荣誉
18
贡献
325
魅力
775
注册时间
2017-11-5
鲜花(428) 鸡蛋(0)
发表于 2022-10-27 10:23:45 | 显示全部楼层 |阅读模式
本帖最后由 vegetto 于 2023-1-6 14:36 编辑

前言:说到换皮,我们很多人是鄙夷一些换皮mod的,认为换皮是贬义,实则不然,换皮是很多比较古老有引擎限制的游戏想要玩出花样的重要思想,比如魔兽争霸里就有一个很关键的思想叫做马甲思想,也是讲的这个意思。那换皮到底有多少种换法呢,马甲有多少种穿法呢?
这个专篇我主要就是讲讲这个,会分几个小节和实例应用。
首先换皮字面意思就是换了一层衣服,马甲字面意思就是穿上了一层叫马甲的衣服。
为什么以前换皮略带贬义,就是玩家明显可以看出你的内在和另外一个熟知的系统是相似或一致的,作者就是换了一种外表。而换皮思想要进阶,你换的皮就不仅仅是外表的皮,也可以是功能和属性的外皮,或者是局部和整体的外套帮你辅助一下“驱寒御暖”,为某一个做某功能有局限的系统披上另一个系统功能的外衣和马甲。
举例我目前写的运动篇和碰撞篇已经涉及的(未写完),利用场景物运动辅助玩家、镜头、粒子的运动或储存定位坐标指导其他系统以此定位为目标等等。这个就是将玩家、镜头、粒子为表,给他们披上了一个为他们记录位置pos和强化运动控制效果的功能“外衣”马甲。


所以,你们想实现一些不可思议的功能时觉得某个系统的研究对象存在一定限制,千万不要只在这个系统里考虑问题,把研究对象局限于agent是人,prop和item是物这个观念,要以我们最终想要实现的形体和内在两种效果的结合为最终目的和出发点。
首先确认一个合理的研究对象(agent人,场景物prop,粒子、item等等),然后判断该研究对象在模型动画等形体方面和程序代码控制事件各有什么局限,在研究对象所属的agent prop等类别的开头的op里是否可以或轻松模拟我们想要的效果,如果模拟很困难,那考虑是否可以将多个系统的形体功能和内在属性控制等功能结合。

举个最简单的粒子,比如飞机坦克,有的人是马改的,这个就是马的内在运动等机制套了坦克的外形的皮,有的人是用场景物改,这个分类就多了,比如你的移动行为可以逻辑重构,或者简单点可以让驾驶员的ai行为指导你,这就像给场景物的外皮又披上了agent ai行为的功能“马甲”。

这里是本篇章的目录。我下面先例举一些我的应用案例简单介绍和马甲思想的联系,具体帖子代码等操作实例后续在其他帖子写完汇总附在下面目标后面:


1.球类运动的模拟:
我用一个mod实现了骑砍的篮球、足球、网球、和台球模式(mod下载贴https://bbs.mountblade.com.cn/thread-2069525-1-1.html。 这个其实主要涉及两个突破点就可以轻松做这种模式:
突破点(1)如何修改球员ai的移动等行为。
突破点(2)球这个物品该使用哪个系统作为研究对象。
答(1):首先ai利用的就是场景物的定位坐标位置的作用,事先在中场、三分、篮筐,球筐、网球的中间屏障,场地长方形的四个角点等等关键位置放置一个没有模型形体的场景物sp,然后你看,球靠近篮筐的定位场景物就可以判断投篮事件,通过判断场地四个边角点连线的与球的前后左右方位关系便可以判断出界事件,等等。
甚至由于我们把这些关键点用场景物固定了,所以可以方便的以这些定位场景物作目标圆心,让AI以这些点作徘徊等随机运动,使得AI不是耿直的固定走但是又体现一定随机而明确的目标性。
这就叫给抽象的特征点位置披上具体场景物定位特性的功能外衣并给予其可能动态调整移动位置的便利控制能力并节省了在编辑模式记录坐标点然后开场xyz定义坐标值这种费力的做法。
答(2):对于篮球足球网球台球,我对这些球的定义其实采用了不同系统的研究对象,比如篮球足球我用了场景物scene prop,但是网球台球其实是一个agent人伪装的。
为什么要区别对待呢,因为篮球和足球存在相似性,很像两个军队的战场对抗,但是需要抢东西到自己的大本营,加上篮球和足球在人的控球和射出时轨迹比较多样且需要一定平滑度,所以以场景物这种既可以定义物体外形又可以灵活控制位移的系统研究起来会更方便。
而网球和台球采用的是人来伪装,因为网球和台球基本不存在球员人体的近身对抗,关键在于对球的精准打击产生的单次且简单的运动反应(即根据打击方向形成的直线和抛物线运动加上反弹),而我们这时候考虑到可以利用agent自身的打击判断功能,来快速判断球的受击buff,再根据打击方向和定位场景物构造的一些关键场地位置点,判断球应该以什么角度向什么方向抛物线或直线运动,并且还需要碰撞检测相关知识,比如网球碰到网的反弹。但是这个其实也可以用场景物prop做球来考虑,来综合考虑下来,由于网球打法较篮球运动简单只需简易判断受击的特性,所以考虑给agent人之内在(利用自身运动和受击类操作)换上网球球体之外皮。当然这个系统操作的关键还要看我的飞行移动专篇讲解的https://bbs.mountblade.com.cn/thread-2094109-1-1.html知识,掌握agent set no dynamic这个代码来使得agent人具有3d空间移动的能力,让我们摆脱场景物直接操作agent人的飞行类位移行为。


你们仔细品我上面这两句话:
1.给【抽象的特征点位置】披上【具体场景物定位特性的功能外衣】并给予其可能动态调整移动位置的便利控制能力并节省了在编辑模式记录坐标点然后开场xyz定义坐标值这种费力的做法。
2.给【agent人之内在】(利用自身运动和受击类操作)换上【网球球体之外皮】。
所以以球类运动的实现作为开篇讲解,告诉你们mod实现功能的最终境界就是 人可人,人非人,物可物,物非物,人可物,物可人,抽象可具体,具体可抽象。一切从实现我们想要的最终效果为出发不择一切手段去促成它表达应有的外在特征和内在特性。


未完待续。。。。。。。。。。。。。。。。。。。。







评分

参与人数 1第纳尔 +20 互助 +1 魅力 +20 收起 理由
Aomine Daiki + 20 + 1 + 20 文章不错,继续努力!

查看全部评分

202

主题

984

回帖

986

积分

子爵[版主]

Rank: 7Rank: 7Rank: 7

UID
2893127
第纳尔
14521
精华
0
互助
90
荣誉
18
贡献
325
魅力
775
注册时间
2017-11-5
鲜花(428) 鸡蛋(0)
 楼主| 发表于 2022-10-27 10:32:46 | 显示全部楼层
本帖最后由 vegetto 于 2023-1-6 14:35 编辑



未完待续。。。。。。。。。。。。。。。。。。。。






鲜花鸡蛋

传说的骑士  在2022-11-4 21:45  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

0

主题

53

回帖

21

积分

随仆

Rank: 1

UID
3110714
第纳尔
454
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2019-10-8
鲜花(6) 鸡蛋(0)
发表于 2022-11-4 21:45:34 | 显示全部楼层
prop给的操作太多了,唯一不足的就是没有针对prop相关的AI判断,例如可破坏的场景物,AI不会主动去破坏,总得绕一下
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

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

GMT+8, 2024-5-14 02:18 , Processed in 0.106978 second(s), 24 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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