# 制作原版可对话生物

本篇教程获得第一期知识库必看教程奖。

获奖作者:某只苦力怕。

首先,默认你会自定义生物,而且知道组件组、组件和行为。

# 教程开始

第一步,生物行为

  1. 先在生物的行为文件的description中加入scripts和animations,引用动画控制器(行为包里的)。

  2. 在生物的行为文件中加入些东西,使得玩家可以触发events(行为)添加component_groups(组件组),我用的是minecraft:interact组件(交互组件)触发events,然后在组件组中用minecraft:variant组件和minecraft:mark_variant组件定义variantmark_variant的数值,记得在组件组中写上触发下一个events的组件。

    img

第二步,动画控制器

动画控制器(行为包里的)写法也和材质包里的一样用transitions进行切换,然后我这里同时使用variantmark_variant为条件,当他们都为1时,触发动画控制器liaotian1,然后这个动画控制器里的on_entry执行指令:/say 嘤嘤嘤,教学开始

img

第三步,对图2中44行liaotian5里的/function yuyan进行定义,可以用其他指令比如functiontellrawtitle,如果tellraw放在动画控制器中反而会导致整个动画控制器文件错误,所以放在mcfunction文件中。

img

第四步,对生物行为文件中的interact_text里的action.interact.liaotian进行定义,推荐这个方法,当然你想直接在生物行为文件中输入中文也是可以。

img

# 小结

这样一个利用指令进行对话的npc就做好了,你也可以在组件组中加入些攻击组件,这样对话到那个组件组,生物就会开始攻击玩家,也可以在动画控制器中加入其他指令,比如playsound(播放音效),这样就能代替minecraft:interact组件里的play_sounds(交互时播放音效)了,当然如果你要自定义对话按钮的图案的话就没办法用原版的方法了,这边推荐用自定义ui+python的方式了。

附带教程文件的下载地址:教程附带模组 (opens new window)

教程开始

小结