编写3DMAX插件到发布上线全流程

本教程,为初级新手开发者教程,帮助开发者了解从编写MAX脚本,到TK发布上线,到拖拽使用全流程。


本教程,针对以下用户适用:

  • 之前没有写过3DMAX脚本

  • 想了解下整个流程

  • 已经加入了TK开发者,想了解下如何发布工具

  • 有兴趣继续看下去的人



本章节容所讲的学习路径:

3DMAX脚本编写 > 认证开发者 > 上传发布代码 > 调试测试代码 > 素材上传 > 代码更新 > 正式发布上线 > 用户拖拽使用






一,3DMAX脚本编写






1543409842368805.jpg

1,进入3DMAX脚本编写

  • 使用MAX自带脚本编辑器即可,不需要安装大型开发软件。

  • 打开任意版本的3DMAX;

  • 打开菜单 > MaxScript > NewScript(新建脚本文件)。



1543409941235394.jpg

2,新建脚本文件后,打开是个空白文档。注意:

  • 你的界面,可能和我不同,因为我设置了代码高亮。

  • 如果你也想代码高亮,可以看看图夫以前写的教程:http://www.v5cg.com/thread-4845-1-1.html ,很简单的,照着做就行了。

  • 设置了代码高亮,就是黑底的,代码是彩色的显示效果,不设置代码高亮,就是白底黑字。

  • 如果觉得麻烦,这一步是可以跳过的,什么样的界面无所谓!!



1543410087577421.jpg

3,正式编写代码:

  • 程序员开始人生编程,写最简单的一句代码,一般都是写 hello word,世界你好啥的。

  • 不过这里,你可以写你好他好大家好,当然,你可以像我一样,写一句: messagebox "这只是消息弹窗!"



1543410281270759.jpg

4,运行代码:

  • 代码已经写好了,就这么简单!

  • 但是,写好代码,就只是文字字母而矣,要运行起来,才是程序,才有功能!

  • 快快运行一下,看看自己写的是个啥。

  • 快捷键是 ctrl E。

  • 如果写错了,会报错,先不管报啥错,你只要知道,凡是报错了,就是自己写错了就行了。



1543410264203831.jpg

5,运行结果

  • 弹出来一个对话窗!

  • 如果你已经走到了这一步,很幸运,你已经成功了!

  • 可以把这一天记录下来,这是你成为3DMAX脚本开发者的第一步。

  • 如果没走到这一步,那就认真回去看上面的步骤,重来!



1543410864426486.jpg

6,增加功能

  • 在前面的几个步骤了,非常开心的入门了。

  • 但是,好像功能太简单了点:“我要成为超级开发者,我要写超级工具箱。。。我想,我想要一键渲染,我想要点一个按纽就渲染成图,我想要点一下就建好模型...”

  • 不要急,一口吃不了个大胖子,一步步来。

  • 先写个工具界面,加两个按纽吧。

  • 把代码重写一下:

rollout gongju "工具界面窗口" width:200 height:100

(

    button anniu1 "按纽1" pos:[5,10] width:190 height:30

    button anniu2 "按纽2" pos:[5,45] width:190 height:30

)

CreateDialog gongju



1543411132550446.jpg

7,写好之后,再按 ctrl E 运行一下。

  • 再次恭喜你,一个面板上,两个按纽,你也会写了!

  • 但是,写3个按纽,4个按纽,5个按纽,你会吗?你改改,自己写试试!



1543411396234836.jpg

8,代码与界面的对应关系

  • rollout 是界面固定标识

  • gongju 是定义给程序看的主界面的名字,后面绿色双引号里的文字,是显示给人看的名字

  • button 是按纽的意思, anniu1 ,是给按纽1取的,给程序看的名字,后面引号里的中文,“按纽1”是给人看的名字

  • 按纽2同上

  • 如果要写按纽3,按纽4,自己按规则写就是了,试下吧

  • 还有,点击按纽好像啥反应也没有啊?不会渲染,不会建模呀?什么鬼???

  • 那可不,因为现在的按纽,只是个样子放在那,还没叫他们做事呢!

  • 还没有给它们写上代码,点击的时候要他们干嘛呢!

  • 接下来,给这个按纽加上真正的命令。



1543411495897692.jpg

9,增加按纽事件

  • on anniu1 pressed do : 按纽1,按下的时候,去干点啥。。。

  • 去干点啥? 如果要干很多事,最好用括号括起来,注意,代码都用英文,不要出现中文括号了。。。

  • 按纽2,要干点啥,你自己写,要么就先空着,往下学习。



1543411712169829.jpg

10,按纽1点击后,弹出消息对话框。






  • 好了,走到这一点,MAX脚本编写部分,演示结束。恭喜你已经入门了!

  • 可以将代码发布到TK上去测试了!






二,工具发布






1,成为开发者

  • 在工具发布前,必须先成为TK开发者,才能上传代码,发布工具;

  • 认证成为开发者:http://tk.v5cg.com/help/98.html ;

  • 从来没写过代码,我能认证吗?也可以的!没有经验,但想加入TK做开发的人,可以认证成为实习开发者;

  • 实习期为30天,如果不能转正式开发者,以后还想继续在TK学习发布,可以再次申请加入。



1543464511940673.jpg

2,进入工具发布:

  • 成为TK开发者之后;

  • 登录TK;

  • 在右上角菜单 > 发布工具。



1543464738127564.jpg

3,认真填写工具信息

  • 工具名称:让用户找到,并能记住你的工具的名字。

  • 工具图标:可以是动态图,但一定要做个漂亮的ICON,美观,让用户方便识别并记住。

  • 软件分类:默认是3DMAX。

  • 常用功能:你的工具是什么功能,就选什么项,可以多选。



1543464843259461.jpg

4,上传代码

  • 在TK有多种方式发布代码,在这里,只需要使用最简单的第一种,粘贴代码到这里即可。

  • 将之前在3DMAX中编写好的代码,复制粘贴到这里即可。


rollout  gongju "工具界面窗口" width:200 height:100

(

    button anniu1 "按纽1" pos:[5,10] width:190 height:30

    button anniu2 "按纽2" pos:[5,45] width:190 height:30


on anniu1 pressed do(

    messagebox "这是弹出来的消息1" title:"这是弹出来的消息头部标题!"

)


on anniu2 pressed do(

--    这里写你,按下按纽2时,想要干的事情的代码

)

)

CreateDialog gongju



1543465005494682.jpg

5,设置工具价格

  • 免费;

  • 付费,周、月、年、永久;

  • 是否可以让用户试用;



1543465064843829.jpg

6,工具介绍

  • 详细描述你的工具的功能和介绍;

  • 工具的使用流程;

  • 操作演示(加入开发者群,里面有专用的录制GIF动态图工具);

  • 视频教程;

  • 以及其它的必要说明等;

  • 标签:方便用户搜索的关键词;



1543465166459896.jpg

7,确定发布

  • 所有的选项先不管,以后慢慢了解即可。

  • 同意 > 确定。




1543465259150767.jpg

8,完成发布

  • 提交成功,发布完成;

  • 就这么简单,工具就在TK上面发布完成了。



1543465358180781.jpg

9,后台管理

  • 发布完成后,可以进入开发者后台,查看刚发布的工具,和所有发布过的工具。

  • 最新发布的工具,需要进行审核,才能上线供用户使用。

  • 待审核的工具:http://tk.v5cg.com/Developer/onConfirm.html 



1543465458812871.jpg

10,未上架状态

  • 点击待审核的工具,进入到刚刚发布的这个工具的页面;

  • 特别注意这个工具的网址,后面有个数字ID:1707,也就是这个工具的ID后,后面会用到;

  • 对于开发者来说,即使工具还未审核上线,也是可以进行调试,可以直接使用的;

  • 接下来,进行工具调试,看看能不能拖到MAX中使用。






三,工具调试






1543465600370644.jpg

1,登录TK客户端

  • 没有TK客户端的,先下载安装一下:http://tk.v5cg.com/toolkit  ;

  • 登录后,在TK客户端的最后一栏:【开发】;

  • 【开发】栏,只有成为开发者之后,才可以看到这个功能;

  • 在开发栏里,会列所所有该开发者发布过的工具,比如第一个,是刚刚发布的【我的工具】;

  • 双击【我的工具】,弹出工具介绍。



1543465749296252.jpg

2,测试使用

  • 先不管三七二一,直接把工具从【开发】栏里,拖到MAX中运行。

  • 如果出现了上图效果。恭喜你,一切顺利成功了!

  • 恭喜你,会编写代码,并且成功发布到TK上面。

  • 现在,只需通过管理员的审核,就可以供所有用户添加使用了。






四,完善功能






1543465891350643.jpg

1,新的功能需求:

  • 前面的功能太简单了点吧,就一个界面,两个按,啥功能都没有,如果就这样发布上线,一定会被有户笑话吧。

  • 再说了,没有功能的工具,也不可能会通过审核上线啊。

  • 那么,我们改进一下功能,我想要,在点击第二个按纽的时候,打开一张图片,可以吗?



1543466028859183.jpg

2,修改代码

  • 因为要让按纽二点击时,打开一个图片,需要两个动作(两个步骤)

  • 步骤一:给按纽二,增加打开图片的功能

  • 步骤二:做一个图片展示的窗口,要不然,图片没有东西来打开展示啊,是吧。

  • (当然,也可以用PS打开,可以用画图工具打开,可以用ACDSEE打开,不过这里,演示用MAX自己的窗口打开一张图片,因此,要定义一个图片窗口)

  • 写代码的时候,可以先单独写一个窗口 rollout img ,然后,在按纽2里面,增加弹出rollout img窗口,并展示图片的功能。如上图所示。

  • 这里要特别注意:打开图片的时候,用到了 tksucai + @“1707......”

  • tksucai , 是TK内置素材路径函数,先不用管这么多,先照着写

  • 1707,是工具ID,前面工具发布的时候获得的

  • tksucai + 1707...的意思就是,在TK工具的素材里面,找到第1707个工具素材里面的...

  • tksucai的具体含义和使用方法,详见开发手册:http://tk.v5cg.com/help/99.html 



1543466590205020.jpg

3,运行测试

  • 改完上面的代码后,先不管这么多,ctrl E,先运行测试下,看看效果。

  • 咦,弹窗是有了,但是V5CG.JPG图片没有显示出来呀?

  • 那是因为。图片路径里面使用的是tksucai,这是TK专用的调用方式,要在TK客户端里才能用的。






五,上传素材到CG云盘






1543466937364296.jpg

1,打开CG云盘,上传工具素材

  • 开发栏里面,工具右下角的小三角形,双击;

  • 或者TK客户端最下面,点击CG云盘图标;

  • 进入CG云盘 > 【开发者专栏】;

  • 会看到每个工具,都有对应的云盘文件夹;

  • 双击可以进入对应的工具云盘,用来存放该工具的素材。



1543467113591067.jpg

2,上传素材

  • 进入对应的工具云盘后;

  • 将用到的图片,直接拖拽放到CG云盘中;

  • 或点击左上角的【上传】功能,上传 v5cg.jpg 图片。



1543467311538628.jpg

3,同步素材

  • 素材上传后,表示开发者已经将该工具的相关素材上传了。

  • 但是,如果你想使用的话,还得下载。因为你使用的时候,你也是用户状态,你的电脑里,还没有对应的素材,所有,要再下载一次,才能正常使用。

  • 双击打开工具介绍,下面有个【更新素材】。



1543467602896002.jpg

4,素材同步后

  • 显示正常状态。这时素材已经下载同步到你电脑上了。

  • 这时,虽然图片已经同步到你电脑上了,但是如果在MAX中运行,仍然是出不来的。

  • 因为,刚才写的代码,还没更新发布上去呀。






六,更新代码






1543467737446714.jpg

4,编辑工具

  • 回到开发者后台,编辑工具。



1543467806742087.jpg

5,粘贴新代码。

  • 更新代码之后就完成了代码更新。

  • 以下是全部代码。如果你复制来测试体验的话,记得改下ID号,每个工具都有自己专属的ID号,切记!

rollout img "pictrue windows - 打开图片窗口" width:964 height:298

(

    bitmap pictrue "图片" pos:[2,2] width:960 height:294

)


rollout  gongju "工具界面窗口" width:200 height:100

(

    button anniu1 "按纽1" pos:[5,10] width:190 height:30

    button anniu2 "按纽2" pos:[5,45] width:190 height:30


    on anniu1 pressed do(

    messagebox "这是弹出来的消息1" title:"这是弹出来的消息头部标题!"

)


on anniu2 pressed do(

    CreateDialog img

    img.pictrue.fileName=tksucai+@"1707\V5CG.jpg" --外部图像文件

)

)

CreateDialog gongju




1543470895286570.jpg

6,大功告成,演示结束!

  • 到这里,整个流程,就全部结束了。

  • 如果你想试试,可以直接复制这些代码,按教程,走走整个流程。

  • 如果,你编写了自己的工具,并且已经测试成功了,一切没问题,想要正式发布上线的话,需要提交审核。

  • 如果不提交审核的话,工具不会被用户看到,只有开发者自己能看到并使用。也就相当于是个代码存储,代码托管的方式存在。

  • 正式审核上线后,用户就可以添加使用你的工具了。






七,提交审核






1543470880941802.jpg

1,提交审核

  • 这是正式发布上线的最后一步,提交后,管理人员会测试审核上线。

  • 通过后,会收么系统私信通知。

  • 从此之后,用户就可以添加、购买你的插件工具了。






相关阅读:


1,案例中的工具:

http://tk.v5cg.com/tools/1707.html 


2,代码发布,部署实例参考:

http://tk.v5cg.com/help/140.html 


3,工具上传与工具发布:

http://tk.v5cg.com/help/99.html 


4,【MaxScript】一些简单的MaxScript教程:

http://tieba.baidu.com/p/3075101032?red_tag=m0659196398&traceid= 


5,飞浪脚本零起点:

https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&srcqid=2607391680773566011&tn=88093251_2_hao_pg&wd=%E9%A3%9E%E6%B5%AA%E8%84%9A%E6%9C%AC%E9%9B%B6%E8%B5%B7%E7%82%B9&oq=%25E9%25A3%259E%25E6%25B5%25AA%25E8%2584%259A%25E6%259C%25AC%25E5%2585%25A5%25E9%2597%25A8&rsv_pq=e3ce379e0001f1a8&rsv_t=1321M6djnRJgkXsDVb6sOxCDE2IecTO3ShZ%2Ba74OLbaX0kXRJprM0Igxu6ohldx2TUn%2Bc3jsSRA&rqlang=cn&rsv_enter=1&inputT=2394&rsv_sug3=39&rsv_sug1=15&rsv_sug7=100&rsv_sug2=0&rsv_sug4=2395 


6,百度MAX脚本开发教程:

https://www.baidu.com/s?word=3DMAX%E8%84%9A%E6%9C%AC%E5%BC%80%E5%8F%91%E6%95%99%E7%A8%8B&tn=88093251_2_hao_pg&ie=utf-8&sc=UWY3rj04n1cdnNtzgv99UdqsuzuY5HDdPjnkrjTYrjm4P1nhm1dCmytknWnhmynqn164P1TkPWf4Ps&ssl_sample=s_11%2Cs_108&srcqid=2607391680773566011 


7,加入开发者群,里面有大量开发教程和工具,以及所有的开发者交流。只加开发者!:41200910


8,3DMAX官方的开发手册,进阶必备必读必查:

http://docs.autodesk.com/3DSMAX/16/ENU/MAXScript-Help/ 


9,图夫的代码高亮:

http://www.v5cg.com/forum.php?mod=viewthread&tid=212 


10,MAX脚本自动补全功能:

http://www.v5cg.com/forum.php?mod=viewthread&tid=212 



** 文章较长,若有错漏,请见谅并指正,谢谢! **