游戏开发日志分享-----高效率电影镜头&分镜(硬核向)
提示:此篇文章属于技术&方案实现分析,对于玩家不友好,需要一些游戏开发知识。
核心: Unity Cinemachine + TimeLine
利用cinemachine插件 可以很容易的实现大量镜头运镜
比喻:
cinemachine : 超级摄影师
timeline:导演
先看一段镜头效果
接下来通过技术向解密这段镜头的实现
首先使用 Cinemachine State-Driven Camera 工具将本段所涉及到的所有镜头通过状态机绑定
效果如下
接下来需要对每个相机机位进行细致的调整,例如视角大小、镜头晃动、镜头跟随、镜头的角度、位置等
此处建议小技巧: 参考电影设计流程先在纸上设计分镜流程
有了思路和“超级摄影师”接下来就是导演上场了 --欢迎 Timeline
使用timeline能够极大的缩短制作周期, 对于画面的表现力控制非常的棒!!! 这是unity为数不多我推荐的工具(希望Godot也跟进一下,哈哈哈,给unity一点压力)
废话少说,看实际操作:
简而言之,timeline能够让作为导演的你脱离繁杂的程序、美术、TA、音效师对接,直接上手控制整个画面表现。
用夸张一点的说法,让实机动画像剪辑视频一样“轻松”。
当然,有能力的朋友可以强烈建议自行扩展Timeline组件,除了基础的animation、audio等轨道,完全可以自行扩展更多适用于自己的编辑轨道, 例如:我需要一个轨道更加灵活的控制自己的屏幕后处理、自定义渲染管线的控制参数等等。
回到正题, 我通过Timeline去改变人物推演的同时,还在一条轨道上控制了相机阵列的状态, 最后通过状态机的改变 实现了在设定的时间平滑切换到指定镜头。
插一句,曾经参与过一些大型项目, 当时比较受关注的游戏功能之一是战斗过程中无缝切换到实机演算CG, 而Timeline完全可以实现这个功能的所有需求,所以请大家积极尝试使用Timeline吧,这个工具已经出了快多少年了。
当然《浮光》全程都是实机演算,以及无缝切换CG过程(顺手的事,哈哈哈)
相比上面的难题,《浮光》真正的难点之一在于如何在移动设备上保持高保真画面渲染的同时流畅运行。
这不得不提到我自己的游戏开发框架--Hex framework(暂时不开源,卖个关子)
最后在给大家看一下这段实机的“拍摄现场”