Grasshopper趣味教程_第一关_新手村任务

作为一名百折不饶的黑魂白金玩家同时也是个狂热的异形建模爱好者,一直想要有时间教大家怎么像游戏闯关一样把GH也玩得溜溜的,想要啥奇怪的造型,啥炫酷的表皮,都能像玩游戏一样轻松愉快。于是乎,借助疫情产生的空档期,我起草了一份GH白金攻略,希望大家能喜欢。

首先,像玩任何大型单机游戏,时长是个很重要的因素。笔者是2018年11月的假期正式开始学习GH的,看了skywolf的数字冥想,表叔白云山的小红书,网上流行的各种GH电子书,再加上一些Youtube上的视频,C# for grasshopper等等......笔者学习的时候每个案例都做了,每天学2-6个小时,期间使用了番茄钟进行监督和计时,3个月学成一共花费了400小时。但是!并不意味着大家学会GH也需要那么多时间,按照初步学会一项技能需要20小时来计算,搞定这份攻略,也就是20小时的时长,对于这样的游戏,也就2天时间而已啦,so easy~~

那让我们开始吧!

游戏 GH快捷键

像玩任何游戏一样,一开始当然是熟悉快捷键啦,快捷键都不背熟怎么捡装备,怎么打小怪?

OK,首先我们点击可爱的小蚂蚱图标,打开GH。

好的,界面弹出来了,首先我们把GH这样摆好。左边是Rhino,右边是GH。(当然也有一个GH小插件,可以让Rhino的页面像画中画一样显示进来。但后来我发现用途不大,装逼的话倒是挺酷。)


初始页面

(咦,你的Rhino 6版本怎么跟我不一样?其实一样的,只是Rhino界面的颜色我自己设置过,做灰暗一点可以保护眼睛。)


然后把Draw Full Names勾选上

接下来,我们来熟悉基本操作:

1. Double press left button to input your command. 双击鼠标左键进行命令输入。

读者可能会说我这里又跟别人的教程不一样了,人家教GH不是都要先过一遍这头上的图标吗?Nonono,完全没必要先了解那么多。我的经验是,要学好任何一个软件或者技能,兴趣最重要,而不是强迫自己去接受和吸收知识。带着心理负担是很难坚持得下去的。只有觉得GH既有趣又实用,形成学习的正向反馈,你才能解锁更多成就直到拿到白金奖杯~



别先去研究图标,更不要去背有哪些功能
在空白处双击鼠标左键进行命令输入

就像学任何程序语言的第一句话是:Hello,world。我们学任何建模软件的第一步都是画一个点,Hello,point!


直接输入Point


什么都没有...

然而尴尬的事情发生了,页面什么东西都没有,Point图标也黄了...

我们把鼠标移到Point图标上,看看它写的什么:Empty Point parameter,啥意思?


没有点的参数

啥,看不懂,英语不好?没关系的,忍忍就习惯了,GH没有中文版哦(^_^)

在这里,没有点的参数是因为GH中的初始参数是需要来自Rhino的,毕竟是个插件,不是独立的建模软件。如果我们在Rhino中画好一个点,再把这个点的信息给到GH,不就可以了吗?


设置一个点

接下来我们在Rhino当中随便画一个点,在GH中Point图标上右键单击Set one Point,再选中这个点,就可以把这个点的数据给进来了。这是RH-GH联动建模的第一步思维。

我们的点画好了,接下来怎么办呢?我们试试看移动这个点吧!我们知道Rhino中的移动需要输入命令:move,那GH做为它的好基友,也能这样操作吗?


移动Move

答案是当然可以啦!基本上Rhino所有的命令都可以在GH中找到。OK,输入Move以后,又出现了一个小图标。接下来我们来到愉快的连电池环节。


点就这样往上移动了

(为了让点更显眼,我把Rhino的背景设置成了黑色)

等等,现在这个点是默认向上移动的,我可以改变它的移动方向吗?当然可以,聪明的盆友已经发现了。把鼠标移动到Motion这里,有提示语:


有一个本地定位的值

这又是什么意思呢?可以设定移动的方向吗?我们要输入什么呢?

先别慌,我们先来看看这个点在数据中长什么样子。为了解释方便,我把刚刚Rhino当中画的点移动到了0,0,0,接下来再给个Panel,观察数据的变化。那什么是Panel呢?Panel就是面板,可以用来读取GH运算器中的数据。就当它是个X光扫描器吧!

在这里,我们要熟悉第二个GH快捷键:

2. Double press "//" to access Panel command. Panel 直接双击键盘上的 // 即可。

不要在顶上慢慢找图标或者打字Panel啦。


(为了显示更清楚,我把点的颜色做成了黄色。)

这个“//”在C#中是指用于写注释,不进入程序计算中的语言。而GH本身就是C#写的程序打包组件,所以C#的语言习惯也可以用在GH。

注意,这个Panel除了读取数据以后,也能输入数据。比如:


是的,这样也行哦!

先双击GH空白处,谈出输入框,然后敲//再加上数字。你就拥有一个定值啦~

在这里,我们又要熟悉一个新的概念,那就是定值和变量。顾名思义,定值指的是固定不变的参数。反之亦然,变量就是可以调节的参数噻。咱们不是经常看参数化大神拉一个数字小条来调节参数,模型就跟着变化吗?看着超级炫酷的功能叫啥?这个就是GH中的Number Slider啦(slider就是滑动的意思)。

好的,那么我们怎么用快捷键找到Number Slider呢?接下来我们使用第三个快捷键:

3. Directly double press left key to input random number to become NumberSlider.

直接双击左键输入任意数字,就能自动转换为NumberSlider。


怎么样?惊不惊喜,意不意外?

“某羊,我要设置小数点怎么办啊,只能输入整数吗?我怎么给它规定范围啊?” No worries, 我们只要右键单击图标,选择Edit 就行了。


edit功能很好用!


在edit面板,可以设置任何你想要的数

既然是和数学设置区间是一个原理,那么我们能输入数学的表达式直接设置我们想要的NumberSlider吗?比如我想要个5.5 到15范围的数。那么我双击输入框:5.5<15


自己在GH里试试呢?

咦,真的会出现一个最小值为5.5,最大值为15的NumberSlider吗?这个嘛,你就自己试试咯~~~

接下来我们打一组小怪! 依次输入单个数据:0.1, 0.2, 1, 10. 1.1,10.1, 11, 100, 你发现了什么?是不是系统自动为你的单值加上了一个区间?


依次输入以上数字,观察默认的值域变化

那这个区间是从哪里开始的呢?怎么都是0?

比如0.1就默认为[0.0, 0.1]。但是数字超过了1,10,100,怎么办呢?哦,系统会自动给你增加到下一个区间了。嗯...这不难理解的,多尝试下摸清规律就可以了。

“嘿,某羊你给我过来!我想输入-12怎么显示是个 - 减号啊???”


输入负数呢怎么变成减号了?

其实是这样的,输入负数要稍微麻烦一点,得像上面一样输入表达式:X< 0  比如输入-12,就得输入 12<0 (别打我)


怎么样,很高级吧,数学大神的既视感有么有?

好了,咱们NumberSlider的玩法已经摸清了。接下来继续看刚刚的move图标。


想要啥就输入啥


那移动多少的位置呢?这时候就把刚刚玩的NumberSlider连上去呗~ 这样,你的点就可以移动啦~


完成!

图中蓝色的点(我设置了display)就是刚刚移动以后的点,拉拉Slider试试吧!你的点也会实时移动哦~~

到这里,恭喜你完成了新手关第一个任务,移动一个点!!!解锁成就:GH Starter!



哇,是不是so easy???

想不想继续玩下去?

那我们来移动一组点吧!

在平时的Rhino建模中,我们想把单个的物体转化为一个组,是不是要用Array命令?那么我们在好基友GH的空白处双击敲个Array试试?


哇,出现了好多Array

(如果有的命令我的屏幕里有而你的电脑里没有,千万别担心,不是版本问题,是我的GH插件太多了...)

在这里,我选择了一个线形阵列Linear Array。


初始状态已经有数值了

接下来,把我们的点连在Array上,屏幕自动出现了一排10个相同距离的点。按照上面设置move的思路,我们来设置一下Direction方向和Count数量。


我设置的是沿Y轴移动20个点

OK,那我们接下来试试把所有的点都一起向上移动一下吧?这时候要遇到我们这篇攻略的第四个快捷键了。

4. Hold Ctrl to disconnect the wire. 按住Ctrl键来取消所连的电池线。


Disconnect?Just like this!

接下来,我们把Linear Array中输出端与刚刚的Move输入端连接起来,一排向上移动的点就有啦!

电池的相连也是数据传送的过程

有了两排点,是不是手痒,想再来做点啥?本着点-线-面-体的建模思路,我们先把点竖向连接起来看看?


两个Line??


嗯,连线,直接输入Line试试?哟,还真有。但是注意别选中那个黑色六边形的line,因为那是需要从前面的端口中获取参数的标志。我们想要上下连接两个点,得选上图打勾的Line。


连接成功!

好简单的样子,那我们把下面一排的点也连起来试试?额...两点画一条直线,那我只要找到第一个点和最后一个点不就行了吗?

怎么找呢???通过前面的练习,我们知道了GH的工作模式就是通过电池来进行各种数据传递,那除了单纯的读取数据,我们有办法能提取其中的数据吗?

当然有咯!在这里,我来介绍一位超级好用的NPC,它是一位数据屠夫,名字叫List Item (李斯特 · 爱藤木)。想象一下咱们的一组数据是头整猪,我们只想要这头猪的一个部位,就得请这位屠夫帮忙砍一下。但是!这位屠夫在一次战斗中失去了视力,看不见要砍的部位在哪里,但是可以通过特殊的超能力感知到对方 - 那就是Index(编号)!所以你只要告知这头猪的各部位编号,这位屠夫就能手起刀落,砍下你需要的部分。


爱腾木先生需要您告知编号

这啥意思?请看以下对话:

- 您好,李斯特 · 爱藤木先生,能帮我把这头猪的头和尾巴砍下来吗?

- 不行啊,我看不见猪在哪里。不过我可以感知到一种名叫Index(编号)的神奇物质。你只要把头和尾的Index编号告诉我,我就能帮你分解出任意想要的部分。

- 好的!让我查看一下这头猪的数据列表。(双击//,弹出Panel,连接上,显示出的一串数字就是List.)

- 哦,猪头在0的位置,猪尾巴在19.

-好的,here you go!


爱腾木解猪图


原点的位置就是我们的猪头,最后一个点的位置就是我们列表中的19号。左边是爱藤木先生需要的编号,右边是猪尾巴所在的3维坐标上的位置。

请注意!在数据列表中的显示是从0开始的,聪慧的玩家已经注意到了,我们有20个点,但是列表最后一位却是19, 这也就是我们看很多GH高端玩家在玩Range的时候会输入表达式X-1。现在不必理会, 我们还没出新手村呢,先杀杀猪,逮逮鸡,干点农活儿积累经验值吧。


连接两个首尾两个点

在这里你已经注意到了,我屏幕上的显示又发生的变化,之前做的步骤都被隐藏了???这是怎么办到的呢?

现在来学习本章攻略又一个重要的快捷键:

5. Select the wanted batteries then press Middle key, select Disable Preview. 先选中要隐藏的运算器们,再点击鼠标中键, 选那个蒙眼睛的图标,关闭预览模式。

这样,我们就看不到前面运算器所呈现的步骤啦~~~但并不意味着它们不存在了,只是被隐藏了而已。同样点击鼠标中间那个正常人头图标,你又可以看到它们了。

接下来,按照连接下面点的原理,我又把上面的点连了一遍。

直接Ctrl+C进行运算器的复制

为啥我推荐Ctrl+C来复制呢?

按照Rhino的好基友理论,按住Alt键也是可以复制的,只是不好操作,得先拖动到移动得状态再按Alt才行。不如Ctrl+C来得方便,所以推荐新手村的玩家们先使用最万能的复制方法~

现在我们有了两条线了,是不是有种想要loft的冲动???既然跟Rhino同根生的,那我们直接输入loft看能找到这个命令吗?


loft成面是个非常重要的思维

又成功了!我说了嘛,一直想着Rhino的建模步骤,GH就迎刃而解啦~~~对吧?

注意这里的Loft,选择Curves的时候,需要按住Shift进行加选,反之,按住Ctrl就是减选啦~~~

有了Loft,我们是不是习惯性的想要挤出这个面?无它,纯手痒尔... (某只建模羊的下意识反应。)


挤出面的操作有点熟?

充满智慧的读者们啊,请看看这步挤出面的操作吧,还是熟悉的配方,熟悉的味道啊!跟move那是一模一样啊!

所以,只要熟悉了GH运算器那点小九九,咱们就能举一反三,见招拆招啦!

好了,今天的新手村任务就到这里,请带着你的战利品回家吧!!!

恭喜获得!!!GH...方块一个!!!

- “羊,我刚刚关了GH怎么图形消失了,我做的方块呢?”

- 啊,我还忘记提了。GH中所有的图形都以data数据的形式存在,不像Rhino是实体建模。GH需要将数据进行实例化才可以在Rhino中进行操作。

- 听不懂,说人话。

- ......想象GH中的空间就是天界,所有的图形都是以灵魂的形式存在的,它们从一个电池投胎到另外一个电池。而Rhino就是人间,灵魂想要诞生在世上,需要一个肉身,而赋予肉身的过程就叫实例化...

- “咚咚” (某羊被揍了)    正常点!!!

- 请右击“Bake”...

本章最后一个快捷键来了!

6. Press right key to bake your geometry into Rhino. 右键选择Bake(烘培),你的模型就可以出锅啦~ 


也许Grasshopper的制作者希望大家把这个平台看成一个大厨房吧,我们在连电池的过程就是烹饪料理的过程,最后放入烤箱或者煎锅里Bake一下,我们的菜就做好啦。

看到这里先别走!!!你刚刚解锁了本关卡最后一个成就 Bake!!!


恭喜X总!喜提煎蛋一个!

好了,今天的攻略就到这里~~~我们下次再见吧!

下回预告:爱戴木先生想造一个房子,需要我们山上收集木材。但山间传说有怪物出没,要如何打败它们呢?


作者简介:土冒某只羊 

澳洲皇家理工RMIT 建筑系研究生,今年7月家里蹲儿大学毕业了。

热爱参数化设计,异形建模,3D打印。熟悉Rhino+GH,也会一点Maya, Zbrush, 一知半解C#。



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343