﻿WEBVTT

00:00:01.028 --> 00:00:04.518
您好，欢迎使用艺术家脚本。我叫Sybren。

00:00:04.518 --> 00:00:07.668
在本集中，我们将考虑创建自己的插件。

00:00:08.694 --> 00:00:13.349
在上一个视频中，我们采用了现有代码要创建猴子网格，

00:00:13.471 --> 00:00:17.576
请在其周围添加一些内容以将其转变为运算符。

00:00:17.576 --> 00:00:20.961
在本视频中，我们将做基本相同的事情。

00:00:20.961 --> 00:00:26.101
我们采用现有的运算符，在其周围添加代码，将其保存到其他位置，

00:00:26.101 --> 00:00:28.411
然后，我们将拥有我们的插件。

00:00:28.411 --> 00:00:32.376
到当前为止，我们的代码始终位于Blend文档本身内。

00:00:32.376 --> 00:00:35.726
这是完美的情况特定于该Blend文档的位置。

00:00:37.847 --> 00:00:41.632
每个人都想抓它。但是，这并不总是有用的。

00:00:43.145 --> 00:00:46.755
因为也许您也想在其他Blend文档中使用它。

00:00:46.877 --> 00:00:52.672
您始终希望可以使用它。甚至您甚至想与同事或朋友共享您的代码。

00:00:55.394 --> 00:01:00.234
在所有这些情况下，将您的代码转换为插件是正确的选择。

00:01:00.377 --> 00:01:03.317
在此视频中，我们将介绍以下内容。

00:01:03.317 --> 00:01:07.157
将查看实际上是什麽代码文档，如何编辑它。

00:01:07.768 --> 00:01:09.898
我们将看看Add-on的成分。

00:01:10.140 --> 00:01:14.705
我们将把我们的猴子网格运算符变成一个猴子网格插件。

00:01:14.962 --> 00:01:20.617
最后，我们将研究您将要做的事情，即在编辑代码后重新加载代码。

00:01:22.873 --> 00:01:24.848
因此，让我们开始吧。

00:01:24.848 --> 00:01:26.698
实际是什麽代码文档？

00:01:26.727 --> 00:01:31.812
您可能已经猜到了，它实际上只是一个带有名称的纯文本文档

00:01:31.812 --> 00:01:34.422
以“.py”结尾。真的没有更多了。

00:01:37.667 --> 00:01:42.517
编辑代码也很简单。您几乎可以在那里使用任何文本编辑器。

00:01:43.099 --> 00:01:47.314
我只是不使用文本处理器例如Open Office或Microsoft Word，

00:01:48.369 --> 00:01:50.399
因为这些不只是纯文本。

00:01:51.992 --> 00:01:53.687
您可能会想使用

00:01:53.687 --> 00:01:55.982
Blender自己的内部文本编辑器。

00:01:58.167 --> 00:02:01.847
毕竟，它甚至具有针对Python的语法突出显示。

00:02:01.847 --> 00:02:06.712
这意味着它有一些Python的基本知识。它知道关键字“for”和“if”和“深度”，

00:02:07.481 --> 00:02:12.746
并且可以为它们加上不同的颜色，从而使您更容易理解代码的结构。

00:02:14.409 --> 00:02:19.074
但是对于Blender的编辑器，我总是感到困惑。我不知道

00:02:19.074 --> 00:02:24.564
我正在编辑文本文档，该文档是Blender的一部分，或者对磁盘外部安全。

00:02:25.462 --> 00:02:28.102
要保存文档，您必须按Alt S

00:02:28.715 --> 00:02:32.040
而不是Ctrl S，否则您将保存Blend文档

00:02:32.550 --> 00:02:38.365
而不是文本文档。我宁愿推荐一些不同的东西，一些更适合该任务的东西。

00:02:38.815 --> 00:02:41.615
我个人最喜欢的是Visual Studio代码。

00:02:42.527 --> 00:02:47.272
它是Microsoft的一个开源项目，并且是一个非常好的编辑器。

00:02:47.272 --> 00:02:51.122
其他受欢迎的选择是@More Sublime Text。

00:02:51.122 --> 00:02:55.747
或者，如果您想做的真的很大，Pie Charm，还有很多选择。

00:02:55.787 --> 00:03:01.212
因此，我建议您下载一些，然后尝试一下，这将是最好的选择。

00:03:01.806 --> 00:03:03.611
至於代码文档的名称，

00:03:04.224 --> 00:03:07.074
我已经提到过，它必须以“py”结尾。

00:03:07.419 --> 00:03:09.639
不过，还有其他一些要求。

00:03:09.639 --> 00:03:11.129
您不必全部了解。

00:03:11.254 --> 00:03:16.719
如果您只是坚持不带任何重音，下划线和数字的字母，那将会很好。

00:03:17.906 --> 00:03:21.486
如果您想了解有关创建附加组件的更多信息，

00:03:22.783 --> 00:03:27.603
可以转到“帮助”菜单，然后转到“高级”，“脚本”和“扩展Blender”，

00:03:27.603 --> 00:03:30.583
那里有很多信息，包括Add-on教程。

00:03:32.097 --> 00:03:34.907
现在，让我们看一下Add-on的成分。

00:03:36.479 --> 00:03:39.289
您的Add-on中确实必须具备三件事。

00:03:40.636 --> 00:03:43.541
在文档顶部，应该有一些元数据

00:03:44.179 --> 00:03:46.024
在“ bl”信息日期中，

00:03:46.472 --> 00:03:49.467
并且此元数据应包含Add-on的名称(Blender的哪个版本)

00:03:51.231 --> 00:03:54.141
与它兼容，附加组件应位于的类别，

00:03:54.905 --> 00:03:56.355
和其他一些信息。

00:03:56.601 --> 00:04:01.601
您已经了解了第二和第三件事，那就是Register和Unregister函数。

00:04:03.796 --> 00:04:09.206
这些功能告诉Blender您的插件包含什麽，以便可以正确加载和卸载它。

00:04:10.703 --> 00:04:13.568
您在顶部看到的“bl”信息称为字典。

00:04:14.858 --> 00:04:16.908
这基本上是一个查找表。

00:04:17.255 --> 00:04:22.705
我们在《艺术家脚本》第5章中已经看到过它。好吧，让我们开始吧

00:04:22.705 --> 00:04:28.415
这个微型插件可以工作。首先，我们必须将其保存到磁盘上的某个位置。

00:04:28.542 --> 00:04:33.717
现在并不重要，因为我们将安装它，然后Bblender将其复制

00:04:34.794 --> 00:04:38.374
到最终位置，以后我们可以从那里进行编辑。

00:04:39.132 --> 00:04:43.267
因此，我将其保存到“Scripting for Artists”文档夹中，

00:04:43.267 --> 00:04:46.507
并且仅使用小写字母和下划线作为名称，

00:04:47.437 --> 00:04:49.047
结束命名“.py”。

00:04:51.768 --> 00:04:53.793
现在我们必须安装插件。

00:04:56.431 --> 00:05:01.196
转到偏好设置，转到插件，安装并找到我们最小的插件。

00:05:03.090 --> 00:05:08.175
现在，该插件已安装到Blender中，并为我们复制到了正确的位置。

00:05:08.523 --> 00:05:12.048
您可以看到我们在这里。这是我的主目录

00:05:12.318 --> 00:05:17.363
“.config/blender/Blender的版本/脚本/插件/smallest_Add-on.py”

00:05:20.201 --> 00:05:23.656
我们可以手动将其放到那里，一切都很好。

00:05:23.656 --> 00:05:25.786
只要文档在那里，就好。

00:05:25.994 --> 00:05:30.149
但是通过这种方式，Blender会告诉您必须去的地方。

00:05:30.312 --> 00:05:34.777
可以看到，用户界面显示关于我们的插件的信息很少。

00:05:35.090 --> 00:05:40.145
因此，在激活插件之前，我们先看看是否可以解决该问题。

00:05:40.403 --> 00:05:43.668
我们可以回到Blender文本编辑器，更改文档，

00:05:44.987 --> 00:05:46.062
再次保存，

00:05:46.533 --> 00:05:49.233
再次安装，复盖刚刚安装的文档，

00:05:51.208 --> 00:05:55.218
然后，单击刷新。但是我认为这是太多的工作。

00:05:55.218 --> 00:06:00.533
让我们仅使用您在此处看到的文档，然后在代码编辑器中将其打开。

00:06:01.265 --> 00:06:03.240
这是给您的一个小把戏。

00:06:03.240 --> 00:06:07.255
如果要弄清楚Python文档在哪里，可以将其导入。

00:06:09.179 --> 00:06:13.184
您可以说“导入最小的插件”，这将加载我们的插件。

00:06:13.774 --> 00:06:19.049
您会看到，因为我们有一个Register函数，例如，它打印“hello world”，

00:06:19.679 --> 00:06:25.354
正如我们期望的那样，我们还有一个未注册的功能，可以说是“再见的世界”，

00:06:25.354 --> 00:06:27.764
这使您可以从Blender到Add-ons。

00:06:28.695 --> 00:06:31.625
还有他们的秘密名字，应该不会出现。

00:06:32.441 --> 00:06:34.531
“底线底线文件底线底线”(“__file __”)

00:06:35.965 --> 00:06:39.390
这将为您提供Add-on存储在其中的文档。

00:06:39.390 --> 00:06:44.735
因此，这可以将粘贴复制到您的编辑器中，并实际上会打开文档。

00:06:44.735 --> 00:06:49.215
在这里，我们在Visual Studio代码中，我们打开一个文档，

00:06:49.215 --> 00:06:53.505
并且，当然，文档打开对话框是特定于平台的。

00:06:53.505 --> 00:06:57.410
就我而言，我可以将文档名粘贴到控件V上，

00:06:57.410 --> 00:07:01.700
按“输入，然后打开文档。”在这里，我们看到了代码

00:07:01.700 --> 00:07:05.395
Blender刚刚为我们安装的。这是我们的代码文档。

00:07:05.550 --> 00:07:09.900
现在，让我们使用更多信息来扩展bl info指令。

00:07:10.096 --> 00:07:12.846
首先，让我们添加一个作者字段。

00:07:15.308 --> 00:07:18.133
您可以根据需要添加电子邮件地址。

00:07:18.133 --> 00:07:20.998
这样，人们可以轻松阅读您的内容。

00:07:20.998 --> 00:07:24.023
其余字段已记录在Python API手册中。

00:07:25.673 --> 00:07:31.333
因此，在Blender中，只需转到Help Python API，然后搜索BL Info。

00:07:31.333 --> 00:07:32.583
这是更多字段

00:07:32.785 --> 00:07:35.195
我只是从该文档中复制而来。

00:07:35.822 --> 00:07:40.057
位置是人们可以在Blender本身中找到它的Add-on的位置。

00:07:42.765 --> 00:07:45.185
由于我们还没有任何用户界面，

00:07:47.126 --> 00:07:50.176
因此我们可以在此处键入“运算符搜索”，

00:07:50.176 --> 00:07:55.501
然后人们将拥有自己寻找。说明仅描述了附加组件“更多猴子”的功能。

00:07:58.179 --> 00:08:02.419
其他字段我们暂时将其留空。我用Ctrl S保存了它。

00:08:03.551 --> 00:08:08.131
回到Blender中的“偏好设置”，我们已经更改了磁盘上的文档。

00:08:08.599 --> 00:08:10.474
让我们单击刷新按钮。

00:08:10.803 --> 00:08:15.688
你可以看到它再次折叠了该面板，这表明该面板已重新加载。

00:08:16.656 --> 00:08:20.426
当我们打开它时，我们得到在此键入的信息。

00:08:21.324 --> 00:08:26.859
注册和取消注册功能没有太大作用，它们只是在屏幕上打印一些内容。

00:08:27.250 --> 00:08:31.375
那麽，让我们看看会发生什麽。我在这里显示终端，

00:08:31.375 --> 00:08:35.115
当我们激活Add-on时，您可以看到“Hello World”。

00:08:35.115 --> 00:08:40.280
当然，当我们禁用时，您可以看到“再见世界”。这一直在继续。

00:08:41.041 --> 00:08:46.721
现在，我们知道了将猴子网格运算符转变为猴子网格插件所需的一切。

00:08:48.197 --> 00:08:52.127
现在我们回到了Visual Studio代码。你可以看到

00:08:52.127 --> 00:08:55.942
我打开了侧面的Add-ons目录，所以您可以看到，

00:08:55.942 --> 00:08:58.107
我已经安装了Blender Cloud Add-on，

00:08:58.107 --> 00:09:01.687
我们刚刚制作了最小的插件。让我们来一个新的。

00:09:01.733 --> 00:09:07.048
创建一个名为“monkey create.py”的新文档。从我最小的插件

00:09:07.382 --> 00:09:11.802
我将BL信息复制到其中。将名称更改为“Monkey Grid”

00:09:13.846 --> 00:09:18.071
因为它不是猴子网格插件。让我们去添加新网格。

00:09:18.071 --> 00:09:22.406
因此，我们将类别更改为“网格”。位置仍为“运算符搜索”。

00:09:22.451 --> 00:09:25.561
现在，说明比以往任何时候都更适用。

00:09:26.046 --> 00:09:28.016
让我们保持现在的样子。

00:09:29.022 --> 00:09:32.822
除了我们拥有的东西，这是我们唯一需要的东西。

00:09:32.877 --> 00:09:38.862
我们的代码文档在正确的位置，具有正确的名称，顶部具有正确的BL信息。

00:09:41.791 --> 00:09:43.806
现在，我们要做的就是

00:09:43.806 --> 00:09:48.556
将我们在该Blend文档中已经拥有的所有代码复制到该文档中。

00:09:48.922 --> 00:09:49.962
回到Blender。

00:09:51.487 --> 00:09:56.007
我复制所有代码。然后将Visual Studio代码粘贴到其中。

00:10:00.587 --> 00:10:03.247
快速检查一下，没有什麽奇怪的。

00:10:04.276 --> 00:10:11.196
之所以可以删除它，是因为我们不再从编辑器本身运行它，而是仅将其作为插件加载。

00:10:11.904 --> 00:10:13.974
我们不再需要一点点魔术。

00:10:15.187 --> 00:10:17.837
保存文档，现在我们回到Blender。

00:10:18.638 --> 00:10:22.258
可以肯定的是，让我们从一个新文档开始。

00:10:22.258 --> 00:10:26.773
然后，转到“偏好设置”，再次刷新列表，搜索猴子。

00:10:30.965 --> 00:10:34.760
在那里，我们有了猴子网格，可以激活它。

00:10:34.760 --> 00:10:38.570
让我们看看它是否有效。按F3，“猴子网格”，

00:10:40.483 --> 00:10:43.468
我们在那里，我们自己的插件正在工作。

00:10:45.444 --> 00:10:50.489
一切正常，这很好。但是从一开始，事情就永远不会完美。

00:10:51.655 --> 00:10:57.535
因此，您要做的是经常在代码编辑器和Blender本身之间来回切换，然后

00:10:58.191 --> 00:11:00.796
您必须告诉Blender重新加载脚本。

00:11:02.186 --> 00:11:05.956
我们已经在Add-ons列表中看到了此Refresh按钮。

00:11:06.282 --> 00:11:08.547
但这只会刷新“Add-ons”列表，

00:11:09.514 --> 00:11:13.579
实际上并不会从磁盘中重新加载已加载的App-on。

00:11:14.738 --> 00:11:19.778
让我们进行更改，以便可以看到重新加载实际上做了一些事情。

00:11:21.203 --> 00:11:22.698
返回代码编辑器。

00:11:23.053 --> 00:11:27.563
假设我们更改了计数Y的默认值，将其从2更改为5，

00:11:30.887 --> 00:11:32.932
并将文档保存回Blender。

00:11:33.227 --> 00:11:37.982
当然，如果重做猴子网格，我们仍然将2作为默认值。

00:11:38.564 --> 00:11:41.099
因为我们还没有重新加载脚本。

00:11:41.626 --> 00:11:43.821
按F3，重新加载脚本，

00:11:44.900 --> 00:11:47.300
实际上将重新加载您的脚本。

00:11:47.455 --> 00:11:52.380
现在，当我们这样做时猴子网格，可以看到默认设置为5。

00:11:53.890 --> 00:11:56.080
所以这是您将要做的事情。

00:11:56.410 --> 00:12:00.490
这就是“艺术家脚本”的这一集。回顾一下，Add-on是

00:12:01.949 --> 00:12:06.239
只是在计算机上的特定位置具有特定名称的文本文档。

00:12:07.422 --> 00:12:10.922
它在顶部有元数据在BL信息字典中。

00:12:11.281 --> 00:12:14.046
它的底部具有已注册和未注册功能。

00:12:15.136 --> 00:12:18.976
最后，重新加载完成该重新加载脚本运算符。

00:12:19.404 --> 00:12:24.284
就是这样。如果您有任何疑问或意见，请在下面发表评论。

00:12:24.284 --> 00:12:26.089
我很快就会与你见面。