记录下我学习到的一些
《1》之前对3维动画系统是有疑问的,这本书讲的太好了。
1,把动画方法视为数据压缩技术。最有弹性的动画系统,是可以控制物体表面无穷多的点;==》只控制顶点,每顶点动画per-vertex animation;==》关键帧然后差值,变形目标动画morph target animation;=》骨骼关节层阶结构+蒙皮顶点到关节上,蒙皮动画skinned animation。
2,动画混合里讲的 core pose,pivotal movement和targeted movement的处理。骨骼分部混合 ==》 加法混合。
3,逆动力学IK,解决地面不平坦时脚插入地面下或漂浮的问题。
4,动画状态机。action state machine,state layer
《2》游戏对象模型
1,单一庞大的类层次结构。深宽,基本无法维护,冒泡效应(使得基类成为个大杂烩了)。unreal 的Actor
2,改用组合Component ,unity就用这种。
3,竟然还有以属性为中心的架构,颇为类似数据库的结构。最大的优点看起来是性能(批量处理,缓存友好)。应该也属于历史了吧?
《3》游戏世界的加载
1,简单关卡加载,有lsr数据+关卡数据。在load关卡数据时也可以理由lsr数据做些tip或练习出招等。
2,阻隔室,air lock。《光环》有用。
3,streaming,无缝大世界。
《4》实时更新游戏对象
1,针对对象间的依赖,桶式更新。依赖树,然后分类。批次依次更新。差一帧的bug应该很多。在更新循环中,你查其他对象的状态可能是之前的也可能是已经更新过的。可用桶来辅助解决这个不一致问题。
《5》event系统
1,使用event队列,或及时传递event。哪个好呢?感觉及时传递更可控一点,比如如果出现事件feedback loop。这种直接栈溢出。event队列则只能查看log来猜测可能loop。