Unity3D中实现简单的电影模式框架

游戏中,经常会有这样的需求,即播放一段电影,给玩家更好的体验。比如摄像机朝向某两个NPC,两个NPC在那里交谈之类的。

在用Unity3D制作游戏的过程中,也经常会遇到这样的需求,所以在此花时间搭建了一个简单的电影模式框架,目的在于较方便的构建游戏中需要的电影模式需求。

此框架的构想是这样的:电影由一个个关键帧组成,每个关键帧代表一种电影模式功能,如摄像机的动画,角色的动画等等。此框架中提供了简单的摄像机关键帧。我们在Unity3D中完成所有关键帧的编辑,并且存为电影文件,然后在游戏中就可以直接读取文件进行播放了。下面就简单的介绍一下。

首先打开编辑器,从Movie菜单中选择Create:

随后在Hierarchy中便会出现所创建的Movie对象,并且在此对象上添加了Movie脚本组件:

该脚本有一个Total Time变量和一个Save按钮,Save按钮就是用来保存电影文件的,稍后会说。Total Time就是需要指定的电影的总时长,单位为秒,该变量是用来控制电影的播放结束的。

随后我们就可以添加各种关键帧,此框架中提供了摄像机关键帧,我们就来添加一个摄像机关键帧。首先在场景中创建一个对象,该对象是用来添加关键帧的:

接着选中刚创建的对象,从Movie菜单中选择Add Key Frame -> Camera:

此时选中的对象中就会包含CameraKeyFrame脚本组件:

CameraKeyFrame脚本组件的可编辑功能如下:

Start Time是每个关键帧都会有的数据,指定该关键帧开始执行的时间,单位为秒。

Signature用于标识该关键帧将控制的场景中的对象,当勾选Is Tag时,表示的是给予将控制的场景中的对象的标签,而没有勾选Is Tag时,表示的是将控制的场景中的对象的名称。

Is Draw Path表示是否需要绘制关键中包含的路径点

Path Point Size表示绘制的路径点的大小

Editor按钮也是每个关键帧都会有的,用来打开关键帧编辑窗口

AddPathPointInfo按钮用于添加路径点信息

首先我们要做的就是设置Signature变量,由于我打算控制场景中的MainCamera,所以我设置如下:

然后就可以使用AddPathPointInfo按钮来添加路径点信息了,添加路径点信息实际的工作步骤是这样的:

首先会根据Signature和Is Tag变量来查找相应的GameObject,然后就读取该GameObject的localPosition和localRotation作为路径点信息,这里我们直接添加2个路径点信息。添加完路径点信息后,可以通过Editor按钮打开编辑窗口进行查看和修改:

可以发现,记录的就是指定的GameObject的信息。

这里还有一个Time变量,用于指定变换到该路径点所需的时间,单位为秒。

这里我们为了看效果,把第二个路径点信息修改下:

它代表的含义是当电影开始播放时,当此关键帧执行之后,将消耗0秒从指定的GameObject的位置变换到(0, 0, -3.48),接着将消耗5秒从(0, 0, -3.48)变换到(3.37, 0, -3.48)。旋转量没变化。

由于我们的摄像机关键帧的Start Time为0,也就是当电影一播放就将执行,而我们的摄像机关键帧的数据执行需要消耗5秒,所以电影总时间我们设定为6秒:

然后我们就可以保存我们编辑完的电影了,选择刚刚创建的Movie对象,有一个Start按钮,点击后,选择保存路径文件就可以了:

接着我们可以选择看效果,首先必须进入运行模式,接着就可以单击Movie菜单中的Play项,此时会需要选取要播放的电影文件,选中文件后就可以看效果啦,我们会发现指定的GameObject对象发生了我们先前说明的操作:

除了播放之外,我们也可以载入电影文件进行编辑,选择Movie菜单中的Load项,打开需要编辑的电影文件即可:

我们选择刚才保存的文件,就可以看到所有刚才完成的数据了,就可以在此基础上继续编辑修改:

好了,框架以及摄像机关键帧的使用就是这样,有兴趣的朋友可以去下载源代码查看^-

Unity3D中实现简单的电影模式框架相关推荐

  1. APP自动化简单理解(在python中实现简单的app自动化框架)

    一.app自动化环境搭建 1.安装jdk及配置jdk的环境变量 app底层是c语言,应用层是java,所以需要jdk 2.安装SDK,配置android SDK环境 3.安装模拟器 4.下载安装App ...

  2. Unity3d中最简单物体的旋转移动

    void Awake (){ } //初始化函数,在游戏开始时系统自动调用.一般用来创建变量之类的东西. void Start(){ } //初始化函数,在所有Awake函数运行完之后(一般是这样,但 ...

  3. Java中的简单工厂模式(转)

    Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人 话说:"天地开辟,未有人民,女娲抟土为人."女娲需要用土造出一个个的人,但在女娲造出人之前, ...

  4. rethat安装MySQL多例_Spring框架-Bean作用域中单例模式和多例模式的区别

    Spring框架-Bean作用域中单例模式和多例模式的区别 一.单例模式的特点(当没有指定是单例模式还是多例模式的时候,默认是单例模式): 1.Spring容器创建的时候,对应的类的实例化对象一起被创 ...

  5. Linux加密框架中的算法和算法模式

    参考链接 Linux加密框架中的算法和算法模式(三)_家有一希的博客-CSDN博客 对称算法  14 如上所示,在arc4.c中定义了两个与RC4算法相关的算法实现,分别为arc4和ecb(arc4) ...

  6. python flask框架下登录注册界面_Python的Flask框架中实现简单的登录功能的教程

    Python 的 Flask 框架中实现简单的登录功能的教程 , 登录是各个 web 框架中的基础功能 , 需要的朋友可以参考下 回顾 在前面的系列章节中, 我们创建了一个数据库并且学着用用户和邮件来 ...

  7. 使用Java+SSM框架+JSP开发简单在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户、物品的协同过滤推荐算法 大数据 机器学习 SimpleMovieRecommendOnline

    使用Java+SSM框架+JSP开发简单在线电影推荐网 电影推荐系统 豆瓣电影爬虫 基于用户.物品的协同过滤推荐算法 大数据 机器学习 SimpleMovieRecommendOnline 一.项目简 ...

  8. Unity3D中简单地应用玻璃材质

    最近在学习Unity3D.发现Unity3D中的玻璃效果要用到Shader才能实现.虽然简单学习了一下能看懂Shader的结构了,但要自己写一个实现自己想要的效果的Shader暂时还无能为力.这个要么 ...

  9. Eclipse中使用Hadoop集群模式开发配置及简单程序示例(Windows下)

    Hadoop入门配置系列博客目录一览 1. Eclipse中使用Hadoop伪分布模式开发配置及简单程序示例(Linux下) 2. 使用Hadoop命令行执行jar包详解(生成jar.将文件上传到df ...

最新文章

  1. yii2.0使用ueditior完成上传单张,多张图片,上传视频等操作
  2. python 数据分析学什么-数据分析培训学习多久?都学什么?
  3. Device eth0 does not seem to be present, delaying initialization.转载
  4. 王彪20162321 2016-2017-2 《程序设计与数据结构》第5周学习总结
  5. 商用工程开发中的一些习惯
  6. 面向对象编程的两顶帽子
  7. html关机命令,自动关机命令 定时关机命令
  8. 打单软件显示服务器错误是怎么回事,网络版仓库进销存,出入库存管理软件,送货单打印等连接不上解决【新版】...
  9. 程序员也要学英语——限定词、形容词和副词
  10. linux系统双显卡切换显卡驱动,Ubuntu安装并切换Nvidia双显卡驱动的方法
  11. 可以学习相关框架【转:https://testerhome.com/topics/6283】
  12. SSM网页聊天室游戏平台
  13. 破解Linux主机管理员的密码
  14. 硅谷的程序员, 入职第一天都在干什么?
  15. DelayQueue,网吧记时
  16. IDEA自动重写的equals方法分析
  17. 安装及设置MASM32 SDK
  18. 微信浏览器中,aler弹框不显示域名
  19. 我碌碌无为的研究生生活
  20. InPaint V7.0

热门文章

  1. CentOS 上最佳的第三方仓库
  2. 通过两道一年级数学题反思自己
  3. Nlog 使用教程(C#)
  4. office即点即用安装程序遇到问题 原因是你的计算机安装了一下基于 Windows installer的office程序
  5. 07寄语:写在我26岁的生日的祝福和愿望
  6. logging的用法
  7. golang HTTP Post请求
  8. windows 安装免费版VMware workstation
  9. 树莓派设置VNC server 远程桌面
  10. linux如何美化桌面图标,桌面应用|使用 GNOME 优化工具自定义 Linux 桌面的 10 种方法...