查看: 6007|回复: 39
收起左侧

[教程] 如何编写Zerbu's Mod Constructor(V4)脚本系列课程(一)——函数思维、对话控件

  [复制链接]

发表于 2021-12-30 03:36:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 K大叔 于 2022-3-20 02:03 编辑

系列课程索引:
如何编写Zerbu's MOD Constructor(V4)脚本系列课程(一)——函数思维、对话控件

前言
Zerbu's MOD Constructor(以下简称MC)是非常好用的功能性MOD制作工具,在MMCCC大大的教程(【MMCCC教程】使用Zerbu's Mod Constructor(V4)制作职业mod【MMCCC教程】使用Zerbu's Mod Constructor(V4)制作人物特征(基础篇)中有关于使用MC编写职业和人物特性的非常详细的讲解。
本系列教程是假定你已经学过了MMCCC的教程贴,对MC已经有了基本的了解,这时当你有比较好的玩法想去实现,但苦于逻辑过于复杂,难以理清的时候,可以参考这个系列教程获得一个流程可视化编写脚本的方式。
顺便,本系列教程,也会把MC中一些可用功能、Bug及应对方式、一些常见想法的实现做个简单的说明。

我有制作一个较大型的玩法MOD,你可以参考,看看MC可以做到什么程度:【游戏交友】真心话大冒险MODv1.0——崭新感情培养方式,支持联机交友

一、MC里的函数与调用
实现大型MOD的重点是活用BUFF和LOOT;
BUFF不仅仅是情绪展示,如果你稍微学过编程,你可以把BUFF理解成函数,而LOOT就是对函数(BUFF)的调用;
当然,LOOT不仅仅可以调用BUFF还可以做很多事,BUFF的用处也非常丰富;
但是,BUFF可以当函数用,LOOT用于调用函数(BUFF),是通篇最重要的概念,请务必先理解

我们先从一个简单的线性流程来理解这个概念:


目标:创建Loot1调用Buff1,然后Buff1执行一些功能(通过情绪展示信息、延迟10分钟),结束时通过Loot2调用Buff2
线性流程示例1.png
步骤:
1.1 先创建名为Loot_test1、Loot_test2的两个LOOT和名为Buff_test1、Buff_test2的两个BUFF:
图片4.png
f2.png
image.png
图片5.png

特别提醒:不要使用中文汉字对Element进行命名!!!

创建好后,分别进行编辑:
1.2 Loot_test1:
图片6.png
image.png

Reference Type这里选择“ExistingElement”
image.png

接下来选择要调用的函数Buff_test1:
image.png
image.png

接下来以下两种方式都可以打开Buff_test1:
image.png

1.3给Buff1_test1添加一些信息:
图片7.png
图片8.png
图片9.png
image.png

在Buff1结束时采用LOOT2:
image.png
(我们通过ADD ELEMENT方式自定义产生,在左侧Roots列表可以看到的Element,可以方便的通过 图片10.png 来选择,支持CtrlShift多选)
image.png

接下来也是有两种方式打开Loot_test2:
image.png

1.4 编辑Loot_test2,调用Buff2,详细过程和1.1相同,结果如下图:
image.png

1.5 编辑Buff_test2,结果如下图:
image.png

到这里,你已经完成了一个最简单的示例,把BUFF当成函数去调用和执行,希望你能借此理解“BUFF可以当函数用,LOOT用于调用函数(BUFF)” 这句话的含义

当然这个流程的起始是个Loot,还需要有个触发机制才能执行,下边我们通过与他人对话Social Interaction来触发这个LOOT,顺便讲解下Social Interaction的用法



二、Social Interaction的用法

2.1 创建SocialInteraction_test1
图片11.png
image.png
图片12.png
image.png

在Outcomes(Only OneAllowed)里需要选且只选一种对话类型,看名称应该很好理解,需要注意的是第二个funny应该是MC作者手滑,其实是恶作剧对话:
image.png

Disable Autonomous这个选项存在bug,添加后并不会生效,需要打包好Package文件后,在S4S中再次编辑,找到这个Interaction Tunning手动把allow_autonomous这一项从True改成False(你仍需要在MC中添加DisableAutonomous组件,否则生成的Package文件中不会产生这一项)
image.png

2.2 下面我们来逐项编辑SocialInteraction_test1

2.2.1 Global Test Condition Set
image.png

我们设定个条件,此对话内容的对象必须是成年人:
image.png
image.png
这里可能会有疑惑的是Participant这一项,是指条件判断的角色是谁,默认这里留空,代表玩家正在操控的小人,本示例里我们希望进行条件判定的是聊天对象的属性,所以选TargetSim(进行聊天的目标角色)

另外Sim Info里MC也有个Bug,就是Is NPC这个判定正好反了,如果你希望判定的角色是玩家不是NPC,需要选Yes而不是选No
图片14.png

2.2.2 Interaction Name
此项是对话泡的文字显示内容,其中Name是默认显示的内容,下边是各个情绪专属的显示内容,根据玩家的主要情绪,可以有不同的说法,如果留空,就采用默认的Name里的内容
image.png

2.2.3 Interaction Tooltip

鼠标悬停在对话泡上时,浮出的小提示内容
image.png

2.2.4 Pie Menu Category

决定这个对话出现在哪个层级
image.png
图片15.png
注意,SIMS的机制中,点击一个人,直接显示的这些对话选项中,“选择更多”是分门别类按树状结构组织起来的当下可以进行的对话的内容库,而除了“选择更多”,其他选项都是从这个对话内容库中按照一定的规则推荐出来的,所以可以认为这个“选择更多”就是根目录节点,对应的是15500<<<more;


MC默认选择的129388<<<Actions在更多选择下的“动作……”目录中
图片16.png

另外比较常用的有:
图片17.png

你也可以自己创建对话目录:
图片18.png
image.png
image.png
你创建的这个自定义目录,也需要挂接母节点目录,如上图示例,挂接在了“有趣……”里
当你的MOD有很多对话,你希望汇总时,自定义目录是非常好的选择
不过需要注意的是,如果一个目录中,当前可以展示的对话选项只有1项时,这个目录就不会显示了,改为直接显示这个仅剩的对话选项


2.2.5 Pie Menu Icon

对话文字前边的小图标,可以留空就是没有
image.png

2.2.6 各种Outcomes,以Friendly Interaction为例:
image.png
  • Global Interaction:勾选后,只要Global Test Condition Set和Wait Time满足条件,对话泡就会显示;去选后,必须通过其他流程来触发这个对话的显示,例如通过Buff里Actions->Social Interactions组件。
  • Is Introduction:勾选后,该对话会出现在与陌生人的打招呼对话中,对于已经认识的人不会出现;
  • Balloon Category:小人在进行这项对话时,头顶可能会浮现的小图标气泡,生动合理的气泡可以让你的SIMS更像个人,如下图:


图片19.png

你可以通过以下方式创建自定义气泡:
图片20.png
图片21.png
图片22.png

创建好自定义气泡后,回到Social Interaction,在Balloon Category选项中选择刚才自定义的气泡:
图片23.png

  • Loot:根据对话结果调用的Loot

image.png

这里我们选择教程第一部分没获得触发的Loot_test1,并且无论对话是否成功都执行:
image.png

  • Animation:根据对话结果调用的角色动画

image.png

游戏里本身有的你可以直接调用(部分动画不太好使,原因不明),你可以输入一些关键词来看看是不是有现成的,例如:
image.png

OK,现在你可以打包运行看看结果啦。
(注意,你游戏如果是简体中文,打包的Package需要处理下才能正常显示简体,参考论坛帖:https://www.sglynp.com/t22432,建议调试期间把游戏设置为繁体中文省去麻烦)
f3.png


三、小结
本篇完整的流程图如下:
教程L1,简单线性流程.png

=================================================================================================
本课程用到的脚本下载:
游客, 本帖部分内容(如下载地址)需回复可见,请先【回复】,方可查看;亦可【充值VIP】享受免回复特权
=================================================================================================

作为系列教程的第一篇,说明的会比较详细,关于函数思维的介绍还比较简单,主要照顾还不是特别熟悉MC工具的小伙伴,下一篇我们将进入正餐,如何流程可视化地进行较大型MOD的编写。

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

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





评分

参与人数 3肥皂 +5 S币 +510 辣条 +10 收起 理由
samysims4 + 5 + 2
北城卧龙 + 5 + 500 + 6 这些年等的就是你啊!!
喜久福 + 5 + 2 助人为乐!

查看全部评分

楼主热帖

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

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

发表于 2021-12-30 10:52:06 手机访问 | 显示全部楼层
大佬牛批!!!!
我要说一句

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

回复 支持 反对

使用道具 举报

发表于 2021-12-30 11:14:25 | 显示全部楼层
前排围观大佬!
我要说一句

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

回复 支持 反对

使用道具 举报

发表于 2021-12-30 11:20:15 | 显示全部楼层
大佬牛逼!!!!!!!!!!!已申请加Q,好想学习!
我要说一句

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

回复 支持 反对

使用道具 举报

发表于 2022-1-1 02:31:34 手机访问 | 显示全部楼层
超级感谢!!
我要说一句

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

回复 支持 反对

使用道具 举报

发表于 2022-1-1 10:11:02 | 显示全部楼层
我靠靠靠靠,马上学起来
我要说一句

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

回复 支持 反对

使用道具 举报

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

本版积分规则