This commit is contained in:
boybook
2025-12-01 20:59:16 +08:00
parent 12738a142c
commit 760c2dd9ad
5535 changed files with 21070 additions and 2021 deletions

View File

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