首页 > 其他分享 >二次元MMORPG中的3C实践

二次元MMORPG中的3C实践

时间:2022-08-29 11:45:23浏览次数:63  
标签:跟随 镜头 角色 二次元 摄像机 3C MMORPG 旋转 GO

在研项目:二次元MMORPG移动网游,对标原神、战双帕弥什。

3C,指的gameplay中跟玩家体验密切相关的三个因素,分别是Charactor(角色)、Control(控制)、Camera(摄像机)。

结合实战项目来说一下我的一些经验~

Character

一般玩家在主城中会始终跟随一个固定主角,而在战斗中会有几个角色可切换。

Control

PC端有鼠标和键盘两种输入,键盘WSAD控制行进,也可以用鼠标滑动摇杆控制行进;移动设备只能通过触屏滑动摇杆控制行进。

战斗中:Ai模式下会自动控制角色移动;玩家可滑屏旋转高空镜头;可花瓶选取大招攻击范围和方向。

Camera

主城或战斗中,最基础要实现的摄像机是“跟随相机”,实现方法是在角色GO上绑一个“跟随GO”,摄像机与“跟随GO”之间有一个相对位置和旋转偏移,每帧更新摄像机的位置。

对于主城,基于“跟随相机”,还需要实现滑屏全方位(接近360°)旋转摄像机观察主角,做法是把主角当成球的中心,摄像机绕着球面旋转,旋转角度则可根据滑动偏移量算出

yaw/roll/pitch,再插值移动。

对于战斗,我们会分若干镜头,在unity中通过虚拟相机切换。这些镜头包括:

入场镜头:战斗正式开始前,我方角色和地方角色摆好阵,这时会有一个摄像机从场景远处逐渐移动到侧面并看向双方整体,这个移动的过程目前是用timeline实现的,更灵活的方法应该是可以自动生成,策划可动态配置入场方式。

追背镜头:入场完成后,镜头会插值到“追背镜头”,追背镜头即位置跟着角色背后,且总是望向角色(或角色和攻击目标的中点)。由于有的角色会有快速位移、旋转位置的情况,或者单纯的“跟背”会导致镜头晃动频繁,引起玩家感官不适,于是优化成“跟随怪物与角色连线的延长线上的某点”,而不是总在角色背后。

求攻击目标和角色连线后的旋转角度方法:攻击点-角色 得到方向向量,再根据向量求出旋转角度。

Vector3 angle = Quaternion.LookRotation(_enemy.position - _follow.position).eulerAngles;
transform.eulerAngles = _backLook.Update(transform.eulerAngles, angle);

高空镜头:

相对于追背的另外一种摄像机模式,跟随并以45°角从高空看向地面。分为两种,一种是 总是看向特定角色,另一种是看向战场所有实体的中心点(类似于unity官方的坦克战)。

第二种的实现方法:一算出所有实体综合的中心点;找到离中心点最远的实体;算出半径;由于镜头总是45°,半径的长度即是镜头的高度和z值偏移。

这里有个小技巧,即不要只是加一个摄像机到GO上,否则随着旋转角度变化需要实时计算位置;而是拆分成父子2个GO,父GO负责跟随位置,子GO负责旋转即可。

 

 大招镜头:角色放大招时会切到角色正面特点,并且慢速播放;待播放完以后会切回追背镜头或高空镜头。

胜利镜头:战斗胜利以后,播放某个角色的胜利动作,播放完后才弹出胜利界面。

标签:跟随,镜头,角色,二次元,摄像机,3C,MMORPG,旋转,GO
From: https://www.cnblogs.com/alphaGo/p/16634934.html

相关文章

  • H3C网络设备配置自动备份
    目录H3C网络设备配置自动备份方法一方法二H3C网络设备配置自动备份实验环境:tftpserver:2.0.1.1vac:10.205.129.51方法一使用华三scheduler进行配置自动备份[VAC......
  • P4597 & CF713C 【小根堆贪心】
    P4597序列sequenceCF713CSonyaandProblemWihtoutaLegend用于描述一系列问题类似在一条序列上每次加一或减一,使他的原序列变成一条非降序列,求最小次数的问题。......
  • ubuntu18 : QEMU中新建S3C2440模拟器
    1.下载wgethttp://repo.or.cz/w/qemu/mini2440.git/snapshot/HEAD.tar.gz2.解压tar-zxvfHEAD.tar.gz cdmini2440-HEAD-18b91f23.安装依赖包sudoapt-getinstal......
  • 二次元主题相册 ACG-Album 使用教程
    重要链接准备名称网址Git官网https://git-scm.com/downloadsGitHub官网https://github.com/仓库网址https://github.com/george-chou/acg-albumV......
  • h3c s6800交换机probe命令
    <H3C>sysSystemView:returntoUserViewwithCtrl+Z.[H3C]probe[H3C-probe]?Probeviewcommands:INTEGER<0-1>SwitchNObcmBCM[H3C-p......
  • H3C MSR 5600路由器
    http://www.h3c.com/cn/Service/Document_Software/Document_Center/Routers/Catalog/MSR/MSR_5600/......
  • Codeforces 1713C - Build Permutation
    题意为给出一个长度为n的空数组,数组下标为0至n-1。我们需要在数组中的每个位置上填上合适的数A[i],使得i+A[i]为完全平方数。并且数组最后需为0至n-1的一个排列。......
  • Python小程序(二):巡检H3C网络设备
    Python小程序(二):巡检H3C网络设备读取设备列表或txt文件,自动化巡检H3C设备。importnetmikofromnetmikoimportConnectHandler,NetmikoBaseExceptionimportdatetime,t......
  • 我们为什么喜欢二次元以及为什么二次元不该被轻视
    我们为什么喜欢二次元以及为什么二次元不该被轻视你为啥喜欢看动画片啊?...真的蠢,幼稚到了一个极点的东西......完全是虚构的,不知道为什么这么上头......我相信,很......