⑴ unity如何使用sp的贴图
unity这样使用sp的贴图:
1、用SP自带默认unity模板导出。
2、模型导入unity右上角对象属性点击生成材质选择文件夹更改默认shder贴上对应贴图即可。Unity是全球应用非常广泛的实时内容开发平台,为游戏、汽车、建筑工程、影视动画等广泛领域的开发者提供强大且易于上手的工具来创作、运营和变现3D、2DVR和AR可视化体验。
⑵ Unity中实现贴图融合案例-墙壁上留下弹痕
原理:实现两张图片的融合,即将其中一张图片的的像素点放到另外一张图片上。
1、需要两张图片,一张墙壁的图片,一张弹痕的图片,要实现用鼠标点击墙壁图片时,以点击的位置为中心点,将弹痕图片的像素点设置在墙壁图片上。
2、创建Unity工程,这两张图片拖到工程后,做以下修改设置
①需要设置这两张图片的TextureType为Advanced;
②这两张图片都要勾选上Read/WriteEnable属性,允许图片进行像素编辑;
③设置弹痕图片的MaxSize为64,Format格式为:RGBA32 bit;
④设置wall图片的MaxSize为2048,Format格式为RGBA32 bit;
3、创建场景,直接将墙壁图片托放在Plane上即可
4、创建脚本PlaneScr,在脚本中实现使用鼠标点击墙壁时能够生成相应的弹痕,将脚本挂载在Plane上
⑶ unity3d怎么让两个物体无缝连接
打开unity3D,点击create创建一个新的javascript的脚本,初试内容如图所示
在Update函数上方创建一个变回量(图中变量名为答:speed)将下列代码粘贴进Update函数的花括号中:
var x:float=Input.GetAxis("Horizontal")*Time.deltaTime*speed;
var z:float=Input.GetAxis("Vertical")*Time.deltaTime*speed;
transform.Translate(x,0,z);
将代码保存,查看提示栏中是否有错误提示,如果没有则代码可以执行,如果不可以,请查看参照上述步骤检查错误,注意:U3D的代码区分大小写
将脚本添加进物体中,查看物体属性就可以看到,一个图标为“JS”的javascript脚本,图中脚本名称为“xiao_hui”
5
测试游戏是否可以运行,若可以运行,说明脚本成功,不可以运行,参照上述步骤修改代码.
⑷ Unity3D自带功能:地形(Terrain)
Unity3D中的地形类似于Maya中使用置换贴图来变形高段数的多边形平面,其原理是自动创建一个中等多边形密度的mesh plane(多边形平面),然后指定一张16bit的灰阶图作为height map(高差图),并根据mesh各个顶点所对应的灰度数值沿着Y轴改变该顶点的高度,形成高低起伏的复杂地形。
Unity3D内置了一套简单的brush(笔刷)工具来方便用户对地形物体的编辑修改。
通过菜单 GameObject > 3D Object > Terrain 可以创建一个Terrain (地形)。
Terrain Settings是对Terrain整体的参数设置面板。
最上面的一排按钮分别用来对地形及植被进行“刷制”的工具面板切换,最右边的 Terrain Setting 面板是针对地形整体的设置,这里挑一些常用的重点的来讲:
按下鼠标左键开始提升地形高度,如果同时按住 shift 键,则降低地形高度直到0。
直接刷出特定高度,按住 shift 键获取某一点的高度。非常适合用来刷出非水平面高度的平整地形,比如山顶或山间的一块平整地面等等。同时如果场景中有水面,由于Terrain不能刷出水平面以下的地形(最低刷到水平面),可以首先将全部地形提升到一定高度,再将水域地形刷低。
相当于光滑笔刷工具
在地形表面上绘制贴图。
首先需要在Textures栏中点击 Edit Textures... ,再选择 Add Texture 以添加一层贴图。
在这个“添加地形贴图”面板中我们可以设置一张颜色贴图和一张法线贴图,并指定贴图的重复度。如果检测出颜色贴图含有Alpha通道,就会将这个Alpha通道与作为光滑度的贴图,否则就会出现一个Smoothness参数供我们调节这一层表面的光滑度,此外还提供一个Metallic参数供我们调节这一层表面的金属颜色。
这里的贴图都需要处理成无缝贴图,否则场景中会出现明显的接缝。贴图不需要特别大,因为重复度会被设置得比较高,通常512或者1024分辨率的贴图就可以了。
第一层贴图会默认覆盖整个地形区域,从第二层(从左往右)开始,添加好贴图以后需要在地形上刷出该层贴图的出现范围。
需要编辑各层的贴图设置只需点击 Edit Textures... > Edit Texture... ,需要删除贴图层就点击 Edit Textures... > Remove Texture 。
在地形上刷出树来。
按下鼠标左键开始刷树,按住 Shift 键再刷可以删除已经刷出来的树,按住 Ctrl 键再刷可以删除当前选择的特定类型的树。
在Trees栏点击 Edit Trees... ,再选择 Add Tree ,可以添加一个GameObject作为“树”。这个物体可以是任意GameObject,并不一定非要是Tree Object。
然后就可以用鼠标在地形表面“刷”出这类树来了,同时也会出现具体的Settings参数。
我们可以添加多种type的树,然后一层层刷出复杂的森林结构。
同样的,我们也可以点击 Edit Trees... > Edit Tree 给树更换GameObject,或点击 Edit Trees... > Remove Tree 删除某一层的树。
在地形上刷出细节物体,通常用来做草。
按下鼠标左键开始刷细节物体,按住 Shift 键再刷可以删除已经刷出来的细节物体,按住 Ctrl 键再刷可以删除当前选择的特定类型的细节物体。
在Details栏点击 Edit Details... ,再选择 Add Grass Texture ,打开Add Grass Texture面板设置新建“草贴图”的参数:
在Details栏点击 Edit Details... ,再选择 Add Detail Mesh ,打开Add Detail Mesh面板设置新建“细节面片”的参数:
⑸ 怎样在unity内置的地形中使用凹凸贴图
打开Mudbox 在开始之前,我们需要设置一些变量。 调整FOV视角层的FOV参数来匹配你Unity上面的摄像机FOV值。这样就能得到一个好点的刻度调整以及均衡的视角。 将工具的雕刻值方向只设置Y。由于高度地图指示存储高度信息,我们只需要多边形向上在Y轴移动。 为雕刻工具选择一个好的邮戳图片。可以在制作完基本形状后再做。Bw_cliffFace.tif邮戳在岩石表面运行起来效果不错。 开始雕刻地形,直到你满意为止。 完成之后,你的地形如下图所示: 现在要导出我们地形的高度地图来在机器世界里使用! 为此我们导入简单的屏幕OBJ文件到场景中来映射高多边地形数据到平、低多边的平面。 之后到UV和地图-;提取纹理地图-;新操作 选择移置地图并调整下面的参数: 目标模型-;添加低多边平面 源模型-;添加高多边平面地形 搜索距离-;用最佳猜想试验,如果在高度地图中得到非人工的则进行调整 图片尺寸-;我们用2048*2048分辨率的 基本文件名字-;选择你的文件名字并选择TIFF16位整数 点击提取来制作你的高度地图 制作过程完毕后,你会得到一个2048*2048的图片。 添加地形过程详细信息 我们打开机器世界并设置一些节点。 处理各种参数的时候最好将分辨率设为一个较低的值(513*513),这样会加速构建时间。一旦你觉得地形不错了你就可以将分辨率增加到2049*2049. 你可以在项目设置菜单里更改分辨率。 机器世界里对每个节点都做了很多预设。只需要尝试不同设置即可。 创建一个新的高度地图 首先我们需要生成器列表中的一个文件输入节点来加载我们的高度地图。双击节点选择你的TIF高度地图文件。你可以谅解不同规格的节点到文件输出模块的高度域 最终谅解一输出列表中的高度输出节点到你更改环节中最后的一个模块的高度域输出即可 双击高度输出节点并选择一个文件名字 选择RAW16作为文件格式,将之前的.r16文件后缀名改为.raw 点击写出到硬盘! 创建一个splat地图 Splat地图是根据其水平高度来对地形进行纹理化的。 因此我必须将地形的高度信息分离到单独的通道来获取器RGBA值。我们会使用选择器列表中的选择坡度和选择高度模块。 我们的节点如下所示: 坡度选择器可以只选择来自给定高度的数据来配置地形数据。 如果最大值和最小值跟其他坡度选择器重叠,你就会获得最好的结果。 由于选择器只有一个高度位域输出,我们必须使用合并器列表中的通道合并,然后连接高度位域到通道合并器输入的红、绿、蓝。 最后我们连接来自输出列表中的位图输出节点来将我们的splat地图导出为一个16位PNG图片。 创建标准地图 标准地图是为地形添加结构的一种很好的方式。为了导出一个标准地图我们需要从转换列表中添加一个标准地图制作节点,然后将其连接到一个位图输出。 创建颜色地图 最后我们需要用转换列表中的颜色节点来制作一个颜色地图。 详细情况是我们将通过选择器列表中的选择顶点节点来导出一个曲率地图。 为了导出图片文件我们需要连接一个高度输出和一个位图输出节点。 我们将用Photoshop将曲率地图和颜色地图合并。不断对透明度和混合模式进行调整直到你满意为止。 如果你想更深入的了解使用Mudbox创建地形,在CryEngine和UDK里有一个好的更加深入的教程。 下面第二部分处理将地图导入到CryEngine,我们将在下面的环节中涵盖Unity的部分。 你处理完毕后应该会得到四个图片和一个高度地图的源数据文件。 重要:为了用ats颜色地图终极地形渐变器,你序号将它们在Y轴翻转。 将地形和地图导入到Unity中 打开Unity并将地图添加到项目里。 额外需要添加至少四个纹理,以便在地形中使用。你可以从Unity素材商店里花费10美金购买ats颜色地图终极地形渐变器,我们要用到它的,它可是物超所值哦。 用通过游戏对象-;创建其他-;地形来创建一个新的地形。 到你新创建地形对象的设置列表中,设置高度地图的分辨率为2049,并点击导入源按钮啦导入你的高度地形的源文件。 使用ats颜色地图顶级地形渐变器 启动ats颜色地图渐变器有点复杂,但是包里的文档还是不错的。 创建好地形最好的方法就是遵循手册里的步骤。无论如何,下面是建立渐变器的大概步骤。 至少添加四个地形纹理到地形着色工具中 在地形中添加.cs脚本 在添加颜色地图脚本的时候,设定颜色地图并用地形上的新编辑器处理标准地图 添加splatmap然后选择应用splatd地图 为防止处理splat地图格式时候出错,你可以在Unity里更改图片文件的导入格式 通过添加地形纹理的标准地图到槽里来创建合并的标准地图,然后导出新生成的合并标准地图 为每个纹理无缝混合生成平均的颜色 创建一个新材料的地形 现在你应该在Unity里得到了一个不错的地形了。 如果在使用ats Colormap UL TRA地形渐变器过程中有什么问题,请查看包里的用户手册。里面很详细,你应该可以解决任何问题。 下面是我们刚才创建的地形。
⑹ 新手求问Unity3D怎么制作素材
在使用unity软件时我们可能会需要用到一些素材,以制作地球为例大家如何制作。
工具:电脑、Unity软件
方法/步骤:
1、首先在电脑桌面上打开uinty软件
⑺ unity 公用顶点的uv怎么设置
如果用代码控制,可以在一次循环后设offse为0。
如果用动画控制,结束动画的播放或者将动画的loop设为clamp或once。具体试一下
不过uv动画一般都是为了重复的,这要把贴图做成无缝贴图,这样就不会穿帮了
⑻ unity怎么让一个方块的每一个面贴上不一样贴图
这个首先你需要有一套完整的贴图先喔,
比如地砖,相拼接的纹理图9宫图,
可以使用palette这个工具在TileMap里实现
下图为Palette工具
前提是你有9宫格的贴图,然后使用BOX填充方法来进行画贴图,
以上希望可以帮助到你
⑼ (四)Unity纹理、贴图和材质
在Unity中,我们可以这样理解:Material(材质)包含Map(贴图),Map包含Texture(纹理)。
首先在工程中创建一个Terrain(地形)和一个Cube(立方体),然后我们基于这两个物体来深入学习什么是纹理、贴图和材质。
下面我们添加一个地形纹理和一个LOL泳池派对纹理。(其实就是图片)
我们来学习一下纹理的Inspector视图中都有什么属性功能,以“泳池派对”为例。
效果如下:
详情如下:
Texture:纹理
Normal map:法线贴图
(游戏场景中譬如雕刻这种3D细节,如果做3D模型的话,就会浪费显示芯片,使游戏性能下降,便会用法线贴图,既不影响玩家体验游戏又不影响游戏性能)
Editor GUI and Legacy GUI:编辑器的GUI和传统的GUI
Sprite(2D and UI):图片精灵
Cursor:设为光标
Cubemap:立方体贴图
Cookie:聚光灯贴图
Lightmap:光照贴图
Advanced:高级选项(当你想要有纹理的具体参数并想拥有纹理的完全控制的时候选择该项)
UV坐标:水平方向是U,竖直方向是V。因为图片(纹理)是一个二维的平面,所以只需要UV坐标便可以确定图片的位置。(当然也有三维贴图,要用到UVW坐标,暂时还接触不到。)
贴图:一种就是就是把纹理通过UV坐标映射到3D物体的表面,另一种就是把纹理加入一些功能,这两种都是贴图。贴图具有 UV 坐标属性或者一些功能,而纹理没有。
我们把Terrain加上纹理,此时这个名为“地形”的纹理就成为了Terrain的贴图。
Shader负责将输入的Mesh(网格)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。
将输入的贴图或者颜色,加上对应的Shader,以及对Shader的特定的参数设置,将这些打包在一起就是一个材质了。之后,我们便可以将材质赋予合适的renderer(渲染器)来进行渲染。
点击Create,添加一个材质和一个物理材质。
选色:
上色:
Dynamic Friction:动摩擦系数
Static Firction:静摩擦系数
Bounciness:弹性系数
Friction Combine:联动摩擦
Bounce Combine:联动反弹
Average:取平均值。
Minimum:取最低值。
Multiply:取相乘值。
Maximum:取最大值。
⑽ 如何在unity的sprite中贴图
在unity的sprite中贴图的方法如下:
在SpriteAnimator.cs脚本中添加代码
using UnityEngine;
using System.Collections;
/// Sprite 动画播放器
public class SpriteAnimator : MonoBehaviour {
/// Sprite渲染器
protected SpriteRenderer m_sprite;
/// Sprite动画帧
protected Sprite[] m_clips;
/// 动画计时器(默认每隔0.1秒更新一帧)
protected float timer = 0.1f;
/// 贴图文件名前缀
public string m_sprite_name = "player00";
/// 贴图文件起始帧数字
public int m_start_frame = 0;
/// 动画的帧数
public int m_frame_count =8;
/// 跳帧数量
public int m_offset_frame = 4;
/// 当前的帧数
protected int m_frame = 0;
}
SpriteRenderer是Sprite的渲染器,只有通过它才能在屏幕上显示出Sprite的图像。
m_clips是一个Sprite数组,用来保存动画所需要的Sprite。
在这个例子中,我们使用的动画贴图文件命名都采用数字后缀,表示动画帧,并且跳帧,如“player0016,player0020,player0024……”。m_start_frame表示第一帧的数字,在这个例子中是指16, m_offset_frame表示跳帧,在这个例子中是指4。出现跳帧数字是因为这些图像都是通过3D软件渲染而成,在渲染的时候进行了跳帧设置,否则这个动画需要几十张图片来表现。
void Start () {
// 初始化动画帧数组
m_clips = new Sprite[m_frame_count];
for (int i = 0; i < m_frame_count; i++)
{
// 当前帧
int currentframe = m_start_frame + i * m_offset_frame;
// 计算贴图名称
string spritename = string.Format(m_sprite_name + "{0:D2}", currentframe);
// 从Resources目录读取贴图
Texture2D texture = (Texture2D)Resources.Load(spritename);
// 由贴图创建出Sprite
m_clips[i] = Sprite.Create(texture,
new Rect(0, 0, texture.width, texture.height),
new Vector2(0.5f, 0.2f));
}
// 为当前GameObject添加一个Sprite渲染器
m_sprite = this.gameObject.AddComponent<SpriteRenderer>();
// 设置第1帧的Sprite
m_sprite.sprite = m_clips[m_frame];
}