3dmax场景种树插件_【Bubalus_GH更新】原来在Rhino和Lumion里种树(放人、放车)还可以这样操作!!!...

f4ad1219cd37aca334b11c04462e618d.png

【版权声明】

| 作者:月之眼 | 好多猫

| 首发于大水牛参数化设计平台

| 如需转载请联系作者

| 如果觉得文章不错,欢迎分享


c7c4fd18928de442e721349e2cddcdce.png
  1. 写插件的原因

大家在用Rhino做项目的时候,到了渲染阶段往往需要在Rhino模型中添加一些Vray代理树、车的模型、人的模型等等。添加Vray代理树的过程是非常繁琐的,需要复制,旋转,缩放等一系列操作。

这个时候大家是不是想用Grasshopper来解决?

但是Grasshopper自带的电池无法解决这个问题,因为把Vray代理树拾取进Grasshopper中,操作完之后再Bake到Rhino视窗就不是Vray代理树了。

这个时候是不是想要一个3D MAX的散布插件?

刚好那阵子好多猫和我讨论过这个问题,借机和好多猫一起写了这个插件。

看到插件的名字是不是很熟悉,Bubalus_GH其实就是公众号的名字。

欢迎大家下载使用。

2: 插件下载与安装

下载链接:https://www.food4rhino.com/app/bubalusgh

07e53afe39d39f8b8cefa6746e3a386a.png

c3e32c0bebd6b7813b7b6bf7fe9197da.png

1:电脑上只有Rhino5的情况:

请下载第二个压缩包,下载好后。

  • 第一步:解压压缩包,里面有Bubalus_GH插件的案例和一个安装文件夹。
  • 第二步:把安装文件夹复制到Gha的安装路径 :
    C:Users****AppDataRoamingGrasshopperLibraries
  • 第三步:重启犀牛和Grasshopper就安装好了。

578f87df7391fa061138a1d689e01a10.png

2:电脑上只有Rhino6的情况:

请下载第一个压缩包,下载好后。

  • 第一步:解压压缩包,里面有Bubalus_GH插件的案例和一个安装文件夹。
  • 第二步:把文件夹复制到Gha的安装路径 :
    C:Users****AppDataRoamingGrasshopper6Libraries
  • 第三步:重启犀牛和Grasshopper就安装好了。

ed09e3ad29131b2701508996d9a2325c.png

3:电脑上有Rhino6和Rhino5的情况:

请下载第一个压缩包和第三个压缩包。下载好后。

  • 第一步:解压压缩包,里面有Bubalus_GH插件的案例和一个安装文件夹。
  • 第二步:把for Rhino6的文件夹复制到Gha的安装路径 :
    C:Users****AppDataRoamingGrasshopper6Libraries
  • 第三步:把for Rhino5的文件夹复制到Cluster的安装路径:
    C:Users****AppDataRoamingGrasshopperUserObjects
  • 第四步:重启犀牛和Grasshopper就安装好了。

1c04b9518bfe3aec2e50ecc73363a996.png

注意:如果安装之后还没有出现电池(如上截图),请到刚复制粘贴的文件夹找到Bubalus_GH.gha文件,右键-属性-解锁一下,然后重启Rhino和Grasshopper。

22b66ad9a8e0d2e465750521c9876bb2.png

3:插件使用

Bubalus_GH插件的种树原理是根据点的位置来复制移动代理树,所以种树的点非常非常重要。如果你的点是渐变的,那么种出来的树就是渐变的;如果你的点在一个坡地上,种出来的树就在一个坡地上。点越自由,种出来的树就越自由。

1:Add_Geometry

当种一种树种的Vray代理树时使用这个电池。

Input:

  • run:运行电池
  • guid:树或人的guid(建议输入的物体是图块)
  • P:种树的位置点
  • SD:随机缩放的比例(默认是0.9 to 1)
  • RD:随机旋转的比例(默认是0 to 360)
  • N:树的法线方向(默认的是工作平面Z轴方向)

Output:

  • N:树的名字

6499e97c5d5c8fa36f82f306378a4724.png

2:Create_GeometryBlock
写这个电池的主要原因是因为很多用户没有手动创建图块的习惯,不使用图块会造成两个问题1:种了树的Rhino模型很大 2:Vray面板代理物体会很多。

所以加了这个电池来自动创建图块,如果已经手动在Rhino视窗中创建了图块,则不需要使用这个电池。

Input:

  • guid:要创建图块的guid

Output:

  • G:生成图块的guid

81ce1bc13f78544ae2a5a0261fd53f7e.png

学完上面的两个电池,我们就可以做一些简单的案例了:

首先来看看我们很爱种的行道树。

需要先导入一个Vray代理树,弄好材质,再用Bubalus插件种树。

  • 种植行道树。

7322cb87f9405a695a0eda06584834e6.png

3200c68735d5a39edf49bab3a9265f01.png
  • 跟随曲线种树

fbe384dda020ec4cecc20bba8f05755d.png

904fd43f69956191cd9bc677baa64e62.png
  • 随机种树

cf0bc00d7570730082f5e7c1881755ef.png

da3a451ee411904a73580108f22347f4.png

如果我们想树的方向是垂直于曲面,我们可以这样做。

254d18575bb915ffb40b9496448e9a6e.png

3041a32f4feb4245cd5388ed1bb20e1c.png

a7698f0bbff7677c2399b225149b332a.png

把上面例子中树的模型换成人和车的模型,就可以随机放置人和车的模型了,这里就不过多介绍了。

3:Add_Geometrys

当种多种树种的Vray代理树时使用这个电池。

Input:

  • run:运行电池
  • guid:树或人的guid(建议输入的物体是图块)
  • P:种树的位置点
  • SD:随机缩放的比例(默认是0.9 to 1)
  • RD:随机旋转的比例(默认是0 to 360)
  • AR:每个树种的随机分配比例(比如我有两个树种,这里输入1,2。那么第一个树种的数量就占33%第二个树种的数量占66%)
  • N:树的法线方向(默认的是工作平面Z轴方向)

Output:

  • N:树的名字

83379759b4b29bae6056520556d97d52.png

4:Geometry_Location

这个电池的主要作用是提取树的位置点(当需要更换树种的时候就需要使用到这个电池)

Input:

  • guid:提取定位点的树种

Output:

  • L:树的位置点

b642badee539acde82d672c539b46a74.png

5:Transform_RhinoObject

利用Grasshopper中的Transform移动、缩放、旋转Rhino中的任意物体。

Input:

  • active:是否运行电池
  • guid:需要变换物体的guid
  • transform:变化的transform

5f816a2acfd08e94abd7d9e1316843ef.png

来看两个Transform_RhinoObject 电池的例子

  • 对帧平面进行缩放移动

ef98c3bcbc39b7baf79e1f9c9e7b0bb1.png
  • 对图块进行旋转移动(旋转放置完的桌椅还是同一个图块,编辑其中一个,所有图块都会相应变化)

4134af5984d90111ee967e83f5b7c357.png

6:DeleteGuid

根据Guid删除Rhino中的物体

Input:

  • guid:需要删除物体的guid
  • delete:是否删除

1fd322c2298da3c2cf64d9259c15ce11.png

7:BakeBlock

可以根据树形数据把Grasshopper中的物体Bake成图块。

Input:

  • bakeBlock:是否bake成图块
  • geometrys:要bake成图块的物体
  • location:图块的定位点
  • blockName:图块的名字
  • atts:图块的属性
  • transform:图块的变幻矩阵

Output:

  • outBlockName:生成图块的名字

d585bab08185d93355ffdc2608f618d7.png
  • 根据树形数据把物体Bake成图块

7162ec049a18f1d66790a8b28345d2b1.png

8:ExplodeText

获取Rhino中Text的一些属性

Input:

  • guid:text的guid
  • createTC:是否创建text曲线
  • createBC:是否创建text的最小边框曲线
  • Update:是否实时更新电池

Output:

  • texts:text的文字内容
  • pts:text的定位点
  • textCurve:生成的text曲线
  • boundingCurve:生成的最小边框曲线

56c6909cf38414bc6dbbaa80c074b5cf.png
  • 获取Text的一些信息

f70de2245eb21f4f948c7177caf42ae8.png

9:ExplodeBlock

炸开图块(如果你会C#代码,可以双击电池进行编辑)

Input:

  • guid:图块的guid

Output:

  • geo:图块内的物体
  • name:图块的名字
  • location:图块的定位点
  • xform:图块的transform
  • atts:图块的属性

d4695e7aa07b8f1e194cf137f76b7dbb.png

10:Purge_RhinoDocument

清理Rhino空间,和Rhino中的Purge指令一样

Input:

  • P:是否清理

edf394d5989532fc4abffec78d93510e.png

11:Ratio_random
根据比例随机分组

Input:

  • L:需要分组的列表
  • AR:分组的比例

Output:

  • C:分好组的列表

d91aecfec6099325a5152fa03cb1fb5e.png
  • 根据33%和66%的比例随机分组10个数据

e5728dc9a3c944e27bba650677e46ea7.png

12:Ratio_random

在一定区间内生成指定个数的随机整数

Input:

  • R:生成随机数的区间
  • N:生成随机数的个数
  • S:随机因子
  • ISInt:是否是整数

Output:

  • R:生成的列表

d02de34f0b412fb1385b8a35e476528b.png

13:Populate_2C

在两个线之间生成指定个数的随机点

Input:

  • C1:外面的曲线
  • C2:里面的曲线
  • N:随机点的个数
  • S:随机因子

Output:

  • P:生成的随机点

f4081de9cff2a7822f53f7ecde51637c.png
  • 当我们要在基地内,建筑周围生成随机点时,可以使用这个电池。

b87fa4a1a3828cd083ac1f85b7af4216.png

5bd6b99cddeb095759585b18c13f069d.png

098499484bb1621ad3118859da9263aa.png

14:BifocalsPlus

这个电池是Bifocals插件的增强功能,所以在使用之前,需要先去Food4rhino下载Bifocals插件。

这个电池可以让Bifocals插件显示电池的插件名字,在讲案例的时候,很多人不知道一些电池是来源于什么插件,所以我在这个版本增加了这个电池。

但是需要注意:因为Grasshopper的插件开发者太多,并且每个插件开发者的命名习惯很不统一,所以这个电池会有很多Bug。这个时候可以双击电池进行代码编辑或者联系我,我会在下个版本更新这个问题。

Input:

  • Update:是否实时更新电池名字

a4f961ee33e7a3b8636bca237bdee838.png
  • 增强Bifocals插件,标注电池的插件来源

9b64fb46bdc0bf2c987e7e7cba234a1d.png

15:Transparent_BackGround

透明化GH窗体,在Rhino6中鼠标可以穿透GH背景编辑Rhino中的物体。

Input:

  • run:是否运行此电池
  • holeWidth:透明开洞的范围(范围是0 to 1)
  • transparency:gh窗体的透明

454dc83ad3bc5e3dc56d0763b0688de5.png
  • 如果遇到显示Bug,可以先断开所有的连线,再执行一下Run就OK了

56507846127adf9304fed3094b886188.png

211d8a43773f8786e5bec8a4f1cc44c4.png

16:GeometryFaceToCamera

让物体跟随着摄像机旋转

Input:

  • Reset:是否让物体跟随着摄像机旋转
  • Guids:需要旋转的物体

Output:

  • P:一个生成的点

973a30958dbb2ff19592c8389c8f6978.png

17:CameraOrientPlane

动态获取摄像机的工作平面(使用的时候不能隐藏这个电池)

Output:

  • P:摄像机平面

9541b2357af47a6f2e97fe0bd427d608.png

18:3D_Text_Tags

在Rhino视窗中显示Text,此Text总是朝向摄像机

Input:

  • T:需要显示的文字
  • L:显示文字的定位点
  • C:显示文字的颜色
  • S:显示文字的大

e0ec612adea39282f67cefa69452b672.png
  • 最后三个电池可以用来辅助出分析图,下面我们来介绍一下。
  • 在出分析图的时候也需要往模型内放置一些物件,这个时候我们就可以利用我们前面介绍的电池。

19726f9be6795bd727faaa99a7dedf04.png

上面这张图有个问题:模型旋转的时候,人物不会跟着旋转。

所以写了一个电池实现类似SU中面总是朝向摄像机的功能。让Rhino中的物体总是跟着摄像机旋转。

f2a78b4b1d7fbf9fab489a70f1ed0acc.gif
(su中的效果)

fffb39335be0d66247bb00f2d84d8eba.gif
(Rhino中的效果)

开始没绑定的时候,人物是不会朝向摄像机的;当把Reset设置为True时,绑定了人物和摄像机;人物就总是朝向Rhino的摄像机,Rhino的视角旋转,人物也跟着旋转。有没有找到旋转SU的感觉。

可以绑定物体的类型:文字、平面曲线、平面曲面、平面网格、还有填充物体

  • 动态获取Rhino摄像机的工作平面

b037232b7c877dcc753ead152c2fe174.png

动态获取Rhino摄像机的工作平面,重构获取到的工作平面,在重构的工作平面上画几何体,让你画的所有几何物体一直朝向Rhino的摄像机。

比如案例中画的圆,不管如何转动视角,圆都是正对着摄像机。

  • 动态显示Text(Text总是朝向摄像机)

b371902cc2c74a1ed63ecc7e9d9ec2a1.png

利用Bubalus_GH插件在Lumion中种树

那如何利用Bubalus_GH插件在Lumion中种树呢?

柯基鸡发过一篇很详细的教程:Bubalus插件与lumion结合批量山地种树小技巧。

大家看完上面的教程就会了。

同时Lumion官方也在food4rhino网站发布了Rhino和Lumion实时交互的插件,有兴趣的朋友可以试试。

下载链接 :https://www.food4rhino.com/app/lumion-livesync-rhino

edb777f566959ca1264bf0f3b51880e3.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值