使用Blender创建透明材质的物体并导入到Unity中
文章导航
Unity本身自带有3D物体的贴图和材质功能,但是在编辑器中仅允许我们对一个物体使用一个材质。而往往我们希望的是一个物体上能有多个材质,虽然也可以用代码实现这一点,但总体而言还是比较麻烦的,不妨试试用模型软件制作一个多材质的3D物体。
Blender
这里本人使用的是2.81a的版本,选择常规自动生成一个方块。在右边的面板中选择材质选项卡,然后点击“+”按钮新增一个空项,最后点击下方的“新建”即可创建一个新的材质。
导入图片生成材质
然后选择最上方菜单栏中的“Shading”选项卡,在左侧的文件浏览面板中找到想要使用的图片的位置,将该图片直接拖入下方的属性节点编辑面板中,然后将图片的“颜色”与材质的“基础色”相连,由于这里使用的带有透明通道的图片,所以Alpha的属性也要连接。
以此方法继续导入其他图片。
将材质应用到物体的面
选择最上方菜单栏中的“Modeling”选项卡,然后选择“面选择模式”,点击物体的面,在右侧材质面板中选择需要的材质,点击“指定”按钮即可将材质应用到选择的面上。
此时我们回到“Shading”模式中,会发现渲染的材质的图片只有一部分,材质捕捉的区域出了些问题。
选择“UV Editing”选项卡,可以发现确实如此。右侧图片中间的正方形框就是选取的区域,可以随意移动缩放来选择想要的样子。在这里我们点击右键选择“展开”则自动将整个区域覆盖到图片上。
同样的,对每个面都执行这样的操作。
选择透明模式
再次回到“Shading”模式中,可以看到这个物体确实达到了我们想要的样子,但是如果是png格式的图片,空白区域会被黑色填充。这个时候我们将右侧的材质菜单栏下拉,找到设置项,将混合模式改为“Alpha钳制”,如果你不希望它被光照渲染出影子的话,那么阴影模式需要改为“无”。
这样我们需要的多材质物体就完成了。
Unity
将模型导出为fbx格式,然后在unity中导入这个文件,虽然Unity也可以接受blender格式的文件,也就是Blender的原创文件类型,但好像在Unity中并不稳定。
物体的调整
直接将导入的模型拖入到Unity的场景中。
可以发现,导入的模型没有材质,而且在游戏模式下非常奇怪,这是因为fbx文件自带了摄像头与光照组件,如果不想要光照的效果,可以直接删除这两个组件。注意是场景中的物体的组件而不是在项目文件夹中的!!!
这个时候物体的位置和视角正常了,但是材质怎么丢失了呢?
其实材质并没有丢失,而是材质的纹理丢失了,也就是说,我们需要把图片也导入到Unity中,注意和该文件保存到同一路径下面。
可以看见导入的png格式图片是显示错误的,在图片的属性面板中按下图红框部分设置,则显示变为正常。
然后在项目栏中选择模型文件,在其属性面板中选择“Materials”选项卡,按下图红框部分设置,然后点击“Apply”。
可以发现模型的材质会自动与同名纹理绑定,然后材质就正常显示了。
透明材质的设置
还是透明的问题,我们发现虽然纹理是显示正确的,但是材质却出错了,我们需要对材质也进行一些设置。
在材质的面板中,点击Shader这个属性,然后按图所示选择渲染方式。
Cutout这一栏就是用来渲染透明材质的,如果希望透明部分可以遮挡模型后方可以选择其他的方式,请读者们自由尝试看看吧。
保存模型
在项目资源栏中点击模型文件,可以看到预览中已经渲染正确了。再次将此模型拖到场景中,删除摄像机和光照组件,然后调整一下模型的角度,坐标等参数达到合适的数值。再将这个模型对象保存到项目资源中,即可随意使用了。切记不要删除原模型文件,否则会造成设置好的模型对象丢失!!!
- 点赞
- 收藏
- 分享
- 文章举报
- unity小技巧备忘录1使用代码单物体同时存在多个材质,使用代码更换指定材质
- 【Unity&UGUI&Shader】创建材质球Material&代码控制更换物体材质球
- [blender][blender教程].obj.fbx导入Unity的材质无颜色问题以及解决办法
- unity使用单例创建物体
- Unity使用Shader控制物体材质的透明度(Lambert版和非光照版)
- Unity中透明材质物体渲染到RenderTexture的问题
- blender 带贴图与颜色材质的模型,导入到Unity中
- Unity 游戏开发技巧集锦之创建透明的材质
- Unity 游戏开发技巧集锦之创建透明的材质
- Unity 3D使用GameObject创建一个简单的可移动物体
- [导入]在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 5)
- Unity导入FBX文件部分模型丢失材质的BUG
- [导入]自定义IHttpHandlerFactory使用Unity对ASP.NET Webform页面进行依赖注入
- unity3D片面使用png材质贴图透明
- Unity 游戏开发技巧集锦之材质的应用的创建反射材质
- unityTaidou(一)NGUI之列表的创建与使用
- 使用navicat8实现创建数据库和导入数据[图文]
- 【步步为营 Entity Framework+Reporting service开发】-(3) 创建commandline 应用程序 ,使用EF导入数据
- unity,如何手动或者使用代码更换材质
- Unity3D ShaderLab 使用alpha参数创建透明效果