1. gsa文件(gsa = gamebryo scene asserts) 是 gamebryo存储场景的一种格式, 另一种是nif格式. gas文件是以xml格式存储, 而nif文件是以二进制格式存储.
2. gsa文件与nif文件区别
1.) gsa文件通过NiEntityStreamingAscii解析, 而nif文件则通过NiStream解析.
2.) gsa文件主要包含3种元素: ENTITY, COMPONENT, PROPERTY. 经过解析后,ENTITY对应继承NiEntityInterface和NiRefObject的派生类实例(如NiGeneralEntity),
COMPONENT对应继承NiEntityComponentInterface和NiRefObject的派生类实例(如NiCameraComponent). PROPERTY对应基本类型数据(如int, float, NiPoint2(3)d 等).
3.) gsa文件在SCENES节点定义有效的ENTITY列表. 一个gsa文件包含一个或多个ENTITY, COMPONENT, PROPERTY. 一个ENTITY可以包含一个或多个COMPONENT,
一个COMPONENT可以包含一个或多个PROPERTY. 而某些PROPERTY也包含一个或多个ITEM.(ITEM的值对应的是ENTITY ID).
4.) gsa文件是基于NiEntity Framework. 而NiEntity Framework通过reflection机制向外提供对象属性和功能的访问. 它的主要作用是使游戏可以结合脚本引擎动态改变属性.
5.) 角色ENTITY中含有一个特别的COMPONENT - 对应类NiActorComponent. 角色模型的动作控制就是通过NiActorComponent里的NiActorManager来实现的.
3. ENTITY对象属性
ENTITY对象可以通过GetPropertyData/SetPropertyData函数获得/修改属性值. 而如果是模型ENTITY, 还可以通过NiActorComponent获得NiNode模型数据,通过GetExtraData/
AddExtraData来获得/添加自定义的数据.
Gamebryo-gsa文件概述
最新推荐文章于 2024-11-13 08:00:00 发布