Scaleform GFx之UDK教程

class GFxTestStart extends GFxMoviePlayer;
 
var GFxClikWidget button;
var GFxObject title;
 
function bool Start(optional bool startPaused = false)
{
super.Start();
Advance(0);
 
title = GetVariableObject("_root.title");
title.SetText("WELCOME GFxGame!");
 
return true;
}
 
event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget)
{
`log("------- WidgetName:" @ WidgetName );
`log("------- WidgetPath:" @ WidgetPath );
 
switch(WidgetName)
{
case('startBtn'):
button = GFxClikWidget(Widget);
button.AddEventListener('CLIK_press', OnStartButtonPress);
break;
case('exitBtn'):
button = GFxClikWidget(Widget);
button.AddEventListener('CLIK_press', OnExitButtonPress);
break;
default:
return super.WidgetInitialized(WidgetName, WidgetPath, Widget);
}
 
return false;
}
 
function OnStartButtonPress(GFxClikWidget.EventData ev)
{
ConsoleComman("open Test_UI_1");
}
 
function OnExitButtonPress(GFxClikWidget.EventData ev)
{
ConsoleComman("exit");
}
 
final function ConsoleComman(String Cmd)
{
local PlayerController PC;
PC = GetPC();
if( PC != None )
{
PC.ConsoleCommand(Cmd);
}
}
 
DefaultProperties
{
WidgetBindings.Add( (WidgetName="startBtn", WidgetClass=class'GFxClikWidget') );
WidgetBindings.Add( (WidgetName="exitBtn", WidgetClass=class'GFxClikWidget') );
}

一、搭建环境

1)安装Flash CS6

2)安装插件 Binaries\GFx\CLIK Tools\Scaleform Extensions.mxp

完成之后如图所示:


 

3)配置Scaleform Launcher,加入Binaries\GFx目录下文件GFxMediaPlayerD3d9.exe和GFxMediaPlayerOpenGL.exe

完成之后如图所示:

 

注意:可以在%SWF PATH%后面加 -res 480:800 从而修改分辨率

 

4)配置FlashActionScript2.0路径,最终如图所示,顺序很重要

 

5)配置FlashActionScript3.0路径,如图所示

 

6)开发AS代码可以使用自带的Flash编辑器,也可以使用Flash Builder

二、简易UI教程

1)在UDKGame\Flash新建文件夹,存放我们即将制作的UI文件

2)目录结构解析,demo1.flaflash制作的文件,demo1目录存放fla的资源图片等,demo1.swf是导出的给UDK使用的文件。如图所示

 

3)打开fla,如图所示

 

这里不多讲,主要是flash制作,相关问题请查阅注意事项。

4)测试并导出,请不要使用Flash Player测试,请使用下图测试。如果一开始保存了fla文件,则测试时会自动导出swf格式文件

 

5)编写UnrealScript代码,基本思路如下:

视频播放器开启视频 - Start()

视频播放器已经初始化 - Advance()

为所有启用enableInitCallback属性的元素调用WidgetInitialized函数

保存引用到所需控件 任何在页面中我们所要访问的对象必须有一个保存过的引用

为在按钮上的点击事件应用代理 使用了WidgetBindings(控件绑定),以便传递给 按钮的WidgetInitialized的控件是GFxCLIKWidget类型的子类型,这种类型的控件可以 添加事件监听器,为点击按钮时调用。

当点击按钮时调用代理函数

 


6)UDK中制作简单的场景:一个小房间,一个出生点,不需要灯光

7)Kismet制作,大致如下:

 

主要是Open GFx Movie设置,如下图:

 

8)测试并运行

三、其他用途

1HUD制作

UI制作差不多,请记住分辨率的问题,在flash制作的位置和游戏中位置适配的问题。

HUD主要还是通过代码的PostRender()执行,这部分有待完善,大致如图所示:

class WOTHUD extends HUD;
 
var Texture2D    CursorTexture;
var const color GoldColor;
 
event PostRender()
{        
DrawHUD();
}
 
function DrawHUD()
{        
Canvas.DrawColor = GoldColor;        
Canvas.SetPos( 10, 10 );        
Canvas.SetPos(Canvas.SizeX/2.f-30.f,Canvas.SizeY/2.f-30.f);   
Canvas.DrawTile(CursorTexture, 60 , 60, 305, 260, 60,60);
}
 
DefaultProperties
{
CursorTexture=Texture2D'UI_HUD.HUD.UTCrossHairs'        
GoldColor=(R=255,G=183,B=11,A=255)        
}


 

2)应用到材质,效果如下图:

 

步骤如下:

* 新建TextureRenderTarget2D文件,并修改尺寸大小

* 新建材质,如图所示:

 

 

* open gfx movie设置

 

将几何体应用材质即可显示效果

四、注意事项

1)中文显示方块问题,需要字体嵌入。具体步骤:

字体 -> 字体嵌入,设置一款字体,最好重命名名称,方便查找

 

选择需要输入文本的控件,在字符中选择嵌入的字体,如图所示

 

2)如果在按钮上的问题可以聚焦,将下图的按钮取消选择即可

 

3)导入图片规则

*必须是png格式、允许平滑、无损(PNG/GIF

*ActionScript导出,都打钩,标示符把文件名后面的png删除,该文件名是UDK导入后的资源名字

 

4)实例名称

必须先转换为元件才能输入实例名称,该名称必须是唯一的,在代码中使用,如图所示

 

5)enableInitCallback(启用Init回调),必须在属性中把勾打上,这样才能在代码中GFxMoviePlayer类的WidgetInitialized方法中回调

 

6)运行UDK_HUD中的fla文件,报告其他文件出错等,这是因为其他文件默认没有swf格式,请打开其他文件运行一遍即可

你可能感兴趣的:(UnrealEngine)