首页 > 其他分享 >在Houdini中创建布料,并导入到Unity中

在Houdini中创建布料,并导入到Unity中

时间:2023-10-25 19:12:47浏览次数:48  
标签:导入到 hda 暴露 unity Unity 布料 Houdini 属性

在Houdini中创建一个具有物理效果和贴图的布料,导入到Unity中,实现一个效果良好的、可以与模型互动、有贴图的静态布料模型。

参考视频:Houdini+Unity 2021制作布料全流程!_哔哩哔哩_bilibili

1、创建节点

首先创建一个obj文件:

image-20231024131229465

随后右键这个节点,创建一个Digital Assret。

进入Type Properties界面,可以设置属性。

image-20231024131519628

在打开的面板中找到Parameters选项卡,可以在这里设置hda文件向外界暴露的属性。

我们可以在unity的属性界面更改暴露出来的属性,方便操作。

image

双击进入obj文件中。

按下右键创建一个网格grid,创建一个uvproject,以及一个remesh

grid是基础的网格面,uvproject能为我们设置uv,remesh能够改变网格形状,使其不是标准的长方体。

image

可以调节其中的属性来优化效果。例如remesh组件中的target size可以调整网格大小:

image

继续创建:

用vellumcloth以及vellumsolver来模拟布料,创建一个getcloosion来模拟碰撞

image

下面接入timeshift。这能够使模型停止在某一帧上。在unity中我们通过调整可以让布料停止在空中,当然也可以完全落下。

添加vellumpostprocess,随后添加polyreduce以减少不需要的面,提升性能。

使用switch节点连接,我们后续可以在unity中设置是否使用polyreduce

image

最后添加一个unity material以及输出output。

image

2、调整属性

调整属各个节点的属性,满足自己的要求。

例如,可以让网格面更大、更小,调整位置、修改polyreduce的百分比等等

在unity material中,填写如下代码以设置材质:

image-20231024133244307

3、设置暴露属性

打开前面提到的菜单,我们使用alt+鼠标中键点击物体的某个属性,就能够将属性添加到暴露出来的属性中。

这样后面我们就能在unity中编辑这些属性。

image

首先Alt+鼠标中键点击暴露grid节点的size属性,让我们能够在untiy中编辑网格面的大小。

Alt+鼠标中键点击的时候请保持属性界面一直开着,如上图所示。

暴露remesh节点的target size属性。

暴露getcollsion节点的object1属性。暴露后会呈现绿色。

image-20231024133022958

暴露timeshift的frame属性,方便在unity中设置。

暴露polyreduce的percent to keep属性。

暴露switch节点的select input属性。

4、找到hda文件

属性界面中,最上面会显示hda文件的所在位置。在这里就能找到hda文件

image

5、导入unity

导入hda文件前,需要找到Houdini的Unity包,插件网址:

Unity Plug-In | SideFX

将这个包拖到unity中安装即可。

安装完包之后,将hda文件拖到unity的文件中导入。

6、在 Unity 中设置

将hda文件拖动进场景中。

image

通过修改右侧的属性调整最终效果。

首先创建一个material,然后按下右键选择copy path

image-20231025173124429

将得到的路径粘贴到布的material属性中。这样布就有了材质。

材质贴图可以到https://ambientcg.com下载

在collision input中点击add slot添加碰撞,把需要参与碰撞的模型拖到Input中:

image

这样,布料就有了碰撞。

调小target size,调成0.2以提高模拟精度。

调整time shift到合适的值,如果时间太短的话布料可能会呈平面不动。

调整其他属性,例如布的大小。

点击Rebuild将刚才的设置应用一下。

设置良好的情况下,模拟出来的效果非常漂亮:

image

标签:导入到,hda,暴露,unity,Unity,布料,Houdini,属性
From: https://www.cnblogs.com/Wu-765279087/p/17787919.html

相关文章

  • Unity DOTS系列之BlobAsset核心机制分析
     最近DOTS发布了正式的版本,我们来分享一下DOTS里面BlobAsset机制,方便大家上手学习掌握UnityDOTS开发。BlobAsset概叙DOTS提供了BlobAsset机制来把数据生成高效的二进制数据。BlobAsset的数据是不可变的。BlobAsset只支持非托管类型数据。支持Burst编译器编译出来的类型。同......
  • Unity游戏排行榜的制作与优化
    游戏排行榜是一个很重要的功能,在弱联网的单机游戏与网络游戏中排行榜都是非常重要的,今天我们来详细的讲解游戏排行榜的制作方案,主要有4个点:  游戏排行榜排序核心算法的实现 排序在游戏开发中是一种十分重要的算法,特别是对于海量的数据,高效的排序算法,是核心与关键,排行......
  • Unity DOTS系列之Filter Baking Output与Prefab In Baking核心分析
     最近DOTS发布了正式的版本,我们来分享一下DOTS里面Baking核心机制,方便大家上手学习掌握UnityDOTS开发。今天给大家分享的Baking机制中的FilterBakingOutput与PrefabInBaking。FilterBakingOutput机制在默认情况下,Baking会为每个GameObject生成的Entity与Component,......
  • Unity 3D定点数物理引擎实战系列
    1.1 BEPUphysicsint3D定点数物理引擎介绍 帧同步的游戏中如果用物理引擎,为了保证不同设备上的结果一致,需要采用定点数来计算迭代游戏过程中的物理运算。也就是我们通常说的定点数物理引擎(确定性物理引擎)。本系列教程给大家详细的讲解如何在你的项目中内置一个确定性物理引......
  • Unity 3D定点数物理引擎实战系列2
    1.2 BEPUphysicsint定点数3D物理引擎使用上一节給大家介绍了BEPUphysicsint的一些基本的情况,这节课我们来介绍它的基本使用,本节主要从以下5个方面来介绍:(1) 创建一个物理世界Space,并开启模拟迭代;(2) 添加一个物理物体Entity到世界;(3) 物理引擎的基本处理与操作使用;(......
  • Unity ILRuntime 实战教程系列
    1.1 Unity 搭建ILRuntime开发环境 Unity热更新目前主流的方案有; Lua, ILRuntime, puerts, huatuo方案。前两个大家都比较熟悉了,puerts是基于TypeScript开发的热更新,huatuo是基于C#的方案。后两个大家会比较陌生。本系列分享基于ILRuntime来做热更新。 ILRuntime热更......
  • Unity中GameObject对象的方法Find,FindGameObjectsWithTag等API的使用方法
    Unity中GameObject对象的方法Find,FindGameObjectsWithTag等API的使用方法.Find(stringname):.FindGameObjectsWithTag(stringtag):.FindGameObjectWithTag(stringtag):.FindWithTag(stringtag):在Unity中,GameObject类具有一些用于查找和操作游戏对象的方法。.Find(stringna......
  • unity打包 android
    第一种:手动把没有的包都放入C:\ProgramFiles\Unity\Hub\Editor\2022.3.3f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib 第二种:修改镜像urlC:\ProgramFiles\Unity\Hub\Editor\2022.3.3f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools......
  • Unity DOTS系列之Filter Baking Output与Prefab In Baking核心分析
    最近DOTS发布了正式的版本,我们来分享一下DOTS里面Baking核心机制,方便大家上手学习掌握UnityDOTS开发。今天给大家分享的Baking机制中的FilterBakingOutput与PrefabInBaking。对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发......
  • Unity 跨平台底层如何处理C#代码
    在面试中,我们经常会被问到Unity的底层是如何处理C#,本节给通过一下3个点来给大家详细的分析这个问题:(1)C#的发展历史;(2)Unity为什么用C#;(3)il2cpp解决了什么问题; 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大......