在骑砍尝试“如何在3d游戏里玩一个2d拳皇人物”的感想

(首先本文半月前在我的知乎和中文站发过一次,不过感觉bilibili的小伙伴们对我的骑砍拳皇视频某些概念不是很理解,就发一遍b站,解释一下相关机理和想法)
前段时间做了下骑砍版的蔡徐坤后

,想到之前本来一直有个想法想试试在骑砍里操作一下2d拳皇人物,但看了下拳皇一个动作分解出来二三十帧图片就没心情做了。这段时间突然有了一两天空闲就把这个想法做着玩了。
初步效果见下视频,做的很随意,效果一般般
bilibili视频:

下文将对上面这个拳皇视频的设定做出粗略解释:
如何在一个3d游戏里玩一个2d的人物。首先要相信这个操作可以实现,其次要相信骑砍也可以实现这个操作。想要做出首先要从这几点考虑:
1.模型设定:游戏里2d的图片有的游戏里可以认为他是一张位图,有的可以看作或就是一个带了一面贴图的片面模型而已(比如红警里一切事物看着都像图片一样,其实红警里面的人物战车房子有的是动态位图效果有的是3d模型,所以3d模型也能表现出2d的视觉效果)。所以与正常的3d游戏的模型相比,前者我们在游戏里只能看模型的一个面并且正视这个面,而后者我们可以从各种角度看模型的不同的许多面的组合。所以显而易见,2d人物模型必须保证仅有的有贴图的面在正常的3d人物行为操作时始终保持与游戏摄像机垂直(即玩家视角),才能始终在3d游戏世界里看到且正视2d人物的全貌,否则老看见纸片缝隙状或就像把书页侧着看一样,在3d世界里操作2d人物体验就不会太好,就像你把fps游戏镜头转个几十度并保持这个角度操作一样,就会受操作习惯影响不适应。
2.移动等行为(animation/material/PROP):保证第1点2d人物模型始终与镜头垂直后,移动等人物行为可以按照正常的基于3d模型游戏人物来编写,空间任意角度拐弯均可。其中,由于2d游戏里一般默认人物左移为后退,右移为前进,而上下移动(比如闪客快打)与左右移动的动画是一致的,所以也可以这么改正常设定,将wasd重新定义为d前进,a后退,ws在镜头法线法线侧移(只需操作说明里说明一番,让玩家接受这个说法形成新的操作习惯即可,很多游戏的通用做法让我们习惯了正常游戏的镜头设置,其实如果把玩家镜头架设在人物侧面,也不是不行,比如日本很多模拟器3d格斗游戏镜头就不是像fps一样针对人物后脑勺或侧偏一点,差不多在偏离了45度,为什么这么做,因为是格斗游戏要重点给玩家展示人物的酷炫动作和面前的打击,但又是3d人物3d格斗,要保证通畅视角和玩家操作习惯,所以刚开始你会觉得这种游戏按w像是斜着前进,但习惯了那就是前进。所以我现在只是调整wasd的方向概念以适应2d人物只能一张侧身图片出现3d世界的情况,这时候我们就要改变游戏心理习惯去人物此时的顺镜头人物右移实为前移,鼠标旋转晃动改变人物转向设置不变,因为通常镜头/人眼的空间转动,对身体其他的点是会同步相对转动的,这就是3d骑砍玩2d人物要适应的新的操作习惯)
3.人物动画(animation/material/PROP):虽然骑砍不直接支持动态位图,但是2d还是3d的动画都可以看作模型(贴图)随时间帧的变化,所以可以用代码强行表达这个模型(贴图)随时间帧的变化这个事件,然后就像正常的游戏引擎一样如何用代码将动画与动作事件联系起来去编写,只不过多了需要不时调用“模型(贴图)随时间帧的变化事件”的步骤而已。(相关效果还可以类比我以前的骑砍手机看短片或电视机功能

)
4.被打击区域(hitbox):就拿拳皇来说,如果用一个与人物轮廓相切的矩形把人物套住,其实矩形余不出多少空隙,所以可以把打击面设定成一个立方体,人物平面法线方向的宽度放小一点,避免看上去明显劈到空气也判定伤害。(上面视频打击区域控制的就比较僵,以后有时间改改)
5.打击区域(hitbox):3d的人物如果引擎不支持骨骼点的坐标获取,肢体在空间随意角度扭转没有一个合适的参考系是很难强行算出大致的轨迹的,但2d的人物就不一样了,因为模型只有一个面,所以这个面上选定了一个模型位置点(一般是该矩形面的底边中点)后,一个相对的二维坐标系就可以确定了,然后每个动作较少的帧数,不难估算出手的打击区域,哪怕拟合个过肩摔的轨迹。
6.为什么不采用3d模型制作2d人物:因为3d游戏镜头各种角度转动,所以3d的多面模型无法保证每个角度看到的都是一个没有瑕疵的2d人物全貌,比如我往期视频做了一个马里奥,

表面是2d风格的马里奥的3d模型,但很多角度看过去就会看到模型上有很多从纸片缝看一样的效果,因为这个马里奥3d模型有多个纸片面构成,那这样就不好看了。
7.为什么不利用骑砍的界面系统(presentation):界面图片由于距离游戏镜头位置恒定,体现3d空间移动比较突兀,空间转弯角度处理不精细,空间打击区域难以计算,最重要的是难以体现与其他物体或人物的在相对位移时的局部或全部遮挡(比如游戏里老妇人在八神庵面前经过对八神庵图片产生的遮挡变化,就是骑砍的presentation系统做不到的)。
-------分割线-------
就这个我谈谈一些类似的现象,比如b站上很多up会将一些动漫或其他真实人物的表情p到某个时期的热点人物(如回家的诱惑的李云龙脸ai换脸),还有也会将其他游戏的元素嫁接到其他游戏(mugen承包的六承恩蔡徐坤的格斗),其中,2d的元素放到3d世界中很多up采用的是P图或视频剪辑特效。其实以游戏程序也能达到这个效果。优劣区别是前者可以很方便快捷的合成图像(此处快捷方便是相比于引擎不直接支持动图的游戏来说),但后期修改和效果的自由性就不如后者了,后者以程序操作,很多效果动作因为可以自由操作随时录制,所以自由度很高,效果不满意可以重新自己“排练排练剧本”。
再谈谈,由于工作会接触bim,bim这个工程软件其实就像一个游戏引擎一样,把工程项目3d场景化,会利用模型碰撞判定判断一下施工环境等等,有些操作在编游戏也会遇到类似的。所以bim其实可以当游戏玩嘛,只是不太好玩。再举例execl,最初版本是内置了一个小汽车游戏的,以前好像还有人做了Excel版的英雄联盟。
然后谈谈鬼畜,是bilibili视频的支柱题材了。其实游戏程序也可以造成鬼畜效果,在玩一些游戏和自己编写骑砍的一些东西的时候,遇到有的游戏动作按键处理比较僵,多次快速同一个键不等这个动作完成的时候,人物动作和音效就会呈现鬼畜的效果。
所以有些工具不必纠结它身上的标签,在乎别人说它是什么工具,该用来做什么,只能用来做什么,放开想象力的枷锁,玩嗨一点。