您的位置:首页 > 移动开发 > Unity3D

Unity3d六 unity3d资源解析(意义、来源、编辑和查看工具)

2017-09-21 21:27 441 查看
文件格式大全 http://www.moon-soft.com/program/FORMAT/
.psd(支持alpha通道)

photoshop导出和打开

.png 图片(支持alpha通道) T. Boutell et al

.tif(支持alpha通道) Aldus公司

1.标签图像文件格式(Tagged Image File Format,简写为TIFF)

2.主要用来存储包括照片和艺术图在内的图像。它最初由Aldus公司与微软公司一起为PostScript打印开发。

3.优点

(1)TIFF可以描述多种类型的图像;(2)TIFF拥有一系列的压缩方案可供选择;(3)TIFF不依赖于具体的硬件;(4)TIFF是一种可移植的文件格式。

4.文件格式
https://baike.baidu.com/item/TIFF/2106?fr=aladdin
.cs VisualStudio C#导出

.js JavaScriptEditor编辑和导出

.prefab预制件

unity3d编辑和导出 http://blog.csdn.net/alexander_xfl/article/details/44308779
1.什么是Prefab?

预置是一种资源类型——存储在项目视图中的一种可重复使用的游戏对象。预置可以多次放入到多个场景中。当你添加一个预置到场景中,

就创建了它的一个实例。所有的预置实例链接到原始预置,基本上是它的克隆。不管你的项目存在多少实例,当你对预置进行任何更改,你将看到这些更改将应用于所有实例。

当预置源发生变化,这些变化将应用于所有已链接的游戏对象。例如,如果添加一个新的脚本到预置,所有已链接的游戏对象都将立刻包含该脚本。

但是,它有可能改变一个单独实例的属性,同时保持链接。改变任何一个预置实例的属性,可以看到变量名称变为粗体,现在该变量可以被重写,

所有的重写属性不会影响预置源的变化。这使你可以修改预置实例使它们变得独一无二,而不破坏它们与预置源之间的链接。

2.Prefab有哪些特点、优点?

a. Prefab一个重要的优势就是编辑prefab资源后,场景中所有使用Prefab克隆的游戏对象将全部使用新编辑的资源,无需一个一个的给场景中的对象赋值。

b.当游戏中需要频繁创建一个物体时,使用Prefab能够节省内存。

c.当你在一个场景中增加一个Prefabs,你就实例化了一个Prefabs。

3.什么情况下使用Prefab呢?

如果需要频繁的创建一些重复的物体时,就应该使用Prefab

4.Prefab与常规资源的区别?

Prefab实际上是资源的一些组合链接(个人观点)。

5.Prefab相关接口

PrefabUtility.CreatePrefab(prefabpath, prefabobj);

PrefabUtility.ReplacePrefab(...);

EditorApplication.SaveAssets();

.ttf 字体(TrueType字体,矢量图)
https://baike.baidu.com/item/TTF%E5%AD%97%E4%BD%93/5108220?fr=aladdin http://jingyan.baidu.com/article/5d6edee2fe14f299eadeec1c.html
1.TTF文件:是Apple公司和Microsoft公司共同推出的字体文件格式。是一种语言下字符的集合。

要使用某种字体文件只要把它(*.ttf)放到C:\windows\font

2.几种字体格式的区别otf/ttf/ttc格式字体的区别

TTF 扩展名的 O 图标的表示 OpenType - TrueType 字体, 采用的是 TrueType 曲线, 不过支持 OpenType 的高级特性.

TTF 扩展名的 T 图标的表示 TrueType 字体, 采用的是 TrueType 曲线, 不支持 OpenType 特性.

TTC是几个TTF合成的字库,安装后字体列表中会看到两个以上的字体。两个字体中大部分字都一样时,可以将两种字体做成一个TTC文件,

现在常见的TTC中的不同字体,汉字一般没有差别,只是英文符号的宽度不一样,以便适应不同的版面要求。

OTF 扩展名的 O 图标的表示 OpenType - PostScript 字体, 采用的是 PostScript 曲线, 支持 OpenType 高级特性.

OpenType 是 Microsoft 与 Adobe 共同制定的标准, 在此之前有两大字体格式: TrueType 和 Type 1, 两家合作制定出的 OpenType 将之前的两大格式都包含了进去,

TrueType 进化成 OpenType - TrueType, 在原有基础上增加了 OpenType 高级特性支持, 扩展名不变 (TTF), 图标由 T 变为 O;

Type 1 进化成 OpenType - PostScript, 在原有基础上增加了 OpenType 高级特性支持,扩展名定位 OTF, 图标为 O.

3.制作工具

CorelDraw、FontCreatorProgram、第三方如FontCreator、sfnttool

4.ttf文件格式标准
http://www.cnblogs.com/sjhrun2001/archive/2010/01/19/1651274.html
typedef struct

{

WORD numberOfContours; //contor number,negative if composite

FWord xMin; //Minimum x for coordinate data.

FWord yMin; //Minimum y for coordinate data.

FWord xMax; //Maximum x for coordinate data.

FWord yMax; //Maximum y for coordinate data.

}GlyphHeader;

USHORT endPtsOfContours
; //n=number of contours

USHORT instructionlength;

BYTE instruction[i]; //i = instruction length

BYTE flags[]; //variable size

BYTE xCoordinates[]; //variable size

BYTE yCoordinates[]; //variable size

ttf字体文件抽取自己想要的字 http://blog.csdn.net/ithouse/article/details/70176215?locationNum=5&fps=1
.mat是3ds max 的材质文件

一般来说,材质=shader+贴图和其它数据,要想表现特殊的材质,比如镜面反射、水面、塑料等,就需要编程shader(Unity中有一些默认的shader)

.anim文件

由于模型是由第三方的软件制作的,用unity不能直接编辑模型里的动画文件(read-ony),比如为动画绑定事件,所以要把模型中的动画文件抽取出来,这样文件是可写的了。

unity3d导出:Hierarchy视图选择动画对象,在Window菜单中打开Animation,创建anim文件,添加关键帧...最后保存http://blog.csdn.net/oskytonight/article/details/38583133

3dMax导出 http://www.3d66.com/softhtml/showsoft_100.html
玛雅导出 http://www.3d66.com/softhtml/downsoft_162.html
.fbx模型动画文件

3dMax导出

7种代表性的模型格式(3ds、obj、md2、md3、md5、fbx、dae)

md(或者称md1),推测应该是ID Tech 1(1996)所使用的模型格式或概念,是否包含动画信息尚不可知,但是它必然是后来此系列模型格式的基石;

md2,始于ID Tech 2(1997),真正地把动画中的“各帧模型”合并到一个模型中,利用帧数据(结合Morphing技术)还原动画,简单而数据量巨大;

md3,始于ID Tech 3 (1999),虽仍以帧数据还原动画,但同时引入了骨骼这一概念,把模型分为下身、上身、头和武器这几部分,通过骨骼节点连接,

下身节点带动上身移动和旋转,以此类推——相当于加入了一条短骨骼,有效地降低数据冗余度,各部分的动画可以各种组合;

md4,草稿式的模型格式,它的存在印证着新千年初始期,ID Tech人员对更高效模型格式和渲染技术的探寻,但也只停留在概念阶段而被略去——

但也有其他人实现了这一概念(mdr格式),也存在别的发展分支(mdl格式);

md5,始于ID Tech 4(2004),从03年完善到05年,是真正的支持骨骼动画、顶点蒙皮渲染的模型格式,随着著名的Doom3游戏进入大众的视线。

fbx,[WIKI]源于Kaydara的FilmBox(后改为现称的MotionBuilder)软件(1996),后来被Autodesk收购,但是这个模型格式依然被一直发展,

直至今天它还是“最”跟得上潮流的格式——鉴于Autodesk已经无法给3ds格式更好的动画信息支持了,现在fbx才是它的主打,也因为有个强大的爹,

这个格式被广泛的建模软件和游戏引擎支持,也有引擎(像那个Xxity3D)把它作为主要支持的导入模型的;

如前所述,fbx是一种封闭的模型格式,这不仅说它通常作为二进制文件出现,而且是目前只能使用Autodesk提供的FBX SDK来操控这种文件。

事实上,无论是3DS Max还是其SDK内置的Converter工具,都可以把其转换成ASCII的文本格式,虽然看上去有点JSON的样子,

可事实上是全自给的“仅供观赏”的数据堆,也没有spec,通常也不会有人使用这种方式输出模型。好了,看来是必须借助其SDK了,

所以首先要做的一件不太让人愉快的事情:加入这个SDK的库(lib&dll)。现在我用的是最新的fbxsdk-2013.3,下文仅就这版本兼容的模型而言。

(注意,在预处理器选项中加入FBXSDK_NEW_API和FBXSDK_SHARED,如果你不想编译器抱怨一大堆的话。)

这里首先说一下,对于Fbx(其实下文的Dae也是一样的),它保存的最大集合是一个Scene(场景),跟很多的游戏引擎所使用的概念是一致的,就是用场景节点树来组织成一个场景。

x,这是Microsoft弄出来的模型格式,随着DirectX的SDK一起升级,后来也成为了骨骼动画的代表模型格式之一,这是微软为了把DX塑造成完整的自生态开发系统而采取的常见行为,

虽然格式本身是开放的,但可见对Direct3D是无条件支持的(甚至有内置函数可以直接读取),这里我就不过多阐述了,因长期没更新,所以业界使用率没比md5更广泛得了去哪,常见于D3D的例子Demo;

dae,[WIKI]也称Collada模型,是非盈利性组织Khronos负责维护的开放性三维模型格式(现已成为 ISO标准之一),应该说跟OpenGL是同一级别的,

作为一个标准,其目的自然是能被各方支持了,而毕竟Autodesk有自己的利益考虑,所以远没有像fbx那样完美的支持,但这不妨碍它现在还是能够与封闭的fbx分庭抗礼的主要模型格式。

.shader
http://www.cnblogs.com/lixiang-share/p/5025662.html
1.Shader分类。Shader中文翻译为“着色器”,含义是:可编程图形管线。主要分为:Vertex Shader和fragment Shader,即定点Shader和片段Shader。

Shader就是在GPU上运行的程序叫做着色器程序(一般的程序在CPU上执行指令)

上面有一个概念是“图形管线”,简单解释就是:计算机处理图形显示的处理流水线。

2.Shader 的主流编程语言。

a、主流的Shader编程语言主要有HLSL、GLSL、CG。下面简单说一下区别:HLSL(High Level Shader Language)是微软基于DX的作品,

只能运行在Windows平台上。GLSL(OpenGL Shading Language),OpenGL着色语言,是用来在OpenGL中着色编程的语言(OpenGL是个定义了一个跨编程语言、

跨平台的编程接口规格的专业的图形程序接口),是跨平台的着色器语言。到这里,我们已经可以发现有一个比较麻烦的问题出现了,就是我们底层图形驱动限制了上层的编程语言,

一旦想要改动图形驱动库,那就不得不重写整个Shader Files,此时CG就应运而生了,CG在HLSL和GLSL上做了进一步封装,屏蔽了上层的着色器语言对底层图形库的依赖。

b、Unity Shader使用的是NVIDIA公司的Cg标准语言,可以处理顶点着色、像素着色任务。Unity中的游戏对象只要是可视的,就一定会调用shader渲染,

最简单的shader就是diffuse类型,就是你给对象涂个什么颜色,这个对象在白光下就是什么颜色。

3.Unity Shader。ShaderLab其实是Unity对Shader语法结构的一种包装,其中支持三种Shader:surface Shader、Vertex and Fragment Shader 和 Fixed function shader 。

Fixed function shader 是一种比较“保守”的Shader(兼容性最好),vertex and fragment Shader可以只用HLSL或GLSL或CG语言区编写,

surface shader是对Vertex and fragment的一种语法包装,最终也会被翻译中Vertex and fragment Shader。

Diffuse漫反射 Specular高光

4.ShaderLab 语法基础。Unity 其实是支持上述三种Shader的,此处介绍的是Vertex and fragment Shader ,用的是CG语法。

//Shader 文件在选择面板以树状结构组织的

Shader "Hidden/NewImageEffectShader"

{

//这个申明程序中所需要的变量信息

Properties

{

//_MainTex 变量名 ; “Texture” 在Inspector面板上显示的名称 ; 2D 指变量类型

// "white" 变量默认值

_MainTex ("Texture", 2D) = "white" {}

}

// Shader 语法块,一个Shader程序至少有一个SubShader,系统在渲染时会依次调用,

// 直到找到匹配的SubShader,否则使用最后默认指定的Shader

SubShader

{

// Cull Off:关闭阴影剔除 、 ZWrite : 要将像素的深度写入深度缓存中

// Test Always:将当前深度值写到颜色缓冲中

Cull Off ZWrite Off ZTest Always

//渲染通道,固定写法

Pass

{

//Shader 代码段开始

CGPROGRAM

//指定顶点Shader入口

#pragma vertex vert

//指定片段程序入口

#pragma fragment frag

//引用Unity内置的一些定义

#include "UnityCG.cginc"

//自定义结构体

struct appdata

{

//float4 4维向量、POSITION 语义,相当于告诉渲染引擎,这个变量是代表什么含义

float4 vertex : POSITION;

//TEXCOORD0 纹理语义

float2 uv : TEXCOORD0;

};

struct v2f

{

float2 uv : TEXCOORD0;

float4 vertex : SV_POSITION;

};

//Vertex Shader 对应的入口

v2f vert (appdata v) //appdata v 作为参数,渲染引擎会把对应语义的信息传递进来,此处会传递顶点的位置信息和纹理信息

{

v2f o;

//传递进来的顶点坐标是模型坐标系中的坐标值,需要经过矩阵转换车成屏幕坐标

o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);

o.uv = v.uv;

//将计算后的结果输出给渲染引擎,底层会根据具体的语义去做对应的处理

return o;

}

//在Properties 中定义的变量需要在此申明一下才能在程序中使用

sampler2D _MainTex;

//fragment Shader 对应的入口

fixed4 frag (v2f i) : SV_Target

{

fixed4 col = tex2D(_MainTex, i.uv);

// just invert the colors

col = 1 - col;

return col;

}

ENDCG

}

}

//当上述的SubShader无法匹配硬件环境时,会调这个指定的默认Shader

Fallback "Mobile/VertexLit"

}

5.学习游戏渲染(Shader)的用处

a.举例来说,最基本的需求,就是要实现一些特殊效果,比如说波光粼粼的水面,旗帜烧毁时的溶解效果,盖伦大招劈下来时候的气浪等等。
http://www.cnblogs.com/Esfog/p/6135002.html
b.shader除了可以用来做特效之外,还能用来加速计算啊,像骨骼动画,sm的各种衍生等.shader 编写是 介于美术和程序之间的工作.

书写shader之前,通常都是先在photoshop 中,通过图层处理,得到自己想要的效果,因此ps也要比较熟悉才能比较快速的开发shader。

c.工作方向

负责渲染工作的客户端程序员、技术美术(TA)、游戏引擎开发

.unity

1.scene工程文件,.unity3d是发布后的产品文件,不是资源文件。无法直接读取。

.exr

1.4.x版本以前产生的是exr文件贴图

2.示例 lightmap光照贴图

.physicMaterial

1. untiy3d创建

2.作用是什么?

物理材质用于调整摩擦力和碰撞单位之间的反弹效果。

3.创建流程

创建物理材质的方式是选择菜单栏的Assets->Create->Physic Material。然后将其从项目视图中拖给场景中的一个碰撞单位。

.asset

1.平台相关资源如Android和IOS上的应用资源

2.发布后原封不动

3.存储和读取
http://www.cnblogs.com/ThreeThousandBigWorld/p/3199245.html
Unity3D游戏引擎支持如下4个等音乐格式的文件

.AIFF 适用于较短的音乐文件可用作游戏打斗音效

.WAV 适用于较短的音乐文件可用作游戏打斗音效

.MP3 适用于较长的音乐文件可用作游戏背景音乐

.OGG 适用于较长的音乐文件可用作游戏背景音乐

Unity3D游戏引擎支持播放视频格式的文件

目前主要支持mov, .mpg, .mpeg, .mp4,.avi, .asf格式

利用unity制作3D游戏的大致步骤是怎样的?

综合编辑: Unity具有层级式开发环境,具备视觉化编辑、详细的属性编辑器和动态游戏预览特性。

图形引擎: 使用的是Direct3D、OpenGL和自有的APIs。

资源导入:项目资源会被自动导入,并根据资源的改动而更新。Unity支持的主流三维建模有3ds max、Maya、Blender等。

着色器(shaders): 编写使用ShaderLab。

地形编辑器: Unity内建强大的地形编辑器,支持地形创建,树木,草等。

联网: Unity内置了强大多人联网游戏引擎。

albedo:反照率

specular: 高光

3D模型下载网站
http://www.360doc.com/content/11/0527/16/930254_119801102.shtml
如何防止Unity3D代码被反编译
https://www.zhihu.com/question/25414422 http://www.xuanyusong.com/archives/2664 http://blog.csdn.net/qq_15267341/article/details/51749986 http://blog.csdn.net/sibaison/article/details/67634297 Unity3D对apk反编译、重编译、重签名
http://blog.csdn.net/pizi0475/article/details/46890605 http://blog.csdn.net/jiguangcanhen/article/details/41806599 android引入unity-classes.jar之后进行混淆的问题解决
http://download.csdn.net/download/alexhyx4801/3389680 unity3d文件反编译工具

示例:

动画、脚本和语言、渲染、模型、材质、贴图

Assets/

AngryBots/.exr

Animation/.anim

Editor/.cs

Explosions/.mat(material), .js(Scripts), .prefab(Sequences), .psd(Textures), .png,

Fonts/.ttf

Gizmos/.tif(Textures)

Materials/.mat -> Shader

Objects/.fbx(Enemies,Doors,Furniture,LabEquipment,Lights,Pips,Props,Rocks,StructuralElements,

Walls,Bullet,FogPlane,Missile,Plane,PlaneSmall,Weapon,UnlockPipes,Player,), .mat(materials), .asset(RainFx)

PhysicMaterial/.physicMaterial

Prefabs/.prefab(Enemies,Escape,Floors,FX,Lights,Explosion,Joystick,Door,Elevator,HackTerminal,Pips,Props,Rails,Cursor,Rain,Sounds,Weapons)

Resources/.shader

Scenes/.unity, .exr

Scripts/.js(AI,Animation,Editor,Fx,Managers,Misc,Modules,Movement,Rain,Weapons)

Shaders/.shader(BackgroundAndCharacters,Fx)

Sounds/.mp3(Ambience),.aif(Computer),.wav(Ambience,Enemy,Player,SFX),

Standard Assets/.cs

Textures/.psd,.png,.tif,.mat
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: