# 制作原版可对话生物
本篇教程获得第一期知识库必看教程奖。
获奖作者:某只苦力怕。
首先,默认你会自定义生物,而且知道组件组、组件和行为。
# 教程开始
第一步,生物行为
先在生物的行为文件的description中加入scripts和animations,引用动画控制器(行为包里的)。
在生物的行为文件中加入些东西,使得玩家可以触发
events
(行为)添加component_groups
(组件组),我用的是minecraft:interact
组件(交互组件)触发events
,然后在组件组中用minecraft:variant
组件和minecraft:mark_variant
组件定义variant
和mark_variant
的数值,记得在组件组中写上触发下一个events
的组件。
第二步,动画控制器
动画控制器(行为包里的)写法也和材质包里的一样用transitions
进行切换,然后我这里同时使用variant
和mark_variant
为条件,当他们都为1时,触发动画控制器liaotian1
,然后这个动画控制器里的on_entry
执行指令:/say 嘤嘤嘤,教学开始
。
第三步,对图2中44行liaotian5
里的/function yuyan
进行定义,可以用其他指令比如function
、tellraw
、title
,如果tellraw
放在动画控制器中反而会导致整个动画控制器文件错误,所以放在mcfunction
文件中。
第四步,对生物行为文件中的interact_text
里的action.interact.liaotian
进行定义,推荐这个方法,当然你想直接在生物行为文件中输入中文也是可以。
# 小结
这样一个利用指令进行对话的npc
就做好了,你也可以在组件组中加入些攻击组件,这样对话到那个组件组,生物就会开始攻击玩家,也可以在动画控制器中加入其他指令,比如playsound
(播放音效),这样就能代替minecraft:interact
组件里的play_sounds
(交互时播放音效)了,当然如果你要自定义对话按钮的图案的话就没办法用原版的方法了,这边推荐用自定义ui+python
的方式了。
附带教程文件的下载地址:教程附带模组 (opens new window) 。