找回密码
 点一下
查看: 2048|回复: 5

花了4天时间对亚顿之矛的界面复刻毫无进展……

[复制链接]
发表于 2016-1-29 17:24:20 | 显示全部楼层 |阅读模式
首先我已经知道这个界面是单位技能的调用(头目在DEMO的帖子)
然后通过深挖,发现这东西其实是来自内建的库中
然后从里面以调取……这都什么玩意……
捕获.PNG
        对话框 -为对话框项面板CU_GPPanelHolder创建一个使用模板LotV_SoAMissionUIPanel/SoAPanelTemplate的面板
        变量 -设置CU_GPPanel[Player] = (上一次创建的对话框项)
        对话框 -将一个名为SoAButtonHolder的现有面板,衔接在对话框项面板CU_GPPanel[Player]中
        变量 -设置LastFrame = (上一次创建的对话框项)
        对话框 -为对话框项面板LastFrame创建一个使用模板LotV_SoAMissionUIPanel/SoACommandPanelTemplate的命令面板
        变量 -设置CU_GPCmdPanel[Player] = (上一次创建的对话框项)
        综合 -为从1到4的每个包含增量1的整数ButtonIndex,执行(动作)
            动作
                对话框 -将一个名为"CommandButton0" + IntToString(lv_buttonIndex-1)的现有按钮,衔接在对话框项面板CU_GPCmdPanel[Player]中
                变量 -设置CU_GPCmdButtons[ButtonIndex][Player] = (上一次创建的对话框项)
                对话框 -将一个名为"SoAAbilityArrow0" + IntToString(lv_buttonIndex)的现有面板,衔接在对话框项面板CU_GPPanel[Player]中
                变量 -设置CU_GPCmdButtonArrows[ButtonIndex][Player] = (上一次创建的对话框项)
                对话框 -为(玩家组(Player))将CU_GPCmdButtonArrows[ButtonIndex][Player]移动到相对于CU_GPCmdButtons[ButtonIndex][Player]的底部(距离顶部)的(0,15)
        对话框 -将一个名为SoAEnergyBarFill的现有面板,衔接在对话框项面板CU_GPPanel[Player]中
        变量 -设置CU_GPEnergyBar[Player] = (上一次创建的对话框项)
        对话框 -将一个名为SoAEnergyLabel的现有标签,衔接在对话框项面板CU_GPPanel[Player]中
        变量 -设置CU_GPEnergyLabel[Player] = (上一次创建的对话框项)
        对话框 -为(所有玩家)隐藏CU_GPPanel[Player]
        对话框 -将一个名为SoACommandCutscene的现有过场动画,衔接在对话框项面板CU_GPPanel[Player]中
        变量 -设置CU_GPCutscene[Player] = (上一次创建的对话框项)
        对话框 -为(玩家组(Player))将CU_GPCutscene[Player]的过场动画设置为Cutscenes\UI_SoAMission.SC2Cutscene
        过场动画 -播放(从CU_GPCutscene[Player]获取过场动画ID)
        对话框 -将一个名为SoAFillScene的现有过场动画,衔接在对话框项面板CU_GPEnergyBar[Player]中
        变量 -设置CU_GPEnergyBarScene[Player] = (上一次创建的对话框项)
        对话框 -将一个名为SoAOverlayCutscene的现有过场动画,衔接在对话框项面板CU_GPPanel[Player]中
        变量 -设置CU_GPEnergyGlassScene[Player] = (上一次创建的对话框项)
这里面涉及了好几个生僻触发器:

1:衔接标准对话框项(在指定类型的默认UI中衔接一个现有对话框项。这允许了在内置UI中对任意框体进行动态修改。那些由已锁定文件所创建的框体无法被衔接。)
2:在面板中创建曲子模板的对话框项(在指定的对话框项面板中创建一个使用指定模板指定类型的对话框项。Flash对话框项将只作用于暴雪娱乐的地图上。)
3:衔接对话框项(将一个指定类型的现有对话框项衔接在指定的对话框项中。)
4:设置对话框项过场动画(为指定对话框项设置一个过场动画。)

相比之下,那个没翻译的“setdialogitemunitgroup”简直不值一提……
4天下来一个指令都没看懂……
整体似乎完全基于“无新建对话框”而完全“衔接默认UI”而一块一块衔接出来的,这种构造界面的方式完全刷新了我的三观……

你说简单的复刻,应该没那么难,调取soa的图片,然后塞4个大按钮2个小按钮就差不多了
但首先中间的能量条显示不出来
然后全程缺乏动画效果(也就是操作界面的流光感和载入时的生成感)

所以此时我的心态是崩溃的

发表于 2016-2-1 10:25:54 | 显示全部楼层
所谓“衔接”,我通常是说成“映射”的。

简单来说就是这样一个意思。就是从游戏界面上挖一块下来,然后包装成一个对话框项来对它进行操作。

因为触发器无法直接操作UI,只能操作对话框项。但是实际上每个对话框项本质上都是一个UI框体。

因此界面上每一个元素,只要它有名字,全部都能被触发器捕捉到然后映射成对话框项来进行操作。


我一向以来都提倡使用这种操作方式,用触发器来拼一个对话框毕竟太不像样了。
回复

使用道具 举报

发表于 2016-2-1 11:16:11 | 显示全部楼层
动画效果跟能量都是官方的触发器做的,

我们喜欢叫它地图"mod",不过在我看来就只是一些函数放在头部并且不准改而已....

官方做能量的办法可没有大部分作者那么聪明,其实做的可蠢可冗长了...不过是蠢触发器做的

关于"全程缺乏动画效果"

很简单啦,你没有看到创建对话框的提示么? "flash对话框项仅供暴雪使用"
回复

使用道具 举报

发表于 2016-2-1 20:34:45 | 显示全部楼层
要想做出冷却的闪光和自动施放的旋转烁是多么的困难呀。万恶的“仅供暴雪使用”。
回复

使用道具 举报

 楼主| 发表于 2016-2-1 20:38:21 | 显示全部楼层
大概明白了。
回复

使用道具 举报

发表于 2016-6-4 16:07:26 | 显示全部楼层
给个赞说的好清楚
回复 0 1

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 20:52 , Processed in 0.112433 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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