游戏中剧情动画CG实现的一种方式概述

霸气de小男生 提交于 2020-03-02 12:36:14

1.关于游戏中剧情动画CG的实现,有多种方式实现,这里我指出在之前的项目中我实现CG的一种方法。

2.多种实现方式的简述:

a.使用预先制作好的动画Video文件,通过引擎接口,以流媒体的方式播放,就好比是内置电影一样。    

比如:有story1.rmvb格式的动画文件,通过接口engine.playCG("story1", onStop)播放,其中onStop函数为播放结束时回调函数。

这种做法的优势是可以事先离屏渲染出及其精美的CG动画,劣势是玩家看到如此精美的CG但是实际游戏画面有很大落差会觉得游戏不够诚意,还有就是这种方法太过死板,CG过程中无法和玩家交互或者是无法根据游戏中的当前状态而有所变化。

b.在游戏场景编辑器中提供CG工具,编辑CG的镜头曲线,和CG中的游戏中静态物体的生成和消失。这种做法将CG动画保存为引擎中能够理解的一系列事件,比如镜头的移动,场景中的物体的生成等。

其格式比如:
[camera curve time]-表示摄像机在time中按照curve曲线移动
[obj1 time1 obj2 time2 ...]-表示场景中obj1的物体(可以是骨骼动画,声音,特效等)的生命期为time1

这种做法属于内置游戏渲染,让玩家看CG时没有一种切出的感觉,表现出场景的一定的变迁。

3.我之前做上家公司游戏中的CG系统时,使用的是类似于b种方法,其做法是:

3-1.将CG编辑器内置在游戏中,这样跑客户端游戏时可以将需要CG的地方直接呼出CG编辑器编辑并且预览当前的播放效果,并且可以直接内置一些客户端的与角色和NPC的逻辑放入CG,就像是制作者在这编排一段故事一样,并且根据角色的选择(如果需要角色选择)可以控制CG走向,这样做更加偏向游戏性方面。

3-2.所设计的格式:
[time1 camera curve]-表示没有CG中的选择分支时,time1时段camera按照curve移动
[time2 obj1 obj2 obj3 ...]-表示没有CG选择分支时,time2时段编排的物体,注意因为这里是直接在游戏逻辑层,使用的内置CG编辑工具,可以直接操作NPC和玩家自己或者是当前组队状态下的其他玩家。
[cond1 time3 ...]-表示分支情况,如果是cond1则跑这条时间线
[cond2 time3 ...]-表示分支情况,如果是cond2则跑这条
这样做的好处是更加深入游戏的逻辑层,表现出更多的趣味性和故事性,增强游戏的代入感,方便剧情编辑人员工作。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!