找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问移动社区

快捷导航
发帖
首页收藏任务勋章改名|变性卡加入我们新手指南
全站
5小时前
全站
5小时前
全站
5小时前
全站
5小时前
全站
6小时前
全站
11小时前
全站
11小时前
全站
11小时前
全站
18小时前
全站
19小时前
全站
20小时前
全站
20小时前
全站
20小时前
全站
20小时前
全站
20小时前
全站
21小时前
系统
23小时前
全站
1天前
全站
1天前
系统
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
全站
1天前
查看: 1192|回复: 5
收起左侧

[教程] 如何编写Zerbu's Mod Constructor(V4)脚本系列课程(二)——流程可视化

  [复制链接]

族谱关系1
发表于 2021-12-31 00:56:03 | 显示全部楼层 |阅读模式

快快登录说出你的故事吧~!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 K大叔 于 2022-1-8 00:53 编辑

系列课程索引:
如何编写Zerbu's MOD Constructor(V4)脚本系列课程(二)——流程可视化
==========================================================================================

上一篇我们完成了一个简单线性流程脚本,下边我们以一个简易的真心话大冒险MOD为例,做个扩展。

实现目标:
==========================================================================================
真心话大冒险(简易版)
  • 玩家控制角色与另一个小人对话,选择“一起真心话大冒险(单机版)”或“一起真心话大冒险(联机版)”,对方接受后开启小游戏;
  • 首先是转酒瓶,看酒瓶朝向谁,转酒瓶用一个情绪Buff来展示;
  • 转酒瓶Buff持续一小会后,随机出酒瓶的指向,酒瓶指向也是情绪Buff,分别展示给参与的双方;
  • 酒瓶指向的人成为挑战者,需要进行真心话或者大冒险,另一方成为监督者;
  • 从题库中随机真心话或大冒险题目(根据最开始单机版、或联机版的对话选择,题目会不一样);
  • 把题目通过情绪Buff展示给双方;
  • 挑战者在规定时间内完成了题目要求的挑战,本轮结束;
  • 联机版中,真心话题目是需要挑战者线下口述或线上连麦语音进行回答,监督者认为挑战者回答的靠谱,可以通过对话“对他/她的回答表示满意”来触发对方挑战成功;
  • 挑战者在规定时间内没有完成题目要求,或主动放弃挑战,获得惩罚情绪Buff,本轮结束。

==========================================================================================

我们先看一下针对这个简易MOD,可视化流程会是什么样子的:


下面介绍具体节点的定义和实现方式,大家可以对照上边的流程图来理解:

1.BUFF
图片3.png
用方块代表BUFF,注意上一篇重点讲述的概念,BUFF可以当成函数,作为函数,可以被调用,可以执行各种功能,可以根据条件再去调用其他函数(通过LOOT)
=======================


有一些BUFF具备特定的功能,为了方便识别,我们给它们标注不同的颜色:

2.展示类BUFF
图片4.png
在小人的情绪栏作为情绪显示出来
也是大家理解BUFF最正常的用法,通过BuffInfo、Duration、Emotion等组件来控制展示内容、时长、情绪

=======================

3.状态类BUFF
图片5.png
状态类BUFF,添加BUFF就是设定状态,之后可以通过BUFF是否存在来进行状态判定
状态Buff脚本里可以没有任何组件,完全由其他流程产生和判断

=======================

4.延时类BUFF
图片6.png
实现延时执行的功能
一个延时类BUFF的实现方法是通过设定BUFF的持续时间,然后给这个BUFF添加Actions->Loot on Remval组件,再接需要延时执行的Loot
=======================

注意:一个BUFF可以同时具备展示、状态、延时等功能,以上颜色标记只是为了理解方便,你可以根据一个BUFF主要承担什么功能来标记颜色

=======================

5.LOOT
图片7.png
用三角代表LOOT,Loot可以理解为对其他函数进行调用的指令
=======================

一些LOOT有特定功能,为了方便识别,我们给它们标记字母:

6.随机型LOOT
图片8.png
从一群BUFF中随机一个调用
实现方式是通过Buff Actions->Add Random Buff组件来调用Buff

=======================

7.判断型LOOT
图片9.png
根据条件判断来决定是否调用指定BUFF
在Add Buff或Add RandomBuff组件中通过Test Condition Sets项进行条件设定
具体的条件也应当在流程图中表述清楚
=======================

注意:
  • 一个LOOT可以同时具备随机调用、条件判定,你可以根据自己的习惯来标示,例如同时标记RJ字母;
  • 一个LOOT可以同时进行多个BUFF的调用,可能很多小伙伴以为一个Loot只能添加一个Add Buff/Add Random Buff组件,不是的,可以添加多个!!从ADD COMPONENT里再添加一次就可以了。像这样:
image.png
=======================


8.多重调用LOOT
图片10.png
当一个LOOT有多个Add Buff/Add Random Buff组件(很可能是因为执行条件不同,所以不能放在一个Add Buff中)时,为了清晰表达每个调用的条件和指向,这里用小圆圈来区分不同的AddBuff/Add Random Buff
=======================


9.移除BUFF
图片11.png
移除指定Buff,通过Loot调用Buff Actions->Remove Buffs组件来实现
=======================


10.广播
图片12.png
广播Broadcaster,可以让附近的SIMS触发Loot或者Buff,MC的广播机制有一些坑点,我们在下一篇教程里详细介绍

=======================

11.调用关系
图片13.png
节点之间用有方向的箭头来表示调用关系

=======================

12.调用关系B
图片14.png
从Buff直接引出的箭头,是通过Buff里Actions->Loot on Addition组件来实现,意思是在Buff被添加时,执行箭头指向的Loot
=======================


13.调用关系C
图片15.png
对于依赖于Buff持续时间的功能,在Buff下边增加两个横线,来表示Buff持续时间的起止,从下横线引出的箭头,意思是Buff结束/被移除时,执行箭头指向的Loot,通过Buff里Actions->Loot on Removal组件来实现

=======================

14.调用关系D
F2.png
这也是一个依赖于Buff持续时间的功能,在Buff存续期间,检测到指定行为,执行箭头指向的Buff
实现方式是,在Buff中添加Actions->ContinuousLoots组件,然后在这个组件中添加Continuous Loots,用这个Loot调用接下来的Buff
=======================

PS.一个MC使用的小技巧:

一般一个ELEMENT有两种方式创建:


方式一,通过主菜单的ADD ELEMENT创建:
F3.png
通过这种方式创建,左侧列表会出现你创建的ELEMENT,之后可以方便快速的选择、编辑,同时这个ELEMENT也有你定义的名称,可以方便的调用(一般可通过ReferenceType->Existing Element或者 来调用)

方式二,在组件的Reference Type中,通过New Element创建:
image.png
image.png
通过这个方式创建ELEMENT,在创建时比较方便,没有额外冗余的创建和调用流程,缺点是不会出现在主界面左侧的列表上、别的组件想调用这个ELEMENT也很难选择;
注意:你固然可以给通过方式二创建的ELEMENT设定一个特定的名称(通过SET LABEL)来实现方便的给其他流程调用,但是强烈建议你不要这样做,一个实际的情景:
踩坑示例:假设通过LOOT1,New Element了一个new Buff1,这时候你觉着这个new Buff1是个比较通用的Buff,LOOT2、LOOT3、LOOT4……也需要调用,这时候你在LOOT2/3/4中通过Existing Element调用了这个new Buff1,过一会儿,你因为各种原因觉着不再需要LOOT1了,或者LOOT1不需要调用new Buff1了,这时候你删除/修改了LOOT1,然后你会发现悲剧了,整个new Buff1消失了……,LOOT2/3/4中也找不到了

综上,我建议以下情况使用方案一来创建ELEMENT:
  • 具备通用性/潜在的通用性,会被其他多个流程调用的;
  • 需要经常调整组件功能、参数进行测试的;
  • 展示型Buff;

而,只会且未来也预期只会被父节点调用、功能简单不太会经常反复调试的ELEMENT可以采用方案二方便的创建;


==========================================================================================
OK,以上是一种流程可视化的MC脚本编写方法,对于大型项目,有助于理清流程思路,符号都是我自己定义的,你可以有你自己习惯的定义,这个教程主要目的是启发思路。

教程示例是简易版真心话大冒险流程,我有制作正式可玩的版本,有兴趣可以从这个帖子下载:【游戏交友】真心话大冒险MODv1.0——崭新感情培养方式,支持联机交友
相应的这里附上完整版真心话大冒险流程见下图:

后续课程,我会继续给大家讲解一些常用组件的用法和坑点。

==========================================================================================


关于SIMS的功能脚本,本人也还在持续学习中,有志同道合的小伙伴可以加我的 QQ:231726237 ,一起学习、一起讨论、有机会一起合作~~


==========================================================================================

评分

参与人数 3肥皂 +5 S币 +510 辣条 +10 收起 理由
samysims4 + 5 + 2
喜久福 + 5 + 2 点赞!
北城卧龙 + 5 + 500 + 6 点赞!

查看全部评分

楼主热帖

共收到 50 菊花
打赏榜
喜久福
共打赏 50 菊花
暂无
捷足先登
暂无
捷足先登
4
暂无
--
5
暂无
--
6
暂无
--
7
暂无
--
版权声明
本站积极遵守中华人民共和国各项法律法规,促进良好是社会公共道德,鼓励劳动者劳有所得。
为保护作者和平台的共同利益,在本站发布的原创内容所包含模型、图片、代码等版权归作者和平台共有,平台承诺不将此权利行使于法律行为以外用途。
本站原创作品仅供购买或下载者本人使用,任何平台或个人擅自转载、售卖本站原创作品,本站均保留诉讼权利。
此条款自作品发布起即时生效。

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复

使用道具 举报

族谱关系66
发表于 2021-12-31 01:21:52 | 显示全部楼层
给力!!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

族谱关系6
发表于 2021-12-31 13:42:02 手机端访问 | 显示全部楼层
单从这个教程的仔细程度,就很敬佩了,真的辛苦大佬了!!!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

族谱关系6
发表于 2021-12-31 13:44:01 手机端访问 | 显示全部楼层
自己研究软件的时候差点吐了,对大型MOD完全不知道怎么做,感谢大佬,跪等大佬之后的教程~~~跪了跪了
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

族谱关系0
发表于 2021-12-31 15:02:45 | 显示全部楼层
谢谢大佬,大佬好厉害!!!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

族谱关系0
发表于 2022-1-1 02:30:21 手机端访问 | 显示全部楼层
十分感谢教程!!!先马!
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:

本站官方淘宝店只有【三宫六院论坛】这一个,店址:sgly.taobao.com,除此之外都是假冒的!!
本站不支持任何形式的线下交易,不论谁以任何形式要求您打款给任何第三方人士或平台,请勿上当!
站内出现的一切破解补丁、软件资源来自网络,相关信息仅限于学习和研究目的,版权争议与本站无关。
您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。

如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权情况请邮件与我们联系处理,我们会协助编辑或删除相关内容。

Mail To:Service@Sglynp.Com

下载客户端
安卓客户端 苹果客户端

快来加入我们吧!!

官方微信公众号

三宫六院吧

(豫ICP备2021003909号-2 | 豫公网安备 41010302002732号)

Powered by Discuz! © 2001-2022 Tencent Cloud.

公众号| 手机版| 小黑屋| 三宫六院

GMT+8, 2024-4-25 18:44