[vfxinfo 原创]3dsMax 2016-节点编辑器介绍

原文链接点我

翻译:保罗大D

原文:Autodesk

转载请注明作者与出处


Max节点编辑器介绍(MCG)

现如今3dsMax2016官方版本已经正式发布了.我也终于可以出来透透气并且告诉大家为什么这一年多来你们一直都没有我的消息

Eddie Perlberg把我跟Martin Coven以及其他的开发大神们还有测试人员锁在一个地下室直到我们完成了3dsMax用户所要求的的第一新功能

经过我们的努力,终于研发出了一个3dsMax2016的新功能,称之为Max Creation Graph,或者简称为MCG.MCG允许用户使用可视化节点工作流程来创建修改器,几何体跟工具插件


使用MCG你可以在Max里面分分钟创建一个新的插件,只需要简单的把参数节点,计算节点跟输出接点链接一起便可.连接好的图表可以保存为XML文件或者跟其他的ZIP文件里面的元素打包在一起并且可以直接跟别的max用户共享

每当MCG工具执行后,你会获得以下的一个结果

    • 创建面板下”Max Creation Graph”分类里面新的原始几何体物体
    • 修改器下拉列表里面新的修改器
    • 新的Max脚本工具
    • 新的Max脚本函数
执行之后,.maxtool旁边会生成两个文件

  • A MAXScript plugin wrapper (.ms)
  • 一个Max脚本插件的包裹器(.ms)
  • 节点系统编译之后的.NET函数文本文件(.txt)

MCG 不是 Softimage ICE

先别管我们的用户反馈区的申请列表的标题(你可能会注意到这最初是由Martin Coven提出来的建议,在我雇佣他之前便已经提出了,我确定他应该很高兴他的建议最终能够实施),很显然,这并不是ICE系统被集成到了max中去.MCG是一个在.NET的框架之上开发出来的全新的可视化编程语言

大家可能对另一个AD的可视化语言比较熟悉”Dynamo” ,并且能看发觉一些相似处.Dynamo 跟MCG很相似.(使用.NET来扩展是很简单的事情,并且可以支持一些函数程序的概念).但他其实是解释型语言而不是编译性语言.对于Dynamo来说,这种设计选择是很合理的,因为他设计出来的目的是为了参数型几何体建模,然而,这种语言的性能对于max用户想要在max里面创建工具来说是没有效率的

3dsMax用户希望几何体的参数跟修改器的参数都是可以进行动画的.并且能够把结果在试图里面接近实时的显示出来.(通常,建筑物都不会跳舞,但是在max里面,他们是可以的.)我们基于这项需求,开发出了一个完整的编译器.如果你愿意请我喝啤酒的话我就唠叨更多的细节给你(或者…我有意无意的一边喝酒一边在博客里面码字)



功能性的数据流可视化编程语言

MCG大部分都是传统的可视化编程语言.节点给数据提供传输,数据流通过输入链接来传输,并且最后把结果转为输出的”数值”

MCG的一个特征便是,对于函数的链接输出,能够直接显示出结果来.这也就能够允许函数的解算在整个图表里面以数据的形式来传输.计算机科学里面,我们称之为一级函数

当节点是从”函数”输出端链接过来的时候,整个图表左边的子图表都是作为一个函数来计算的,图表中未链接的,作为函数的参数.这等同于Lambda的抽象运算.详情请参阅之后的教程

在MCG中,我们不仅仅把函数作为参数传递到更高级别的函数里面,类似于”映射”跟”合并”那样.我们也可以从”bind”这一类的操作符上来返还函数并且实现局部运算的功能,或者从”compose”那样的函数上来实现函数的合并.我们可以把函数储存在阵列里面.详情请参阅之后的教程


MCG需要注意的几件事情:图表里面的大部分数据都是不可变的数据结构(“INode”, “Cache”, “Random”是例外).也就是说,MCG几乎就是纯函数式的编程语言(类似于Haskell).举例来说,当你传输数据到”SetValue”节点上的时候,你所获得的数列是一个全新的数列,原始的那个会保留,不会被改变.这样一样多线程解算(也就是并行计算)便能够快速便捷的执行.我向大家保证,之后会有更多的关于多线程计算的文章.

未来

我们是上市的牛逼大公司,并且有XXXXX协议,所以我们不能尽情的讨论产品的未来.这让我很郁闷.因为我花了大把大把的时候去讨论探究未来的新功能,远比老板花的时间多,但是却不能够说出来

最后,我希望大家能够感受到,就像我承诺你们的那样,是我们的用户直接来影响到max的未来.没错,一些牛逼的功能可能需要花上四年时间才能够实现,并且有些时候我们也不能告诉大家我们正在开放.不管怎么说,这是一个竞争相对激烈的行当,但是我们有足够的耐心.

我永远都不会忘记,没有我们用户的支持就没有3dsMax,我也不可能实现我梦想中的工作.


—– MCG 介绍视频 —–

MCG的范例文件

很快,我们就会把一套案例放到博客上供大家下载,在之前,你可以先观看一下Martin Coven录制的视频


—– MCG是什么-演示视频 —–

感谢

没有大家的整体努力以及这么有激情的开发团队就没有MCG.核心团队包括Martin Coven(设计师跟策划),我跟Abdelhak Ouhlal, Attila Szabo, Clint Lewis, Rick Delesdernier还有 Roman Woelker作为开发者.Larry Minton 跟 Tom Hudson也作为关键点帮助开发了主要功能.Martin Ashton未开发设计MCG的原型起了至关重要的作用.期待他在有土鳖上面的教程YouTube SDK and scripting learning channel

当然了,这是整个max团队的持续努力的结果.没有人能够独立去开创未来,3dsMax需要整个团队的通力协作.整个团队卖力的工作才有了我今天真心为之骄傲的版本

我个人想要感谢一下Eddie Perlberg, Michael Russo, Kelcey Simpson, 跟 Chris Young.感谢你们能够信任我们的团队,让我们能够给大家带来这么牛逼哄哄的版本,感谢在开发过程中的支持

我也想感谢所有的Beat组的成员以及3dsMax反馈人员,感谢你们的宝贵的建议,支持跟鼓励.

.

结束语

现在,我想跟大家重复一句之前Eddie 跟我说的一句话-”这一切只是个开始”

[vfxinfo 原创]3dsMax 2016-节点编辑器介绍 提取码:z01a

高清下载

  • author image
    —OK 回复
    四 16, 2015 @ 14:16 下午

    说白了 houdini的sop!

    • author image
      大白天 回复
      四 16, 2015 @ 14:20 下午

      你根本没有用过就妄下结论

      • author image
        —OK 回复
        四 16, 2015 @ 14:25 下午

        用是没用过但是从节点和效果来讲和houdini的sop相似度太高了,原理上肯定是一样的,都是3d软件,万变不离其宗嘛。你要是用过sop我估计你和我的估计一样样的

        • author image
          大白天 回复
          四 16, 2015 @ 14:35 下午

          没用过,别给自己找借口了,mcg是可视化编程工具,需要编译之后才会生效,不仅仅是影响网格

          • author image
            —OK
            四 16, 2015 @ 14:59 下午

            然后呢?方法略有不同是肯定的呢,maya创建一个box和max创建一个box在我看来没什么不一样,如果硬要说什么maya的原理是mel创建box而max不是。那样肯定也是有不同的,但是又如何,想达到的效果和中间的思路的一样的或者差不多的。编程的东西我都得不多,如果有什么说的不对的大家交流交流不就好了?为什么你的口气一开始就是这么咄咄逼人呢?和和气气的交流不行吗?

          • author image
            大白天
            四 16, 2015 @ 20:44 下午

            mel是脚本语言,效率极低,是用来调用创建好的功能的,也就写个按钮,调用类库产生实例。MCG和MaxScript Mel等脚本语言不同,是已经编译好的.net中间代码,并且是函数编程语言,和其他面向对象语言逻辑不同。你指导houdini的sop是什么意思吗,surface operator,曲面操作符,你将MCG定义为只有曲面操作的范畴,是错误的,实际上MCG基本囊括了大部分常见功能,可以利用这些功能组合成新的几何体,修改器,工具,可不仅仅只是修改外形的程度

          • author image
            —OK
            四 16, 2015 @ 21:44 下午

            多谢指教!我对语言和计算机图形学了解很少,所以在我这个外行人眼里感觉和sop差不多。受教了

          • author image
            silentpoem
            四 18, 2015 @ 12:04 下午

            完全不懂你们说的意思啊。可以说的通俗点吗?

      • author image
        ddddd 回复
        五 17, 2015 @ 23:03 下午

        如果和houdini比个人觉得还是有点嫩,视频中实现的功能大概在houdini里为初级水平,我觉得可以和rhino中的grasshopper一比,但grasshopper不是这个行业的软件。如果说比较 方便觉的就是他提供了一个比较好的用户界面,可以让你的程序在不是很懂的人的电脑上也能跑起来,而他更本用不着去学houdini这样的软件

        • author image
          你懂个卵 回复
          十一 1, 2015 @ 11:55 上午

          Youtube上还有一些更加复杂的演示,这是编程语言,基本的语言元素已经给齐了,功能是开发者自己一个个堆叠的,今年的2016 ext1 已结开发出更多的节点,能做的事情更多了

          • author image
            你懂个卵
            十一 1, 2015 @ 11:59 上午

            并且,MCG比所谓的grasshopper强悍的多,作用不仅仅是程序化建模,更可以对动画进行操作,mcg新增了几个动画控制器范例,和内置动画控制器的功能一样,你可以打开进行参考.

          • author image
            你懂个卵
            十一 1, 2015 @ 13:29 下午

            还有的所谓的”不是这个行业的软件”,3dsmax 跨越视觉传媒和工业设计领域,在建模方面也是相当深入的

          • author image
            不会别乱说话
            二 16, 2016 @ 9:38 上午

            如果对houdini各个模块之间交互,控制不理解不要妄下评论,你爱用就用,简历上直接写会mcg,看看老板要不要你。

            退一万步来说,会节点软件很牛吗,牛的人都自己开发工具,解算,说的好像你是max铁丝一样的

          • author image
            叼霸天
            四 18, 2016 @ 20:52 下午

            你自己都没有展示过自己的理解,并且不要拿应聘之类的废话来回复纯技术问题,牛头不对马嘴.
            Houdini的复杂性没人否定,谁不知道Houdini是把写好的代码块封装,让普通人也能控制程序流,最复杂最需要性能的部分还是得依赖传统编程,节点只是让你更专注于算法本身而不是编程语言的特性和语法.我不仅仅玩节点,我还是你口中的开发者.你连函数式编程的概念都没有,就跟我说开发,解算?

  • author image
    大白天 回复
    四 16, 2015 @ 14:43 下午

    mcg生成的函数可以被脚本直接调用

  • author image
    xpixel 回复
    四 20, 2015 @ 9:27 上午

    的确是模仿Houdini,类似H里的VOP,但执行速度肯定不如VOP,而且在H里都不需要用VOP直接用SOP就完全可以搞定这些效果了

    • author image
      叼霸天 回复
      四 20, 2015 @ 19:08 下午

      在4年多前,有用户提议增加类似softimage的ice模块,开发到现在才公布,说模仿Houdini不如说是模仿ice

      • author image
        叼霸天 回复
        四 20, 2015 @ 19:15 下午

        执行效率很高,因为MCG直接生成.net中间语言,通过.net平台运行。编写完成的工具可以打包给美工人员使用,非常傻瓜化

  • author image
    四 20, 2015 @ 9:34 上午

    总算有一个有那么一点点心动的功能出现

  • author image
    四 20, 2015 @ 11:15 上午

    说实话 以max的稳定性。。。 真怀疑 MCG 跳成哪个奶奶样但是感觉 Houdini engein for max 估计够呛能有了

    • author image
      叼霸天 回复
      四 20, 2015 @ 19:02 下午

      你都没有用过,就断言一定会大量崩溃我用了好几天都没有崩溃过

  • author image
    四 20, 2015 @ 16:43 下午

    max要整合ornatrix或hairfarm其中一个毛发插件就OK了,流体什么的不期望了,烟雾有fumefx,水有realflow,PF够用,骨骼蒙皮够用,其他的新功能都是浮云。

    • author image
      叼霸天 回复
      四 20, 2015 @ 19:07 下午

      如果有闲人,可以用mcg模拟流体

  • author image
    cgdvs 回复
    四 21, 2015 @ 18:41 下午

    其实你们不用争。这篇贴子写得很明了。是干什么用的。如果花点精力看下文字再结合视频。基本明白是干什么的了

  • author image
    回复
    四 22, 2015 @ 13:06 下午

    视觉编程定位的很精准,没有异议,如果它打出的旗号是“节点编辑器”,肯定会引起众喷,因为它不具备houdini SOP VOP的即时编辑能力,如果全部用houdini术语去解读这个功能的话应该是这样说的:“我们搞出了个可以做OTL的节点式工具。它不能像sop或者vop那样直接存在于你的工程中,但它制作的otl可以。实时交互必须要等你把otl实例成节点后才具备,在那之前,老兄,你还在开发工具,想什么实时交互编辑呢?”,众max粉泪奔,但是,这已经是很大进步了,节哀,人家也说了,这只是个开始而已。

    • author image
      Paul 回复
      四 22, 2015 @ 17:08 下午

      恩…我的错 标题写错了

    • author image
      叼霸天 回复
      四 24, 2015 @ 10:32 上午

      实时交互不是问题,因为max开发团队提交给客户的beta,反馈最多的就是实时交互,所以根本无需担心

    • author image
      叼霸天 回复
      四 18, 2016 @ 21:03 下午

      事实上,可见既得更容易崩溃,因为设计者也无法预料到突然的加入节点会产生的后果,
      我在MCG的使用过程中,为了思考就多次改变节点的连接方式,如果这是在实时环境下,一定会造成卡顿.
      我从未见过哪家IDE是可以在调试阶段重写代码的,就算是微软的VS也不能,编译好的程序无法直接修改.

  • author image
    叼霸天 回复
    四 24, 2015 @ 10:44 上午

    Q:Do you plan to add in feature releases direct feedback while you build your graph? something similar to genome, so you dont need to evaluate every time while building your tools. Nice addition!A:It is one of the most requested features based on our Beta user feedback.

  • author image
    angeloyang 回复
    五 12, 2015 @ 19:56 下午

    就现在2016的mcg而言,第一次出现,功能也相对很完整,AD还是要赞一下的~

  • author image
    ccc 回复
    十二 13, 2015 @ 13:58 下午

    11111

  • author image
    hujun 回复
    九 23, 2016 @ 16:33 下午

    没有教程,没法普及,及时超过houdini都不会有人去用