银河编辑器吧 关注:6,214贴子:71,701

5.0编辑器新内容(转自sc2官方文章)

只看楼主收藏回复

5.0内容很多,但是这里只搬运一下编辑器内容。
提及一些重点的内容,关于完整内容,请参照官方的帖子
https://sc2.blizzard.cn/articles/1001/80136


IP属地:浙江1楼2020-07-29 10:48回复
    数据集合
    数据集合(Data Collection)是一种新类型的目录,允许用户在一个集合中对一组数据元素进行声明(declare)和分组(group)。你可以把一个集合看做与单位、技能或升级等一样的单个数据片段。
    在复制、重命名或删除数据集合时,编辑器将智能地对集合中所有的数据元素应用相同的操作。例如,在复制数据集合时,用户将收到提示为新集合提供一个名称。然后,编辑器将复制集合中的每个数据条目,并相应地对它们进行命名。编辑器还会对所有链接的字段进行设置,使新的数据条目全部指向新的对应项。
    举例:复制“Blizzard”集合,然后将新的数据集合命名为“Activision Blizzard”。
    删除数据集合将删除该集合中所有的数据条目。
    改变数据集合的ID也会改变该集合中所有的数据条目的ID。
    数据集合的数据条目可以手动设置,也可以自动填入。
    数据集合使用一个新的关键字符“@”来命名子数据条目。数据集合系统能够自动搜索整个目录,查找ID开头为数据集合ID且后面跟有字符“@”的数据条目。然后它会自动将这些数据条目添加至集合。
    正因为该链接功能,每当技能的效果树被更改时,相应的数据集合及其数据条目也将自动更新。



    IP属地:浙江2楼2020-07-29 10:51
    回复
      2025-07-25 05:37:51
      广告
      不感兴趣
      开通SVIP免广告
      菜单:Data Collection -> Auto Fill Data Collection将自动搜索整个目录并查找ID开头为数据集合ID且后面跟有字符“@”的数据条目。然后它会自动将这些数据条目添加至对应的集合。
      菜单:Data Collection -> Auto Name Data Collection将根据数据集合的名称重命名其数据条目。
      数据集合还允许我们在数据条目之间添加关系信息。比如,通过数据集合,游戏现在可以理解像“此单位的主要演算体是什么?”这样的信息。
      本次更新中的许多功能都与此数据集合功能密不可分。
      数据集合能让一些编码规范或指南发挥全部的潜力:
      所有的数据集合都应该尽可能独立。
      比如,不管什么时候向一个单位添加“技能合集”该合集都应该能够正常运作,且不应将其硬编码为仅在特定单位或具有特定武器的单位上起作用。这里有一个反面例子:在以前的SC2数据库中有一个名为“虚空辉光舰”的被动技能,该技能会在长时间攻击后增加伤害。这项被动技能实际上是假的,而且其功能被硬编码到了“虚空辉光舰”本身的武器上。在这个数据集合的新时期,我们强烈反对这种对数据的错误使用。因此,为了实现这一目标,我们创建了下方所述的诸多新功能。
      “简单模式”数据编辑器



      IP属地:浙江3楼2020-07-29 10:54
      回复
        “简单模式”(Easy Mode)数据编辑器是数据集合的扩展功能。开启该功能后,数据编辑器将仅会显示数据集合,并且会将这些集合模拟为单个的“技能数据”、“单位数据”、“物品数据”或“升级数据”等。你可以复制,移除,删除或重命名这些数据集合,就好像它们都是单个数据对象一样。
        此模式仅在表格视图可用。它结合了一些最重要的数据字段,如单位生命值数据、技能伤害数据等。
        简单模式中显示的字段可针对数据集合的每种类型进行完全定制。
        大多数使用SC2地图编辑器的地图制作者最大的抱怨之一就是复制单位或技能的操作太复杂了。这是War3编辑器和SC2编辑器相比最大的优势。
        数据集合结合简单模式就是我们的解决方案了。
        在未来,我们希望创建更多基于数据集合的数据,让用户能够更容易地与它们进行互动。
        我们鼓励模组作者利用数据集合创建自己的Mod,从而获得它们带来的好处。我们还鼓励公用Mod的作者们定义简单模式的视图,从而让其他模组作者能够更容易地更改和修改自己的Mod。


        IP属地:浙江4楼2020-07-29 10:57
        回复
          累加器
          累加器(Accumulators)是一项使地图制作者们根据各种输入参数创建公式的新功能。
          例如,一个技能的伤害可以被设定为:
          施法者的生命值+施法者的智力属性*2-75+目标损失的生命值,如果施法者有香蕉,则+(2*施法者伤害护盾吸收的伤害量)。
          当然,伤害公式在游戏中的真实情况并没有这么复杂。这里只是在展示累加器能够做些什么。
          累加器能将单位自定义值(Unit Custom Values)和用户数据作为参数。
          累加器不仅支持公式,还支持用户定义表格。同验证器相结合时,累加器还可以用于case切换功能。
          比如,当用于存在不同级别且可由多个玩家施放的行为时,累加器将针对每个玩家计算结果。
          累加器的用途广泛,可应用的地方也非常丰富。比如伤害、治疗速度、生命恢复、伤害递减、技能消耗、护甲加成、演算体批处理计数(Actor Batch Count)、持续存在计数(Persist Count)、行为计数、行为时长、伤害系数、攻击速度、移动速度、活力恢复、行为几率(Behavior Chance)、活力修改(Vital Modification)等等。


          IP属地:浙江5楼2020-07-29 11:00
          收起回复

            触发器动作:UI - Override Player Option现在允许地图制作者们将状态条的默认样式改为更加直线型且没有分段的样式。这对需要显示更精准活力系数的自定义Mod来说非常实用。


            IP属地:浙江6楼2020-07-29 11:05
            收起回复
              多层悬崖
              《星际争霸II》现已支持最多15层悬崖(原最多3层)。
              4.13PTR修正:悬崖层级高于3的悬崖路径现在已经能够正确填充。


              IP属地:浙江7楼2020-07-29 11:08
              回复
                升级系统改版
                这是数据集合系统和新指挥官系统的重要组成部分。
                旧版的升级系统无法独立运作,而这与新的数据集合的理念背道而驰。在旧版的升级系统中,升级指定了受其影响的技能或单位,以及相对应的升级效果。
                而新版系统让升级可以更加独立。单位现在需要声明自身使用的升级,而不是让升级决定其所影响单位。比如,升级不应再以“使陆战队员的生命值提高10点”这样的样式进行应用。而应表述为“使任何使用本升级的单位的生命值提高10点”。
                新CUpgrade字段:EffectArrayTemplate
                该字段与旧的EffectArray字段相似,但有以下例外:
                该字段支持两个额外的符号:
                ^ParamId^:使用升级的任何数据集合的ID。
                ^ParamLevel^:当前升级的等级。
                该字段支持数据引用和算术(Arithmetic)的使用。使用“{”和"}"创建公式,和在文本编辑器中一样。
                数据集合已经在鼓励模组作者们用特定的命名规范命名所有的相关数据,所以模组作者们能够轻松地为与单位相关的数据条目使用^ParamId^字段。
                例如:
                EffectArrayTemplate Reference="Effect,^ParamId^@Weapon,Amount" Value="{DataCollection,^ParamId^,UpgradeInfoWeapon.DamagePerLevel+3}"/
                此升级将提高使用该升级的单位的武器伤害,提高点数为此单位的数据集合的 UpgradeInfoWeapon.DamagePerLevel字段加3。
                你可以在数值栏输入一个固定的值,比如Value=”4”。
                CUpgrade的旧版字段仍然存在且功能仍保持不变,所以所有的旧版升级依然可用。你可以继续以旧版的方式创建升级,但是我们不建议这样做。
                全单位升级支持
                由于有一些升级旨在用于“所有单位”(特定类型),所以CUpgrade现在设有一个标旗用于枚举所有的数据集合单位。
                两个过滤字段,EnumExcludedUserFlags和EnumRequiredUserFlags现也已添加至CUpgrade,允许升级根据标旗过滤所有的数据集合单位。
                新升级操作:AddBaseMultiply和SubtractBaseMultiply
                这些操作根据目标字段的默认值而不是当前值对其进行修改,这种操作通常比Multiply操作更为实用。比如,假如你有100个等级的“单位生命值增加10%”升级,你可能会想让这个升级在每个等级上提高固定的生命值,而不是每次乘以最后一个等级的生命值。另外,Add/SubtractBaseMultiply支持科技降级,因为它可以随时撤销自己,而Multiply无法做到这一点。
                升级现在可以用来为玩家启用或禁用单位。
                新CWeapon字段:比率乘法器
                默认值为1
                游戏在尝试获取某个武器或者CP效果的周期时会将此倍率算入在内。
                这一变化使你可以按百分比的形式升级武器速度,而不是直接更改其武器周期。


                IP属地:浙江8楼2020-07-29 11:12
                收起回复
                  2025-07-25 05:31:51
                  广告
                  不感兴趣
                  开通SVIP免广告
                  技巧射击支持
                  《星际争霸II》现拥有技巧射击(Skillshot)支持!
                  新发射物发射效果标旗字段:SearchFlags
                  新发射物发射效果搜索标旗:DynamicSearchArea
                  该标旗启用技巧射击搜索。没有它你只能获取普通发射物。
                  新发射物发射效果搜索标旗:ArriveOnSearchHit
                  将发射物配置为“击中目标时引爆”技巧射击或“穿刺”技巧射击。请参阅下方。
                  新发射物发射效果字段:
                  SearchHitArriveEffect
                  仅在开启ArriveOnSearchHit时有效。发射物因击中目标而引爆时执行该效果。
                  注意:该效果将在发射物飞行结束前最后的搜索点运行,而不是在其目标点。
                  此功能与结束效果的功能相似。
                  SearchEffect
                  发射物每次游戏循环都会运行该效果,并根据发射物的当前速度覆盖搜索区域的高度参数。也就是说,它将不会在每次搜索间留下间隔。
                  注意:TVE作弊(TVE cheat)会显示一个错误的默认高度而不是覆盖搜索效果的正确高度。
                  SearchMaxCount
                  表示发射物整个飞行时间内的最大搜索次数,而不是每次单独搜索的最大搜索次数。发射物会在找到SearchMaxCount目标后停止搜索。
                  当达到了SearchMaxCount,且没有设置ArriveOnSearchHit,发射物会继续飞行至它的目的点,但是不会再执行技巧射击搜索。
                  当达到了SearchMaxCount,且设置了ArriveOnSearchHit,发射物会引爆并在它最后的搜索点运行SearchHitArriveEffect。注意这不是发射物目标,因为它不会到达目标点。
                  如果SearchMaxCount为0,且设置了ArriveOnSearchHit,发射物将不会限制搜索的最大计数。只要它的一个搜索效果找到一个目标,发射物就会引爆并在它最后的搜索点运行SearchHitArriveEffect。
                  如果对sc2原本的技巧射击技能原理有疑问,可参考本帖https://tieba.baidu.com/p/6676801216


                  IP属地:浙江10楼2020-07-29 11:16
                  收起回复
                    改进尸体支持
                    新CEffectModifyUnit_ModifyFlags标旗:移除
                    该标旗将直接从游戏中移除单位并摧毁单位演算体的整个域。
                    添加该标旗是因为用户不能使用CEffectDamage中的“移除”效果来移除尸体。
                    新单位过滤器:腐烂
                    腐烂单位被定义为当前在地面上并且已经死亡一段时间的单位。与之相对的是一个已经被杀死,但仍在倒地过程中且正在产生尸体的单位。在术语中,当死亡时间激活且复活延迟结束时,该过滤器为真。
                    该过滤器的目的是让那些以尸体为目标的技能不会作用于那些刚刚死亡且仍在形成尸体的单位。
                    如果单位的死亡时间被设置为-1,腐烂阶段将被跳过。例如,《魔兽争霸III》中的英雄永远不会腐烂。
                    新单位过滤器:可复活
                    CEffectModifyUnit现在可以设置尸体是否不可复活。
                    不可复活允许我们标记尸体是否已经被使用。
                    例如,当一个食尸鬼在吃尸体时,尸体仍然存在,但Mod作者可能不希望尸体可以复活或变成亡灵。在这种情况下,Mod作者可以将技能设置为只接受可复活的尸体,并将尸体在被吃的时候设置为不可复活。
                    新标旗:允许尸体
                    开启该标旗时,运输技能可以装载尸体。


                    IP属地:浙江11楼2020-07-29 11:17
                    回复
                      攻击类型、伤害类型和装甲类型系统
                      新CWeapon字段:攻击类型
                      Mod作者可以改变游戏数据中每一种攻击类型对每一种装甲类型的伤害倍率。
                      攻击类型将影响整个武器树中的所有伤害效果,所以mod作者现在可以根据武器等级修改伤害倍率,而不用仔细检查效果树中的每个效果条目来改变伤害系数。
                      新CUnit字段:装甲类型
                      装甲类型决定所用武器对单位的伤害倍数。
                      新验证器:CValidatorUnitArmor
                      允许用户检查单位的装甲类型。
                      新CEffectDamage字段:伤害类型
                      Mod作者可以将目标过滤器换为游戏数据中的伤害类型。
                      对伤害类型使用目标过滤器允许用户配置游戏中所有的伤害和AoE伤害效果。其还可以决定某些伤害效果是否能够伤害某些目标。
                      例如,通过简单地过滤掉每种伤害类型中的“盟友”目标,用户可以轻松地让游戏中的所有武器不再溅射到盟友。这在创建合作mod时很有用,因为这需要建立在多个其他mod之上,而且这些mod中的AoE武器和法术有各种友军伤害效果。


                      IP属地:浙江12楼2020-07-29 11:19
                      回复
                        效果丢失几率、阻止和反弹
                        行为伤害响应结构现在还可以处理除了伤害响应之外的情况。
                        丢失几率
                        新CWeapon标旗:不会丢失
                        默认情况下,武器将保持原来的行为。
                        攻击修正还可以在武器效果树中添加“不会丢失”属性。
                        如果某个武器效果树显示该武器会丢失目标,则当该武器开火时,其会检查攻击者和防御者双方的丢失几率。然后,其将根据响应结构中设置的验证器和几率来标记该效果是否会丢失。
                        如果地面单位攻击较高悬崖层级上的目标,则其还会有额外的丢失几率,这可以在游戏数据中修改。
                        如果某武器的效果树被标记为“丢失”,则该武器将不会造成轰击伤害,也不会在撞击时造成法球的效果。
                        当一个武器丢失时,其将发送一个以“丢失”作为子名称的演算体武器事件。这样,mod作者就可以决定他们是否想要捕捉这个事件以在该单位上创建“Miss!”漂浮文字或显示躲避效果。
                        阻止几率
                        新CEffect字段:CanBeBlocked
                        决定效果是否可以被阻止。默认设置为关。
                        当执行一个效果时,游戏将会查询轰击单位的响应结构,并检查其阻止几率和验证器。
                        如果被阻止,则效果将取消,不会执行。效果将发送一个以“已阻止”作为子名称的演算体效果事件,以便用户可以设置适当的演算体。
                        该功能对创建法术阻止行为很有用。
                        反弹几率
                        新CEffect标旗:ValidateImpactDeflection
                        决定效果是否可以被反弹。默认设置为关。
                        反弹和阻止几乎是一样的,只是反弹所产生的效果会被复制并反作用于施法者。
                        反弹效果将使施法者和目标的属性反转,并将算作原目标单位向原施法者单位进行的攻击。反射效果树中的伤害加成设置仍会使用原施法者的伤害加成。
                        反弹和阻止的另一个区别是效果树只会评估反弹一次。如果一个效果通过了一次反弹检测,效果树的其余部分将不再检查反弹几率,即使在效果树中有以下已勾选ValidateImpactDeflection标旗的效果。


                        IP属地:浙江13楼2020-07-29 11:20
                        回复
                          其他技能系统更改
                          自动生成技能按钮
                          为了让技能可以轻松应用到任意单位,所有按钮现在都拥有一个属性,让Mod作者可以在命令卡上自行设置按钮位置和子菜单ID。
                          在任意技能上,Mod作者可以设置任意给定技能命令能否自动生成技能按钮,使技能在应用到单位时立即生效。用户以后将不需要在单位命令卡中手动设置这些按钮和图标。
                          触发API在运行时添加和移除单位上的技能。
                          新的触发API动作:单位添加技能,单位移除技能
                          简化等级配置
                          现在,大部分技能类型都拥有Levels字段,可以直接设置技能的最大等级。与累加器系统组合后,如果技能有1000级,MOD作者将不再需要做1000次技能设置。
                          Levels字段也是可升级的,允许MOD作者在运行时改变最高技能等级。
                          当Levels字段设置为默认值0时,技能等级系统将退回到之前的功能。
                          新CCharge字段TimeDelay
                          适用于所有技能、物品、行为累积。
                          机制类似于TimeStart,但仅影响技能、物品或行为的首次累积。
                          当TimeDelay = 0,累积系统将像以往一样运作。
                          当TimeDelay > 0,TimeStart将被忽略。
                          当技能开始累积次数,首次累积的回复时间将使用TimeDelay值,而任意后续累积都会使用TimeUse值。
                          新标旗:IgnoreTimeDelay。
                          允许技能忽略单位中的TimeDelay设置并转为使用技能自己的设置。
                          模板替换现在支持物品技能。
                          替换并非基于物品的拥有者,而是物品的使用者。
                          这样,不同玩家就可以使用效果不同的相同物品。
                          例如MOD作者将可以创建不同单位并使物品效果根据不同玩家种族而变化。
                          SEffectParamsShared现在拥有m_level成员,可保存开启效果树时的技能等级。
                          效果树可将此当做快照来获取相关等级数据,即使效果树开始后技能等级发生变化,效果树仍保有旧技能等级的信息。
                          累加器也可以将此数据用作技能数据。
                          CEffectCreateUnit_SpawnUnit现在可以配置为根据效果树的等级创建不同单位类型。
                          CAbilBheavior现在可以设置不同验证器用于自动切换开启和自动切换关闭,而不是只能设置一个验证器用于自动施法。
                          新技能类别和行为类别
                          增加多种新技能和增益类别。
                          增益行为现在可以按照类别启动/禁用技能。
                          为触发器编辑器的“行为类别”清单添加了额外的预设。预设现在与数据编辑器中的“行为类别”清单相匹配。
                          所有技能的新字段:State Behavior
                          此字段会在创建技能时创建行为。如果技能被摧毁,行为也会随之被摧毁;如果技能启用/禁用,行为也会随之启用/禁用。
                          其他伤害系统更改
                          新CEffectDamage字段:DamageInheritEffect
                          在此字段中设置的效果将在施加主要伤害后触发。
                          它将继承主要伤害的伤害值。
                          新CEffectDamage标旗:NoZeroDamageInherit
                          此标旗启用后,造成的伤害为0时不触发DamageInheritEffect。
                          新CEffectDamage:系数
                          这是一个额外的系数,将与所有其他现有系数相乘。
                          此字段支持累加器,令MOD作者可以基于此系数创建公式。
                          武器前效果
                          新武器字段:PreEffect。
                          这相当于效果版的PreEffectBehavior,它支持验证目标单位,从而决定是否应当执行PreEffect。
                          同质干扰支持
                          新CAbilEffect标旗:HomogenousInterrupt
                          此标旗启用后,用户将可以看见以下行为:如果玩家选择一个正在引导法术的单位并命令其移动,此单位会停止引导并移动。如果玩家选择多个单位,其中至少有一个单位未引导法术,那么只有未引导法术的单位会立即移动。在这一情景中,移动指令对于所有正在引导法术的单位来说需要排队等待。
                          此标旗关闭后,用户将观察到原始的SC2行为模式。


                          IP属地:浙江15楼2020-07-29 11:23
                          收起回复
                            修正了CAbilIcon框架会无视其命令索引属性的错误。
                            修正了导致经典地图转换器崩溃的问题。
                            修正了行为的率倍数数组修正符不能在变形技能上正确工作的问题。
                            修正了如果设置为已验证的单位不存在时,CValidatorUnitTestWeaponType验证器会引起崩溃的问题。


                            IP属地:浙江16楼2020-07-29 11:24
                            收起回复
                              2025-07-25 05:25:51
                              广告
                              不感兴趣
                              开通SVIP免广告
                              这些大概就是本次5.0ptr我个人认为比较重要的内容了。
                              另外有非常多关于warcraft3mod的内容,鉴于并不是每个人都需要,就不搬了。
                              如果要查看完整内容,请参阅原贴https://sc2.blizzard.cn/articles/1001/80136
                              另外,war3mod得到了重大的优化,从模型到质感到方方面面。


                              IP属地:浙江17楼2020-07-29 11:29
                              收起回复