UDN
Search public documentation:
DevelopmentKitGemsCreatingASimpleBlobShadowCH
English Translation
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
创建简单的模糊阴影
最后一次测试是在2011年3月份的UDK版本上进行的。
可以与 PC 兼容
概述
贴花材质布局
- Constant Clamp - 使用它可以确保将所有前面计算的输出值范围都控制在 0.f 到 1.f 范围之间。模块在超出这个范围后仍然可以正常工作,但是在这个实例中不可取。
- Add - 使用它可以将不透明纹理蒙板添加到插值的阴影颜色中。添加一个‘倒置’的阴影蒙板,将会向那些不属于阴影的区域添加 1.f。这样,在限定这些值的时候,它们将会变为 1.f,而且在渲染贴花的时候可见。
- 'Opacity Texture' - 它可以定义阴影蒙板。不一定要使用圆环形的阴影,因此您可以创建其他静态阴影形状。
- Linear Interpolation - 它可以在 (1, 1, 1, 1) 和 'ShadowColor' 之间进行线性插值。通过使用 'ShadowColor' 的 Alpha 输出,您可以控制阴影的亮度和暗度。
- Constant [1] - 它是其中一个线性插入函数参数。它可以定义阴影的最大亮度,在这种情况下为 1。
- 'Shadow Color' - 它可以定义阴影的颜色。不一定要使用黑色。
相关主题
测试贴花材质
- 在内容浏览器中选择您的贴花材质
- 在您想要放置贴花的世界视图中右击,然后会出现一个关联菜单
- 左击任何一个 "添加可移动贴花: *" 或 "添加贴花: *"
相关主题
创建并修改贴图材质实例
相关主题
向 actor 添加简单的模糊阴影
附加物
在这个示例中,会使用虚幻编辑器提供的附加物工具将一个简单的模糊阴影附加到插入的 actor。 添加您想要附加 可移动贴花 Actor 的 actor。在这种情况下,我已经添加了一个球体 interp actor。 打开这个附加物窗口。默认情况下,现在将它放置在这里,而不是像以前一样附加给 内容浏览器。 在视窗中选择您希望附加的 actor,在附加物窗口中右击并点击“添加所选的 Actor”。 点击并按住 InterpActor_0(或者您想要附加贴花的 actor)右侧的某个黑色框,然后拖拽并释放 DecalActorMovable_1(或可移动贴花 actor)左侧的某个黑色框。现在附加这个可移动贴花 actor,然后与球体网格物体一起移动。相关主题
Kismet
相关主题
Unrealscript
class DecalActorSpawnable extends DecalActorMovable; defaultproperties { // bStatic 和 bNoDelete 可以阻止在运行时生成 actor。 bStatic=false bNoDelete=false }
class SimpleBlobShadowPawn extends UTPawn placeable; // 生成的简单模糊阴影。 var PrivateWrite DecalActorSpawnable SimpleBlobShadowDecal; // 引用我们将要生成的原型简单模糊阴影 actor。 var(Shadow) const DecalActorSpawnable SimpleBlobShadowDecalArchetype; simulated function PostBeginPlay() { local MaterialInstanceConstant DecalMaterialInstanceConstant; Super.PostBeginPlay(); // 专用服务器不需要生成简单的模糊阴影 if (WorldInfo.NetMode == NM_DedicatedServer) { return; } // 没有模糊阴影原型 // 原型不是正确的类类型 if (SimpleBlobShadowDecalArchetype == None) { return; } // 生成简单的模糊阴影 actor SimpleBlobShadowDecal = Spawn(SimpleBlobShadowDecalArchetype.Class, Self,, Location, Rot(49152, 0, 0), SimpleBlobShadowDecalArchetype); if (SimpleBlobShadowDecal != None) { if (SimpleBlobShadowDecal.Decal != None && SimpleBlobShadowDecal.Decal.GetDecalMaterial() != None) { // 创建一个新材质实例,这样我们可以动态更换参数 DecalMaterialInstanceConstant = new class'MaterialInstanceConstant'; if (DecalMaterialInstanceConstant != None) { DecalMaterialInstanceConstant.SetParent(SimpleBlobShadowDecal.Decal.GetDecalMaterial()); SimpleBlobShadowDecal.Decal.SetDecalMaterial(DecalMaterialInstanceConstant); } } // 将简单的模糊阴影附加给我自己 Attach(SimpleBlobShadowDecal); } } defaultproperties { }
- 在第一次生成 Actor(UTPawn 继承于该 Actor)时执行 PostBeginPlay。
- 如果该 actor 在专用服务器上,那么中止。专用服务器不需要生成模糊阴影。
- 如果没有设置阴影原型,那么中止。
- 生成原型的实例,朝向下面。将这个实例赋给一个变量,这样我们就可以追踪它了。
- 检查贴花组件是否具有贴花材质。
- 如果有,那么创建一个新的材质实例,然后将其父代赋给当前贴花材质。它会允许我们更改属性,没有任何影响。
- 将生成的原型附加给我自己 (SimpleBlobShadowPawn)