8. 读取特效

本贴最后更新于 2145 天前,其中的信息可能已经时异事殊

效果:

在 p0.pose 里的一些动画里都会有 EffectID 项。这个项指定了,当播放此动画的第一帧的时候会播放一个特效
特效也就是 sfx 目录下的后缀为.ef 的文件

首先,游戏里的特效是分类型的,全部类型有
BOX 立体模型
AUDIO 声音
PLANE 平面特效
DONUT 圆环特效
MODEL 物品特效,读取 des 文件作为模型,类似雪人套装和手机就这么弄得
SPHERE 球体特效
PARTICLE 粒子特效
CYLINDER 圆柱模型、
BILLBOARD 公告板特效
FLAG 一般用来挂载 受击打位置的特效显示,流血刀光一类
这些参考了网上查的资料

一般一个特效是.ef 文件,一个 ef 内部包含数个小的特效,有粒子,平面,立方体,圆球,圆柱(顶半径为 0 则圆锥都是 Cylinder),圆环,声音,广告牌之类
这些特效都有一个特点,就是他们是用参数指定给程序,让程序即时绘制的,这点很重要,之前准备对每个类型的资源做个标准大小,然后按照他设置的尺寸缩放,之后发觉无论如何,经过每一帧的缩放后,总是位置不对
在 unity 里习惯了指定预设完事,而要还原流星的特效就必须代码生成 Plane ,Sphere, Cylinder, Box 的网格,这个搞定之后
特效里有部分参数,设置了特效跟随着谁一起移动,又设置了跟随谁一起旋转,最后就是最麻烦的,因为一个特效都有很多帧,帧里会设置位置,那么这个位置,之前还原的时候,一直都是世界坐标
一般一个特效会存在 1-2 个骨骼,1 个用来跟随移动,1 个用来相对移动, 就是根据跟随物体的自身坐标系空间,来进行一个移动,这个移动是一个差值,也就是其中一个骨骼指定的物体的某个轴方向上移动动画帧设置的距离,所以之前坐标一直不对
而现在基本把流星的特效全部还原了。

CYLINDER 圆柱体特效,会根据设定的参数生成指定大小的圆柱模型,而不是直接拿美术模型来用
在使用匕首上上 A 时,特效在帧动画参数结束后,会有一些额外参数
0, 3, 30,40,90,450 理解为圆柱体,头一个 0 是程序读 ef 文件算长度的,后面的顶部半径(3) 底部半径(30),高度 40,另外 90,450 这两个参数不明白什么意思,但是改了也会引起特效变化
而匕首后 A 时,特效的三个参数变为
0,0,5 ,5,90,450 同样的意思,因为匕首后 A 体现刺的感觉,所以圆柱体特效尖端很细(在这里为 0 表示成为圆锥体)。这个顶部 0,底部 5,高度 5 的圆锥,经过特效的缩放参数,和动画帧中的四元数设置,让特效尖端保持与匕首尖端一致位置
所以可以看到很多圆柱体特效,但是特效样子都不一样,这就是因为这个网格模型是经过参数生成的,而不是固定的一个美术资源。

但是这些值里,单位应该是不一致的,顶部半径和底部半径,可能都是用实际米,高度,填 5 跟角色差不多高,而角色高度 36 左右,这点还需验证
现在代码里是以单位为米计算的。

特效的生命周期
特效一般会从 pose 里调用,动作播放的第一帧,就会播放特效,而特效的最后一帧的时刻就是删除时刻

特效与动作的配合
类似匕首 pose259 动作,播放特效时会产生一个攻击盒,这个盒子会随着动作一起移动,然后在 259 的攻击帧内开启攻击盒,如果动作播放的速率,与特效不匹配,那么可能攻击盒会在动作播放完毕前就被删除,所以要让动作完全按照制作时的 30 帧/S 来算插值
对接到 unity 的帧率上,比如如果 unity 是 60fps,那么原版动作像被加速运行一样,必须在 update 里重新计算动作缩放比
在 unity 里 QualitySetting 里 vsyncCount 的值决定了同步方式
Dont sync 表示不垂直同步,这种情况是尽高帧率跑。
Every V Blank 每 1 次垂直扫描归位一次同步 PC 上尽量以 60 帧/S 跑
Every Second V Blank 每 2 次垂直扫描归位一次同步 PC 表示尽量以 30 帧/S 跑

感觉跟时间有关系的东西,都麻烦的很,在 3 种同步方式下,我都不知道 Update 在 1 秒里被调用了多少次
以下是在 pc 上测试 unity 5.4.1f1 的 update 调用.
不垂直同步下,数值不稳定,认为没有什么意义 大部分数值比开了同步要大的多,一般在 90-105 左右 time.deltatime 不稳定数值浮动大
1 倍垂直同步 1 秒约调用 update 50 次 time.deltatime = 0.016-0.017
2 倍垂直同步 1 秒约调用 update 30 次 time.deltatime = 0.0333 特殊情况下 会存在 0 time.deltatime = 0.005
这样看来,用 update 里每一帧时间的增量来算动作插值应该是可以的,只要避免跳帧。

现在就来修改动画播放受垂直同步帧率影响的问题。
发觉好像是显卡问题,有时候像鬼畜一样,帧率嗖嗖的起来了,有时候又很正常,不清楚这个帧率受什么影响
一个好游戏,帧率稳定非常关键,而且帧率过高并不全是好处,到了人眼识别范围外,就没有必要了,费电不说,
像原版流星 fps 高了之后,跳不起来,这算是个 bug 吧.

相关帖子

2 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    版主Winson您好, 想請教一下; 原版流星飛行類武器是預設無法加載於其飛行時的武器首端和末端嗎 ? 原先打算把光球特效light.ifl加載於飛行中的飛輪上, 跟飛輪一起移動, 做出七龍珠飲茶操氣彈的效果:

    https://www.google.com.hk/search?q=%E6%93%8D%E6%B0%A3%E5%BD%83&client=firefox-b&dcr=0&source=lnms&tbm=isch&sa=X&ved=0ahUKEwj9hceMjaPYAhVFI5QKHYboCTsQ_AUICigB&biw=1280&bih=606#imgdii=HlVp111IPl0VlM:&imgrc=tzJ4J76NbzEfqM:

    但光球結果停留在右手, 飛輪卻自顧自地飛出去攻擊敵人:scream: .

  • someone

    谷歌中国访问不了啊。飞行类武器应该都是代码临时生成的物件,如果是飞镖应该是有一个重力模拟类似抛物线过程的吧,轨迹中碰到敌人就算伤害,如果碰到场景物应该会销毁掉,火枪可能是用一条射线碰到的首个障碍物处播放一个特效,然后看射线是否碰到敌人了来算伤害的吧,飞轮可能是朝攻击目标算了轨迹曲线之类的,轨迹去的路上碰到第一个敌人开始返回,回的路上所有碰到的人全部受击。飞轮比较特殊的。现在这些飞行武器我也还没实现
    你要做的这种效果,可以新增个特效A,按照在角色面前10码,20码,30码,设置几个动画帧,把时间什么设置好,然后再增加其他特效,以A作为定位点,你可以看下那个飞轮的地面大招那个带毒的旋风,和那个吸心都是类似此做法做的,那个旋风的轨迹基本就是这样做的,只是他带的是旋转。所以看到的是绕角色转圈圈

推荐标签 标签

  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 559 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 164 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 159 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 7 关注
  • 电影

    这是一个不能说的秘密。

    121 引用 • 604 回帖 • 1 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 464 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 535 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 161 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 15 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 683 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 53 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    288 引用 • 734 回帖 • 2 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 159 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 410 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1114 回帖 • 125 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1737 回帖 • 1 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖 • 3 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 1 关注
  • 自由行
    4 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 430 回帖 • 1 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    171 引用 • 512 回帖