UDK个人学习笔记Word格式.docx
- 文档编号:22570537
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:35
- 大小:3.26MB
UDK个人学习笔记Word格式.docx
《UDK个人学习笔记Word格式.docx》由会员分享,可在线阅读,更多相关《UDK个人学习笔记Word格式.docx(35页珍藏版)》请在冰豆网上搜索。
Lifetime->
Min/Max,秒
6.粒子大小:
InitialSize->
Size->
StartSize->
Max/Min
7.初始速率:
InitialVelocity->
Velocity->
StartVelocity->
8.子图像曲线:
SubImageIndex->
ConstantCurve->
Points->
InVal/OutVal
9.生命大小曲线:
SizeByLife->
LifeMultiplier->
Points
1.AddInterpActor,通过动画可达到移动,人物碰撞后也能移动物体
2.AddRigidBody,作为刚体添加,可以对外部作用力做出响应,不接受人物碰撞
1.NewPhysicalMaterial,物理材质,Density(密度),Friction(摩擦),可应用于StaticMesh
中的PhysMaterial,游戏中对物体点击右键可以移动物体
1.在ContentBrowser中的ActorClass中找到Fog->
HeightFog,添加到场景中即可。
2.属性设置,HeightFog->
Component,Density(密度)
武器弹药
1.在Actor类别中找到Pickups->
Weapon->
UTWeaponPickupFactory,添加即可
2.属性设置,第一项中WeaponPickupClass中选择武器类型
3.弹药,Pickups->
Ammo,选择响应的弹药
BSP和CSG
1.BSP是BinarySpacePartition的缩写,即二元空间分割,这种计算机图形技术会把复杂的多边形分给为很小、更简单的多边形,使其快速渲染。
BSP是根据游戏引擎对每个多边形渲染时的最佳算法设计的。
BSP画刷常用类型有:
红色构建画刷、添加型画刷、挖空型画刷。
2.CSG代表ConstructiveSolidGeometry,即构造实体几何体。
在虚幻中,它是指由BSP画刷制作的几何体。
当物体复杂时,应该用转换为静态网格物体。
右键点击BSP画刷的某一顶点,选择支点(Pivot)->
保存支点,再次旋转物体时便以该支点为中心点
在虚幻中,人物站立时的高度大约96个单位,下蹲时大约64个单位
打开staticmesh,进入编辑器中。
先选择“碰撞”菜单,建立一个碰撞模型,即一个多边形网格物体用以阻挡玩家通过。
DOP意为DiscreteOrientedPolytope(离散定向多面体),例如,一个6-DOP的对象是指由6个平面创建的边界框。
所有基于DOP的对象都是简化的。
还可以自行选择“自动凸面碰撞”进行自定义设置。
1.Diffuse(漫反射):
该通道控制对象的颜色,可以为单色,也可为贴图
2.Emissive(自发光):
允许材质的发光效果
3.Specular(高光):
控制光源在表面反射后产生的“热点范围”
4.SpecularPower(高光次幂):
Specular控制强度与颜色,而它控制大小及衰减
5.Opacity(不透明度):
一个0-1之间的值,控制材质的透明度。
此通道要开启,条件为:
材质节点LightingModel属性设置为MLM_Unlit,并且BlendMode(混合模式)设置为BLEND_Masked、BLEND_Translucent、BLEND_Additive或BLEND_Modulate
6.OpacityMask(不透明蒙板):
是Opacity通道的简化版本,用于默认的MLM_Phong光照模型,只能开和关,没有任何透明度的值。
小于0.5是透明的。
7.Distortion(扭曲):
创建模拟折射的效果,通过此材质的光源会发生弯曲。
只在使用MLM_Unlit光照模型时才有效。
此通道接受法线贴图,使用其向量信息作为一个输入值来决定表面如何进行折射模拟,即如何移动像素。
8.TransmissionMask/TransmissionColor(透射蒙板/透射颜色):
两通道协同产生一种通常称为子表面散射的近似效果,本质上模拟了光源穿过表面时发生的散射效果。
TransmissionColor控制了光源穿过表面时所呈现的颜色,TransmissionMask通道则控制了光源透射的强度与位置,使你能够将透射光源放置在对象表面可见的位置。
9.Normal(法线):
法线贴图本质上是一种描述在高度变化时对象表面上各个部分的角度变化的纹理贴图。
法线贴图的每个像素对应于一个向量。
皮肤上的皱纹或石头上的裂缝就是很好的例子。
从技术上讲,法线贴图以逐个像素为基础校正对象的表面法线(或对象表面的朝向),精确控制微小的细节。
Normal通道中输入的颜色数据用来确定应用材质的对象表面的表面法线,RGB时用来计算向量的,每个像素的3个值用于组成向量。
通过3个值的分别使用,法线贴图不仅可以控制对象表面上点的相对高度,还可以控制对象表面朝向的角度。
10.CustomLighting(自定义光照):
创建出自己的光照函数
1.先新建一个材质进入材质编辑器,在右边搜索VectorParameter,并拖动到中间来创建一个表达式用于改变材质颜色,如下图所示。
然后将表达式图标连接到Diffuse上,使其产生效果。
连接了节点后,如果要断开,可以先按住ALT键,然后对准节点点击鼠标左键;
要移动某图标位置,可以先点击图标,再按住Ctrl键,再拖动鼠标左键。
观察VectorParameter图标,注意到左侧有5个颜色各异的标签,红绿蓝标签用于将红绿蓝信息传递给材质,白色用于传递Alpha信息,而黑色标签传递R、G、B值的组合颜色。
请牢记,输出总位于图标左侧,输入位于右侧。
要改变颜色,只需要改变DefaultValue的值即可,如下图所示。
2.常用表达式:
(1)Abs:
输出绝对值
(2)Add:
相加数据作为输出值
(3)AppendVector:
读取两个分量作为输入值,将其组合为分量数多于原有分量的向量。
例如,将一个二维向量与一个一维向量组合为三维向量。
(4)BumpOffset:
读取分量Height与UVs,来创建虚拟位移贴图效果
(5)CameraVector:
在游戏运行时访问相机的指向向量,在要求材质于不同视角下呈现不同效果时非常有用。
(6)CameraWorldPosition:
提供相机在3D空间中的当前位置
(7)Ceil:
一个简单的取整表达式,如3.1282取为4,相反的是Floor(下限取整)
(8)Clamp:
读取Input(输入值)、Min、Max,使Input总处于Min与Max范围内
(9)ComponentMask:
读取一个任意大小的向量值,从中选出分量
(10)常量表达式,静态值,没有输入端
Constant2Vector(二维常量向量):
R、G
Constant3Vector(三维常量向量):
R、G、B
Constant4Vector(四维常量向量):
R、G、B、A
ConstantClamp(常量区间值限定):
与Clamp效果相同,但使用常量值
(11)Cosine:
计算余弦值,产生余弦波形
(12)CrossProduct:
读取两个输入值,必须是包含相同分量数的向量,或者其中一个是一维向量常量,而另一个是三维向量。
第二种情形下,一维向量常量被看做是每个分量值相等的三维向量。
表达式输出为向量的叉乘结果。
(13)DepthBiasBlend:
帮助去除当粒子与几何体相交时产生的粗糙的边缘,比较慢
(14)DepthBiasedAlpha:
用来消除尖锐边缘的表达式,可以理解为给定粒子与任何可能已经存在的对象之间进行混合。
读取两个输入值:
Alpha值和Bias值。
Bias值将目的地缓冲中的内容和材质进行实际混合。
Bias值读取黑、白值,值0(黑)表示完全显示目的地缓冲中的内容,值1(白)表示完全显示材质的颜色。
(15)DepthBiasedBlend:
是DepthBiasedAlpha的复杂化版本,它允许输入颜色值,此颜色值将通过使用输入至Bias参数中的值与目的地缓冲中的内容进行混合。
(16)Desaturation:
将抽出材质中的颜色量,或者说降低其饱和度,整体效果会使材质中存在的颜色趋向于灰色。
两个输入值:
具有任意分量数的向量;
一个单值常量。
第一个输入值根据第二个输入值对颜色进行饱和度降低。
(17)DestColor:
输出当前屏幕位置目标处的颜色,仅在材质的BlendMode属性设置为BLEND_Translucent、BLEND_Additive或BLEND_Modulate时用。
(18)DestDepth:
输出所谓的“Z轴深度”,表示像素与表面材质的距离。
(19)Divide:
使用两个输入值,将第一个输入值除以第二个输入值
(20)DotProduct:
与CrossProudct相似,读取两个输入值,必须是包含相同分量数的向量,或者其中一个是一维向量常量,另一个是三维向量常量。
输入点乘。
(21)FlipBookSample:
读取FlipBook纹理贴图作为其唯一参数。
FlipBook纹理贴图将一系列图像作为单张纹理贴图进行处理,从而使你能够在材质中抽取各种不同的图像序列或动画进行采样。
输入值为RGB与Alpha值。
(22)Floor:
与Ceil相反,向下取整,可视为截断操作
(23)FontSample:
对字体进行采样并将其用于表达式中
(24)FontSampleParameter:
参见参数表达式
(25)Frac:
只读取一个输入值,输出小数部分
(26)Fresnel:
读取像素的法线向量,在向量指向相机时输出0,在法线方向与相机视角垂直时输出1.
(27)If:
做出实时条件判断。
(28)镜头眩光表达式:
用于镜头眩光系统
LensFlareIntensity:
调整被渲染的镜头眩光的ConeStrength属性
LensFlareOcclusion:
能输出关卡中每个LensFlare对象的被遮挡部分的百分比
LensFlareRadialDistance:
与点乘原理很像,它在相机直接面向镜头眩光时会增加输出值。
随着镜头眩光逐渐接近屏幕边缘,输出值会逐渐减小。
LensFlareRayDistance:
设置LensFlare对象中的RayDistance的值
LensFlareSourceDistance:
调整渲染的对象相对于镜头眩光来源的距离
(29)LightVector:
能访问表示当前用于光照计算的光源方向的向量
(30)LinearInterpolate:
读取A、B、Alpha,A和B的输入值基于Alpha的值或蒙板进行混合,混合的结果作为输出。
Alpha为0,输出A;
为1,输出B。
(31)MeshEmitterVertexColor:
仅用于网格物体发射器粒子系统,发射出静态网格物体实例。
以此方式发射的每个网格物体都有一个颜色属性,而此表达式输出的颜色作为整个网格物体的顶点颜色,从而避免每一帧都访问网格物体的顶点颜色。
(32)MeshSubUV:
也仅用于网格物体反射器粒子系统。
读取多帧纹理贴图作为其唯一参数,该纹理贴图用户发射器所发射的网格物体。
(33)Multiply:
读取两个输入值,将其相乘后输出结果
(34)Normalize:
读取一个向量输入值,并将其长度设为1,或者说是将其单位化。
(35)OneMinus:
读取任意大小的向量作为输入值,使用1减去此输入值并输出结果。
例如,输入0.15得到0.85,“反相”。
(36)Panner:
用于移动纹理贴图的UV坐标,它读取一个二维向量常量以重写默认的纹理贴图坐标,并将表示Time表达式的标量值作为输入值。
它有两个参数(SpeedX,SpeedY),均为浮点数,用于确定在X轴、Y轴方向上的移动速度。
(37)Parameter:
参见参数表达式。
(38)ParticleSubUV:
用于粒子的多帧纹理贴图进行采样,作为其唯一的参数。
然后,纹理贴图中的不同帧可以在Cascade粒子编辑器中产生动画效果。
例如,你有一张多帧纹理贴图,它是许多不同的火光摇曳图像,那么就可以在每个粒子上将这些图像帧进行混合,产生出粒子动画的假象。
(39)PixelDepth:
与DestDepth类似,但是并不输出位于给定像素之后的对象的Z轴深度,它输出的是当前像素本身的Z轴深度。
(40)Power:
读取两个输入值Base和Exp,将Exp作为Base值的指数进行幂运算
(41)ReflectionVector:
能访问用来表示CameraVector的方向的向量,跨越应用材质的对象表面的法线反射该向量。
在基于表面相对于相机的角度对材质进行调整时,它非常有用。
(42)Rotator:
用于旋转纹理贴图UV坐标。
它读取一个二维向量常量来重写默认的纹理贴图坐标,并使用表示Time表达式的标量值作为输入值。
它有3个参数,均为浮点数。
CenterX和CenterY确定旋转的中心,而Speed确定每秒进行循环旋转的速度。
(43)ScalarParameter:
(44)SceneDepth:
与DestDepth相似,但它不计算单个像素的深度,而是在整个关卡场景中对深度采样。
(45)SceneTexture:
使你能够对表示当前渲染帧的纹理贴图进行采样,并且允许操作当前视图,如同它是纹理贴图样本一样。
(46)ScreenPosition:
用于输出当前指定像素在屏幕中的位置。
像素处于屏幕空间中的位置,范围从[-1,1](左下角)到[1,1](屏幕右上角)。
有个参数ScreenAlign,用来将坐标范围改为从[0,0]到[1,1],这是非常有用的参数,可以作为一组纹理贴图坐标,用以将纹理贴图与屏幕对齐。
为此,你需要将屏幕位置输入到一个分量蒙板,仅输出R值和G值并传递给指定纹理贴图的UVs。
(47)Sine:
它对输入进来的角度执行正弦运算而不是余弦运算。
多数情况下,此表达式会连接至一个Timer表达式,从而在游戏运行中产生动画效果。
如此设置时,Sine表达式的唯一参数Period将决定形成一个完整波形的周期时间(秒)。
(48)SquareRot:
读取一个输入值并输入平方根
(49)StaticComponentMaskParameter:
(50)StaticSwitchParameter:
(51)Subtract:
读取两个输入值,使用第一个输入值减去第二个输入值并输出结果
(52)TextureCoordinate:
拥有两个参数,CoordinateIndex属性指定表达式对哪个UV通道起作用,Tiling属性是平铺纹理贴图的重复次数。
该表达式输出值为一个二维向量常量。
(53)TextureSample:
读取一张纹理贴图作为其唯一参数,并将存储在纹理贴图中的数据提取出来作为输出值。
这些输出数据为RGB值、R值、G值、B值和Alpha值。
它也可以读取一个用来确定纹理贴图坐标的二维向量作为输入值。
(54)TextureSampleParameter2D:
(55)TextureSampleParameterCube:
(56)TextureSampleParameterMovie:
(57)Time:
用来为其他由时间决定行为的表达式提供时间段,如Panner、Rotator、Sine或Cosine表达式,使此类变化能够在游戏运行中持续发生。
bIgnorePause属性使时间保持正常进展,即使游戏暂停也不影响。
(58)Transform:
将任意一个三维向量转换至不同的坐标系统中,例如世界空间、视图空间、本地空间。
读取一个输入值,其值必须为一个三维向量;
然后将输入值从切线空间变换到由TransformType参数指定的空间内。
(59)VectorParameter:
(60)VertexColor:
与MeshEmitterVertexColor相似,但是,此表达式主要用于平面实例发射器而不是网格物体发射器。
VertexColor表达式为当前处理的片段输出顶点颜色。
1.FontSampleParameter:
是FontSample表达式的参数化版本,用于在字体中采样并在一个表达式中使用
2.Parameter:
是一个为了通过使用代码创建自己的材质表达式而建立的占位符模版,它本身没有任何作用
3.ScalarParameter:
是Constant表达式的参数化版本,它只容纳一个浮点数
4.StaticComponentMaskParameter:
类似于ComponnetMask,使你可以在必要时去除颜色通道信息。
但是,因为它是一个参数,所以可以作为一个材质实例的一部分而被访问或改变。
然而,由于它的静态性质,不能在游戏中改变。
5.StaticSwitchParameter:
让你在材质实例中的不同表达式网络分支之间自由切换,其基本思想是你可以有不同的表达式网络,能让相同的材质拥有完全不同的输出结果。
6.VectorParameter:
是Constant4Vector的参数化版本
7.TextureSampleParameter2D:
是TextureSample的参数化版本,容纳一张常规纹理贴图
8.TextureSampleParameterCube:
是TextureSample表达式的参数化版本,专门用于容纳一张立方体贴图
9.TextureSampleParameterMovei:
是TextureSample的参数化版本,容纳一段影片
新建材质一
1.先找好两张纹理贴图,其中一张应该有很好的Alpha通道,此处为第二张。
2.在自己的包中,右键点击空白处,新建material即可,然后进入材质编辑器中。
然后将材质表面赋予我们找好的贴图,有两种方法。
第一种,在空白处右击选择Texture->
新建TextureSample即可,然后点击TextureSample图标,点击下方箭头赋予在内容浏览器中已经选择好的贴图;
第二种,直接将贴图拖动到材质编辑器中,或者先按住T键再点击鼠标左键来添加已经选择好的贴图。
最后,连接Diffuse或者Emissive,即可看到效果。
如果有法线贴图,也可以按照类似的方法添加,然后连接到Normal节点。
3.使贴图变亮:
使用Multiply表达式来实现。
右键点击,选择Math->
新建Multiply,或按住M键然后点击左键来添加即可。
现在要调整位置,先按住ALT键,然后点击Diffuse节点来断开已经连接的节点。
先将Multiply的输出端(左端)连接到Diffuse通道,再将Multiply的A点或B点连接到TextureSample,如图所示:
4.我们需要第二个输入端将值传给Multiply(乘)表达式,需要一个容纳单个浮点值的Constant表达式。
右键点击Constants->
新建Constant,并将左端连接到Multiply。
选中Constant图标,设置R值,比如10,这时发现眼前一亮,效果出现了。
材质已经足够明亮了,还有点晃眼,可以通过将一张暗一点的纹理贴图插入到Specular(高光)通道来修正此问题,当然也可以改变常量值来实现,但用纹理贴图能逐个像素控制发光性。
只需要将贴图的Alpha通道(白色)节点连接到Specular即可,但要保证Alpha通道中存储了正确的砖块数据,这样可以看到砖块之间的泥浆不再发光等现象。
5.让材质变得有深度感:
使用BumpOffset表达式来实现,必须要一张具有Alpha通道的法线贴图配合才能看到效果。
右键点击Utility->
新建BumpOffset。
BumpOffset表达式是利用法线贴图的高度信息使纹理贴图的UVs发生偏移的。
将BumpOffset左端连接至上面的TextureSample的UVs,将右端的height参数连接至另一张贴图的Alpha通道作为输入。
此处的Height需要一个一维参数,故选择Alpha而不是RGB。
6.下面实现一个简单的发光效果。
首先需要一张纹理贴图,它在固体处是黑暗的,在缝隙处是发光的。
现在没有,但能从法线贴图的Alpha通道制作。
法线贴图的Alpha通道产生的效果正好相反,缝隙是黑暗的,固体处是亮的。
先添加一个OneMinus表达式,即右击Math->
新建OneMinus即可,并将法线贴图的TextureSample表达式的输出端连接至OneMinus的输入端,将OneMinus的输出端连接至材质的Emissive通道,整个材质都发光了,但是缝隙处的光最明亮。
7.我们需要将注意力转向Emissive通道,为此使用Power表达式。
先右击Math->
新建Power,并将OneMinus的输出端连接至Power表达式的Base端。
然后创建一个Constant表达式,可设为40,并将其输出端连接至Power表达式的Exp输入端。
然后将Power表达式输出端连接到材质的Emissive通道,效果出来了,发光只集中于缝隙处。
8.这时我们会碰到一个新的问题,在预览中旋转材质,会注意到发光的缝隙好像“漂浮”于实际的缝隙之上。
我们需要使用法线贴图的BumpOffset表达式来对其修正,但是我们已经使用了法线贴图来创建凹凸偏移效果。
因此,这里使用一个新的TextureSample表达式来解决问题。
先对法线贴图复制一个副本,Ctrl+C,Ctrl+V即可。
然后将新TextureSample表达式的Alpha输出端连接至OneMinus表达式的输入端,重写现有的连接,这时材质没有发生变化。
再将BumpOffset表达式的输出端连接至新的TextureSample的UVs输入端,将会看到发光的缝隙已经紧贴到偏移后的固体上。
9.现在给这些发光的缝隙
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UDK 个人 学习 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)