Gamebryo-gsa文件概述

本文介绍了Gamebryo使用的两种场景存储格式:GSA和NIF。GSA为XML格式,包含ENTITY、COMPONENT及PROPERTY三种元素;NIF为二进制格式。GSA文件基于NiEntityFramework框架,支持通过反射机制动态改变属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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来获得/添加自定义的数据.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值