找回密码
 点一下
查看: 50112|回复: 293

数据单位及技能入门篇(一)

 火... [复制链接]
发表于 2012-6-27 12:52:43 | 显示全部楼层 |阅读模式
好久没写教程了,如果几天后公布高考成绩后顺利过关的话回来继续写。。


每个人都有自己精通的范畴,我比较精通的就是单位和技能的制作,所以这篇教程也是围绕这个范畴的。
在开始以前,你需要对整个游戏的技能和单位的整体结构有一定认识。

SC2内每一个游戏内单位的数据,都是由好多个不同部份组合而成的。
利用不同的组合方式来制作新单位和技能,这是和WE最大的分别。


Untitled-1.jpg Untitled-2.jpg
上图显示的是游戏中单位和技能等等东西的组合方式。
基本来说,数据编辑器(红色部份)可以拆分成为了三个部份,分别是:

游戏数据(Game data)
这一层又称为数据同步层,也就是说所有玩家这部分的数据都要一样,游戏逻辑的运算才能顺利进行下去。
作为RTS连线游戏,每个玩家的游戏数据必须要同步,例如在A电脑上机枪兵打一下小狗扣10血,在B电脑上也必须扣10血,这样游戏内容才能够同步,游戏才能继续下去。

这部包括的是游戏内的单位数据,例如单位血量、技能伤害等等。



演算体数据(Actor data)
(注意演算体和动作者只是翻译不同)
演算体是一个sc2新增加的间接层,他本身是独立于游戏逻辑引擎的一个事件驱动系統。
这一部分负责的是游戏上的视觉效果,你在游戏中看到的东西,除了UI就是演算体。
演算体是本地运行的系統,基本独立出來和视觉引擎挂钩,负责所有视觉、声效等等的东西,是一个间接层,把游戏数据在画面上显示出来,而这一层其实是每台电脑独立自己运行的,数据不需要同步。

例如在视觉上,两台电脑显示的东西是可以不同的,而且不影响数据的同步性。
例如A电脑上的机枪兵子弹是红色,B电脑上的子弹是绿色,虽然视觉效果不同,但是只要游戏数据相同(伤害值、伤害间隔等等)就可以了。

使用Actor间接层是编辑器最大的改进之一,这系统也是整个编辑器最复杂最强大的东西。它是一个事件驱动的系統,举个例子,游戏数据层现在发生单位X中枪,电脑A的电脑上视频设定是最高(他有强力的显卡),所以A电脑上的Actor在收到数据层传送过来,X中枪这事件后,通知视觉和物理引擎,在画面上画出X单位中枪喷血,鲜血在地上流动这些画面特效。
同一时间,电脑B和电脑A在连线对战,电脑B上的数据层同时发送一个X中枪信号给B电脑上的actor层,但是B电脑的显卡不给力,特效開最底,所以他电脑上的actor层只通知视觉引擎画出喷墨汁的画面,也就是说,两台电脑上的视觉效果可以是不同的,但是数据层的东西是同步的。

由于actor层不同步的特性,头目发展出相位系統,也就是利用触发器控制每个玩家电脑上显示不同的东西,但其实数据部份还是同步的。



资源数据(Assets)
这部分内容包括了模型、技能按钮、声效、贴图等等东西。
这部分也是可以不同步的,例如你把本地文件中心灵风暴的特效模型和毒雾的模型交换,游戏中高阶圣堂的心灵风暴就会变成毒雾,这不影响游戏的继续进行。






这就是sc2的游戏单位和数据的运作方式了。

那麼,现在你已经对编辑器的基本原理有了一定了解,就让我们来看一看下面这个简单的例子,来把我们刚刚学到的知识运用到实践中吧。
游客,如果您要查看本帖隐藏内容请回复





游戏数据的模板类别
技能 (Abilities)
这里是设置每一个技能的施展方法(点击图标后立刻发动,还是点选指定单位的技能等等),以及技能消耗(魔力)
,冷却时间等等。


行为 (Behaviors)
单位上的buff都是这里设置的,例如可以新建一个buff,拥有这个buff的单位都可以永久隐身等等。


效果 (Effects)
可以想象为一个动作,例如搜索范围是一个动作,伤害单位是另外一个动作,两个效果加起来就是对范围内的单位造成伤害的AOE了。


占用区域 (Footprints)
控制建筑占用的位置,以及碰撞体积。


移动器 (Movers)
单位以及飞弹的移动方式都在这里设定,例如死神、巨像的跨过悬崖的移动方式,抛物线形飞弹什麼的都在这里设定。


需求 (Requirements)
设置一些条件来控制某些按钮会不会显示,以及某些技能能不能使用。
通常用在技能和科技升级按钮上。

例如兴奋剂技能只有在研发兴奋剂科技以后才能使用,这里就是判断兴奋剂科技有没有研发的地方,然后控制技能能不能被使用。


单位 (Units)
单位的属性都在这里设置,例如但单位血量、移动速度、拥有的技能等等。


升级 (Upgrades)
设置科技的影响单位,例如虫族远程攻击+1科技将会增加刺蛇、蟑螂、女王的攻击力。
或者是技能科技,利用需求来判断这里的等级。


验证器 (Validators)
可以用来配合其他数据做出条件判断,例如技能只能对特定类型单位使用,验证器就可以用来判断技能的目标单位类型是不是符合要求了。
或者更复杂的,例如只能对血量大于10的单位使用等要求都可以做到。


武器 (Weapons)
单位身上的武器,每个单位可以有多个武器,可以在这里设置武器的攻击冷却,攻击单位类型之类的东西。



演算体的模板类别
演算体 (Actor)
基本上整个演算体系統都在这里,详细用法以后会说。

附着方式 (Attach Methods)
这是辅佐演算体系統的一些设置,通常用于发射飞弹时候的附著点设定。



资源数据
准确来说这个也是一个间接层,不过把他归类成资源也可以。

按钮 (Buttons)
也就是你所看到的技能图标,选取一个图标图片,加上按钮标题和按钮文字描述,然后设定热键,组合起来就是一个按钮模板。


模型 (Models)
选取一个模型,然后可以做一些细微调整(大小、光照等等),组合成一个模型模板。


音效 (Sounds)
选取一个音效档案,然后可以做一些细微调整,组合成一个音效模板。

纹理 (Textures)
可以把一个图片设置成纹理,然后把模型上的贴图换成这些贴图模板。

评分

参与人数 1威望 +8 收起 理由
麦德三世 + 8 星星加油

查看全部评分

 楼主| 发表于 2012-6-27 17:27:49 | 显示全部楼层
在这里要介绍一下几个关键的名词,这些东西都是数据编辑器的关键。
中文版编辑器按下Ctrl+d可以看到英文id。

Untitle32d-1.jpg
Catalog
    国服翻译是"数据模板类型",其实是不正确的,应该是数据模板分类才对。
    

Template Type
    数据模板类型,例如CAbilBuild、CAbilEffectTarget等等,不同模板类型的属性都不一样。


Template / Entry
    模板,在技能分类里面的就叫技能模板,在效果分类里面的就叫效果模板。
    模板名称可以是中文,那个是本地化后的文本,但是ID只能是英文,那是游戏内部识别用的id。
    
    一些常用的模板类型需要记住,例如点击目标点或者目标单位的技能是CAbilEffectTarget类型,点击技能按钮马上发动的就是CAbilEffectInstant类。


Porperty / Field
    左边的是属性项,右边的是属性值。不同的模板类型有不同的属性项,了解属性项的用途是研究数据编辑器的关键。



Parent Template
    父模板,这个解释起来有点麻烦,简单地说就是模板A设定了一些属性值,如果你新建一个模板B然后把父模板设置为模板A,这样的B属性值就会继承模板A的属性值。
    也就是说,选择父模板可以设置好一些常用的属性值的预设值。常用于Actor系統,如果配合XML和token来使用将会十分强大(属于高阶技巧)。
    注意父模板会受到模板类型的影响,通常来说需要父模板和模板类型的类型一样,详细的继承规则请去看头目的XML教程。

    例如模板类型是CActorModel,父模板可选ModelAnimationStyleContinuous或ModelAnimationStyleOneShot,前者预设了一些持续形的模型特效属性值(心灵风暴的持续特效),后者是只播放一次的模型特效预设值(兴奋剂的闪电标识)。






介绍了这几个部份,然后就要说一下他们之间的合作关系了。
先选一个最简单的技能来举例,机枪兵的兴奋剂。

兴奋剂
技能逻辑:
点击后立刻发动类技能
点击后自身扣血,然后添加一个buff增加武器攻速,持续15秒后buff消失

技能特效:
技能发动时在单位头顶创建一个绿色闪电模型
buff消失的时候在单位头顶创建一个红色闪电模型

声效:
技能发动时播放声效


现在先尝试把兴奋剂这个技能的数据拆分。
基本上每一个技能、每一个单位都可以拆分成这样的图表。
Main.jpg


换一下观察角度
31.jpg

技能逻辑
游戏逻辑部份实现的就是技能逻辑,演算体配合资源实现的就是技能特效和声效。
逻辑部份是技能、效果、行为之间的互相连结组成的,由实线箭头表示。
图片中的<<>>括号中间的就是模板类别,下一行是模板名称,分隔线下的是属性。

现在先看图二游戏逻辑那一栏,那是简化后的技能逻辑
一共由三个模板组成的技能
分别是名称为"兴奋剂"的CAbilEffectInstant类型的技能模板
"兴奋剂(效果)" [国服翻译是兴奋剂 (应用增益)]的CEffectApplyBehavior效果模板
"兴奋剂 (行为)"的CBehaviorBuff行为模板
技能逻辑:
点击后立刻发动类技能
点击后自身扣血,然后添加一个buff增加武器攻速,持续15秒后buff消失
兴奋剂技能的模板类型定义了这是一个点击下去就发动的技能
技能模板属性设定了了技能消耗(10HP),科技需求,按钮图标,以及连接到"兴奋剂(效果)"

"兴奋剂(效果)"效果模板类型定义了这个效果是为单位添加buff用的
效果模板属性设定了为发动的单位添加一个"兴奋剂 (行为)"的buff

"兴奋剂 (行为)"行为模板类型定义了这个行为是一个单位的buff
属性设定了用有这个buff的单位将会得到攻击速度x1.5的增幅,然后也设定了这个行为持续15秒后消失

可以看到利用这三个模板,组合起来就完美实现了兴奋剂的技能逻辑了。
注意游戏逻辑中的模板都是直接连接在一起的,组合起来才是完整的技能。


技能特效和声效
上面说过,演算体是一个事件驱动系統,负责控制所有技能特效。
现在看图2的演算体那一行,注意到的是连结的关系,技能特效是演算体系統连结到游戏逻辑那一边,也就是说技能的特效是在演算体那边的属性项设定,然后连接到游戏逻辑。

现在我们有一个名为StimpackStartImpact的演算体模板,他的类型是CActorModel,这类型定义了这个演算体是用来创建一个模型的。
在这个模板的属性项设定了他连结到了名为StimpackStartImpact的资源(图二右边),这个资源是一个绿色的闪电模型。
也就是说这个演算体模板创建的时候他就会跟着创建一个StimpackStartImpact资源的绿色闪电模型。

那麼这个演算体模板什么时候会在游戏中创建呢?
这就是由模板的属性中设定的,这里是设定了每当游戏逻辑那一边有单位使用了兴奋剂技能,这个演算体就会在单位的头顶创建(这个演算体创建的同时也创建了连结的模型资源)。
所以在图片中就是由虚线来表示这种连结关系。

下面那个Marine_Stimpack的演算体模板也是跟第一个演算体模板差不多,都是在技能使用的时候创建,不过这个演算体类型是CActorSound,所以他连结的资源是一个音效文件。
也就是说每当游戏逻辑那一边有单位使用了兴奋剂技能,这个演算体就会在单位的位置创建,播放音效


最下面那个StimpackEndImpact的演算体模板类型是跟第一个演算体一样的,也就是说这个演算体也是用来创建一个模型资源。
这次演算体连结到的是一个红色闪电的模型资源。
只不过这次的属性项有点改动,就是每当游戏逻辑那一边有单位的"兴奋剂(行为)"结束,这个演算体就会在单位的头顶创建


通过这三个演算体模板,我们就做好了技能的特效了。
技能特效:
技能发动时在单位头顶创建一个绿色闪电模型
buff消失的时候在单位头顶创建一个红色闪电模型

声效:
技能发动时播放声效


通过这种多类型模板的组合方式,我们可以完全可以自由组合做一些新的技能,而不是像WE那样找一个定义好的技能模板,然后修改那有限的数值。
这里只是说明一下sc2整体的技能制作方式,实际数据项的设定在下一篇教程中会谈到。
回复

使用道具 举报

发表于 2012-6-27 22:14:09 | 显示全部楼层
解释得很清楚……啊
回复

使用道具 举报

 楼主| 发表于 2012-6-28 23:02:53 | 显示全部楼层
未命名.jpg 希望明天后能顺利回来继续写
回复

使用道具 举报

发表于 2012-6-28 23:19:07 | 显示全部楼层
星星真是太强大了
回复

使用道具 举报

发表于 2012-6-29 02:28:11 | 显示全部楼层
支持啊!!!
回复

使用道具 举报

发表于 2012-6-29 08:02:03 | 显示全部楼层
看一下隐藏
回复

使用道具 举报

发表于 2012-6-29 08:33:49 | 显示全部楼层
神作,赶紧趴着看
回复

使用道具 举报

发表于 2012-6-29 09:03:20 | 显示全部楼层
好厉害,新人福音啊、
回复

使用道具 举报

发表于 2012-6-29 10:07:06 | 显示全部楼层
星星~~~~一不小心星星的沙发被抢掉了
回复

使用道具 举报

发表于 2012-6-29 18:43:22 | 显示全部楼层
坚决支持!
回复

使用道具 举报

发表于 2012-6-29 20:34:17 | 显示全部楼层
新手看看
回复

使用道具 举报

发表于 2012-6-30 16:19:44 | 显示全部楼层
支持一个
有大用处啊
回复

使用道具 举报

发表于 2012-6-30 22:41:25 | 显示全部楼层
那么,顺利过关了么?
回复

使用道具 举报

发表于 2012-7-1 04:20:13 | 显示全部楼层
謝謝分享
回复

使用道具 举报

发表于 2012-7-2 13:07:13 | 显示全部楼层
謝謝分享
回复

使用道具 举报

发表于 2012-7-3 18:20:39 | 显示全部楼层
我貌似没有顶过,看到万恶的 需要回复才能查看,我决定妥协一下。
回复

使用道具 举报

发表于 2012-7-3 19:33:16 | 显示全部楼层
看完之后有种感慨:听君一席话,胜读十天书呀。
回复

使用道具 举报

发表于 2012-7-4 16:12:19 | 显示全部楼层
回复后可见~~星星你不能这样啊
回复

使用道具 举报

发表于 2012-7-5 02:54:35 | 显示全部楼层
星星加油
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-25 11:08 , Processed in 0.497888 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表