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

文件格式大全 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];   //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
发布了71 篇原创文章 · 获赞 8 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/QQ18334373taikongyi/article/details/78057123
今日推荐