unity vr是加一个摄像机就行吗_梦工厂和皮克斯员工创办的Baobab谈互动叙事:传统动画与VR动画的探索...

ACGN洞察

访问三文娱网站3wyu.com查看产业必读文章

Baobab工程师谈VR动画,以获得艾美奖和安妮奖的作品为例,介绍在跨媒体平台提升动画的质量、交互性和故事性。

上个周末,Unite Shanghai 2019 在上海国际会议中心举行,来自世界各地的多位技术和创意大牛进行了分享。

VR动画工作室Baobab的软件工程师Mike Solovykh,以《Crow: The Legend》为例,介绍了在跨媒体平台提升动画质量、交互性和故事性的工具、制作流程和创作技巧。

《Crow: The Legend》由Baobab创始人、前梦工厂《马达加斯加》导演 Eric Darnell 编写执导,并获得首届安妮奖最佳VR制作奖和2项艾美,还获得其他4项艾美奖的提名。Baobab曾获得3100万美金投资。

以下是分享节选,推荐给对Unity工具有所研究的读者看看不推荐对技术缺少了解的读者浏览

Mike  Solovykh:大家好,我叫Mike,我来自于Baobab的软件工程师,我们是在旧金山湾区,非常高兴来到这里跟大家分享我们的项目,以及如何创建我们的项目。

我们希望做到对文化遗产忠实保持的方式来讲故事。我们希望讲述在乌鸦之中的美洲原住民的故事,当然在这里面也包括像自我的牺牲、个人的发展。以及一百多年历史的美洲原住民他们的故事。我们非常有幸有一位84岁的美国原住民部落的长老来讲述这个故事。

《Crow: The Legend》

在《Crow: The Legend》这一动画中,我们的想法是两步,一个是创造沉浸式、互动式VR的体验,让玩家感觉成为故事的一部分,同时它要在头盔上进行。另外是以电影制作的方法实现电影照明和镜头效果,这是希望创建一种典型的2D动画电影的体验。那它也是我们Unity平台上做出来的,另外我们的预算也比较紧张,所以希望重复使用相关的资源。

首先来看看VR。

为什么VR非常特别,首先你可以与真实的世界结合在一起,第二点你可以沉浸在整个环境当中,往周围看,所看到的都是游戏的环境。另外就是你可以是有自己的角色,并且是去控制这一角色。

实际上每个人在生活中不会有太多的机会成为超级英雄,不可能说早上起来感觉自己遇到了外星人,但是如果我们使用VR的话,我们是可以将人类的自然活动和游戏中的虚拟场景结合在一起,这样的话,可以创造一种非常奇妙的体验。所以我觉得在这样的过程中,让自己成为游戏中的一员,并且是能激发出更多的灵感,这是我们Baobab希望能够创造的。

我们希望通过互动建立联动,我们希望让玩家与周围创造的世界建立紧密的联系,我们也希望实时的VR是能够让玩家认同,能够让玩家在所在的角色环境中存在,并且是一个重要的互动部分,我们也可以与角色建立起可信的关系。而且感觉到这些角色是活着的,在《Crow: The Legend》上我们对于交互进行了大量的研究,我们希望让它轻松自然,也不希望说中间有很多的文本告诉用户做什么,这样让他们没有那么沉浸在环境中。

这一部分我们可以看到这里是这个过程中包括一些动作,比如说招手、挥手的时候触发到小行星的时候,这时候背景音乐都会加入到基本的音轨里面。这里有一些活动,如果说用户不想参与,可以不用按任何的按纽。如果说是一个用户的测试,那这个过程中我们采用一种基于音乐导体运动的节奏,让你感觉到指挥宇宙中的音乐。同时你的行动是有意义的,你的行动可以帮助乌鸦实现它的目标。

为了实现这一目标,我们非常依赖于Unity的时间轴,我们在项目中分成了各个场景的时间轴,他们都有自己负责的部分,像照明、光线、VFX等。同时当场景播放时,我们的时间线都可以创建到我们所见的内容中。那么这里还有其他的一些,我们在制作动画时间轴时,也同步了这里的VFX的时间轴。

这里我们可以看到的是比较直观的情况,您可以看到它是以时间轴的片段作为一个视觉的黑盒子,我们也不一定要知道背后所发生的故事的复杂性,我们只要剪辑就可以了。时间轴也可以让我们去进行任何的微调,让我们进入播放模式预览的时候,也可以避免说整个的故事控制时间轴变得太长。

同时在动画关键帧存在的时间轴资源当中,而不是在场景中设计关键帧,让更多的人同时在同一场景中工作。时间轴也有自己的限制,特别是循环和保持上,它可以构成一个相对现象的故事,这个地方  我们可以将它保持住,等待另外一个事件发生时继续执行,这里我们也可以擦除时间轴,但是在这里是有这样一些变化,其他的一些使VFX和光线的变化在同一时间内同步进行。

这里看到的是堆栈顶部的最后一层就是交互和互动,这里我们看到的是一系列的事件,它是通过播放来实现这种线性的序列,但是这并不意味着我们没有办法对于动态元素进行分层,但是这里我们的动画就体现在进行分支的控制,来创造这种沉浸式的体验。这边我们所看到的就是用户,我们可以看到这边是用户挥动手,然后我们来实现角色与用户之间的互动。

那么这边我们所看到的是另外一个例子,我们是可以看到在这里是有一个迷你的状态机,那么在这些点上,我们可以体验用户来做某件事情的一个效果。

在这里,我们所看到的是变化的情况,那么我们可以看到像用户的行为,在场景中与其他的互动,用户的行为和相关的一些信号,那儿这些行为本身对于其他行为所带来的影响。那么当然还有包括在Unity2019中一些比较高级的功能,比如Markers,都能帮助我们在整个的时间轴中实现用户的行为和周围情况的交互。那么现在,我们进入了2D的部分,在2D部分的项目当中,和用户的交互是通过窗口进行,但是时间轴仍然有用,所以我们看一下,这是我们2D的一个情况。

那么在2D的电影之中,我们希望将《Crow》带入一个传统的动画媒介,以增加能够看到《Crow》的数量。因为大多数人都没有钱买昂贵的VR头盔,通过2D的电影,我们希望实现真正的动画电影的效果,因为在这一部分如果我们将把我们的预算和迪士尼、皮克斯这样大的公司比较以后,我们确定了现实情况下的目标,希望能够产生较高保证度的体验,而且我们预算没有那么高在Maya中制作电影,所以我们决定是用Unity完成渲染。

这里VR到2D的过程中进行了调整,故事的调整。在剧中我们有一个冒险追随动物的角色,是由玩家来扮演的。

还有一个灯光,对于每个摄像机的镜头都需要打光上去,因为在实时的渲染当中,你可能会有一个、两个或者是更多的实时的光照,看你的性能预算有多少,但是在2D当中因为是渲染的,你可以加任何的光照,是可以得到非常好的效果。

还有我们的动画效果,那这个如果说你要将它的像素非常精准和非常高密度和精准的像素要调整好,还有一个是要和动画片一样,传统上无法做到VR当中,但是同期是可以进行VR的生产和制作,这是从VR变成2D,那么在这个过程中,我们是会有很多输入的一些资源。那么我们看看从开始的时候,首先我们的预算,具体的资源还是有限的,我们要用很多以往的资源来创建。

那么越来越复杂了怎么办?实际上2D的制作,现在是跟VR的制作是同步的,那么VR当中的资源突然我们也希望能够在2D当中同步,因此,我们的工具要做到这一点,就是2D跟VR的制作是同步的。

可以看到在VR的头盔当中,我们可以看到的这样一个制作,在变成2D时,接下来的一步是有一个镜头。第一个是在Maya当中来进行设计,相同的镜头,但是是通过一个照相机来拍摄的。大家可能要问一个问题,为什么要在Maya当中来做,而不在Unity当中做。简单的答案就是我们之前的管线,因为美工觉得用Maya顺手一点,就做在里面了,当然你也可以在Cinemachine。当中来做让你的管线更加简洁,也可以用Maya来做这样的镜头,做出来镜头放在Unity。

b0c7940be926f551bc0bb5880e73a1bd.png

2D是600多帧在场景当中,我们的工具是按照时间轴的顺序来截取。为了能够去编辑我们的光照,我们有一个单独的轨道,在这里,会有一些光照编辑的内容,这个内容在VR的体验当中不是特别好。接下来来看看后处理的包括额外的光照、后处理的一些功能。打开编辑器,这是非常友好的,我们在不同镜头之间切换,或者是你要打一些光在时间轴当中进行调节,这是很方便的。这是一个镜头没有任何编辑过的光照,直接就是VR当中所制作的一个效果,这个是2D打了光以后。

我们再看一下底下有乌龟的脚印,有光影的影子的效果,后来我们又加入了后处理,这又是一个直接的2D的影像,这是VR的影像,最后是处理过的影像。这个就像是一个完全的镜头之间的比较。

这是所有的动物他们想要寒冬当中按照顺序一个一个藏起来,在VR当中,场景非常地暗,一个一个地出现。然后乌龟来了,你可以看到它在雪上没有留下任何的痕迹。这是2D的管线,这是添加了光照以后的镜头,这是动态模糊的后处理效果。你可以看到的是它的翅膀上有动态模糊的处理,这就是2D的管线,我们可以渲染的。

8312a4f3ae1567c1f5010990dc53ba6f.png

1e0f92f07ab55e11bc81e084cbc7a528.png

c7883d69838ab25f5a6920eba05c19c2.png

81b6b522163adca9ba8587c060f38764.png

f8aff19ac026f59b73a73a34244245d7.png

原创内容,未经同意,严禁转载。

三文娱已进驻今日头条、百度百家、一点资讯、微博、知乎、界面、网易、企鹅号、QQ看点、B站专栏、猫眼、时光网等,敬请关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hbase regions_使用Regions ADF 11g进行Master Detail CRUD操作

hbase regions此示例演示了如何使用Regions在表之间创建Master Detail关系。 区域的主要目的是可重用性的概念。 使用区域和有限的任务流,我们可以将页面重用到许多其他页面中,以保持相同的功能并采用更简洁的方法 下载示例应用程序。 对于此示例&#…

(兔子繁殖问题)有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到三个月后每个月又生一对兔子,假如兔子都不死,问32个月过后的兔子总数为多少?...

网上关于这个问题有很多人说这个符合斐波那契数列,但是我个人在推算的时候发现并不是这样的,所以想自己解决这个问题 建立一个兔子类 属性有ID,age public class rabbit{ public  $id; public age; } 第1个月:(id1,age1)-------…

IF-ERRORLEVEL使用方法

我们都知道if是命令行下的一个条件判断语句,ERRORLEVEL是它的一个参数,翻译过来就是“错误返回码”的意思,它的作用是判断前一条命令的错误返回值,然后和定义的字符值进行比较,再决定进行什么动作今天远程一个客户&…

Eclipse IDE中的Java 9 module-info文件

请注意,本文并非旨在更新状态; 这只是基于我对Beta代码所做的一些实验而得出的快速更新。 已经有一段时间了,但是我要回到Eclipse IDE中尝试Java 9支持。 为了进行测试,我从Eclipse Project下载了最新的Oxygen (4.7&…

局域网mysql数据库访问

1、调出mysql 命令界面 输入命令: mysql> use mysql Database changed mysql> select host,user,password from user; ------------------------------------------------------------ | host | user | password | --…

java.util中,util是什么意思

Util是utiliy的缩写,是一个多功能、基于工具的包。 java.util是包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等&#xff09…

Mathematics 9.0 绘制不等式确定的区域

在最新的mathematics软件中使用如下代码,无法产生程序: 在搜索了Mathematics 9.0 -> 帮助 -> 参考资料中心的内容,查到一个更简单好用的函数,正确结果如下:

无法打开包括文件:“mysql..h”: No such file or directory

出现这个问题后,根据网上提供的方法做了很多,但都没有用。后来在盘里面找了一下确实没有mysql.h这个文件,原来mysql必须选择complete安装方式才会有这个头文件。首先重新安装了一次mysql,然后选择自己的工程,进行环境配…

C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试

C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试 原文:C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试WPF 没有用到 PictureBox, 而是用Image代替. 下面我试着加载显示一个图片 。 XAML <Image x:Name"srcImg"Width"400"Height"300"…

一般一个前端项目完成需要多久_一种按周迭代的敏捷式项目管理方法

项目管理有很多理论&#xff0c;并且相关内容非常丰富&#xff0c;例如经典的项目管理的教材《项目管理&#xff1a;计划、进度和控制的系统方法》&#xff0c;字数达到了100万字。但是从源头来说&#xff0c;经典项目管理理论都是源自于对生产项目的过程中需要的管理的总结。对…

excel连接mysql 数据库

最近做个项目需要对收集到的数据进行实时刷新&#xff0c;原先考虑让获得的数据之间输出到txt文本&#xff0c;然后又文本导入到数据库&#xff0c;但是txt在修改查找的时候要把数据都读入到内存在进行相关改动&#xff0c;这样就很耗内存&#xff0c;而且文件占用率比较高&…

python jieba库下载_Python中jieba库安装步骤及失败原因解析

Python 中 jieba 库安装步骤及失败原因解析 作为计算机小白&#xff0c; Python 的流行也让我蠢蠢欲动&#xff0c; 在请教计算机 专业同学后&#xff0c;开始上网课自学 Python 基础知识。今天老师简单的一 句话“在命令行去运行 pip install jieba 的指令”安装 jieba 库&…

开放源代码库指南

微软.NET开发团队在博客上&#xff08;https://blogs.msdn.microsoft.com/dotnet/2018/10/15/guidance-for-library-authors/&#xff09;刚刚发布了.NET Library Guidance的第一个版本。这是一系列全新的文章&#xff0c;指导你为.NET创建高质量代码库。该指南包含我们已确定的…

[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配

在数据库和excel对接中有可能会出现错误“[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中&#xff0c;驱动程序和应用程序之间的体系结构不匹配” 本人发生这种情况的是在excel 在选定数据连接向导的时候&#xff0c;这是驱动程序和excel的体系结构不匹配&#xff1b; 环…

python程序写诗_python写的简单发送邮件的脚本

近来有些东西需要监控报警发邮件&#xff0c;然后在网上找了点材料&#xff0c;自己写了一个简单发送邮件的脚本&#xff0c;主要就是运用python的smtplib模块&#xff0c;分享给大家看一下&#xff1a; #!/usr/bin/env python # -*- coding: utf-8 -*- #导入smtplib和MIMEText…

多线程的运行状态

多线程运行状态 线程从创建、运行到结束总是处于下面五个状态之一&#xff1a;新建状态、就绪状态、运行状态、阻塞状态及死亡状态。 新建状态 当用new操作符创建一个线程时&#xff0c; 例如new Thread(r)&#xff0c;线程还没有开始运行&#xff0c;此时线程处在新建状态。 当…

LOAD DATA INFILE 语法

原文地址:http://blog.sina.com.cn/s/blog_539f03f00100xfxb.html mysql 的LOAD DATA INFILE 是一个高速insert的不错的方案 篇文章语法介绍的比较详细&#xff0c;转载&#xff0c;记录。 其实我就这样用&#xff1a; load data infile /home/mark/data_update.sql replace i…

@configurationproperties注解的使用_SpringBoot常用注解的简单理解

不定时更新...文章目录Spring容器JavaBeanPOJOAutowiredControllerResourceRestControllerServiceRepositoryMapperComponentEntityTransactionalBeanResponseBodyRestControllerRequestMappingPathVariableRequestParamRequestBody ValueSpringBootApplicationConfigurationPr…

3. Recursive AutoEncoder(递归自动编码器)

1. AutoEncoder介绍 2. Applications of AutoEncoder in NLP 3. Recursive Autoencoder&#xff08;递归自动编码器&#xff09; 4. Stacked AutoEncoder&#xff08;堆栈自动编码器&#xff09; 1. 前言 今天主要介绍用在NLP中比较常见的AutoEncoder的模型&#xff0c;Recursi…

python语言语块句的标记_NLTK基础教程学习笔记(十一)

语块分解例子&#xff1a; from nltk.chunk.regexp import * import nltk test_sent"The prime minister announced he had asked the chief government whip, Philip Ruddock, to call a special party room meeting for 9am on Monday to consider the spill motion.&qu…