UDN
Search public documentation:
ScaleformContentGuideJP
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
Scaleform のコンテンツガイド
概要
「Unreal Engine 3」におけ「Scaleform GFx」インテグレーション (統合) によって、Adobe Flash Professional で作成されたインターフェイスとメニューを HUD (ヘッドアップ ディスプレイ) として使用できるようになります。このドキュメントは、「Scaleform GFx」システムを使用するアーティストとレベルデザイナー向けの、コンテンツとデザインを中心としたガイドです。「Scaleform」と「Flash」を使用して UI を作成する方法についてだけではなく、「Unreal Engine 3」のレベル内で UI を使用する方法についても解説しています。
CLIK コンポーネントを使用する
新たな CLIK オブジェクトをライブラリに追加する
新しい CLIK オブジェクトをライブラリに追加するには、2 つの方法があります。1 つは、プレビルドされたファイルからオブジェクトをコピーするというやり方です。もう 1 つは、GFx クラスをムービークリップに割り当てるものです。メソッドのコピーアンドペースト
- 「Adobe Flash Professional CS4」内で、CLIK_Components.fla を開きます。これは、\UnrealEngine3\Development\Flash\CLIK\components の中にあります。
- ライブラリの中にあるオブジェクトから 1 つ選んで、ファイルの中にペーストします。
- [Component Inspector] (コンポーネント インスペクター) (Shift + F7) を開いて、ステージに導入した CLIK オブジェクトに関係するプロパティと値をビューします。
CLIK クラスを既存のムービークリップに割り当てる
あらゆる CLIK クラスをムービークリップに割り当てることができます。これが役立つのは、カスタムの機能を追加する場合やステート変化なしにシンプルなボタンを必要とする場合です。- Library 内のムービークリップを右クリックし、[Properties] (プロパティ) を選択します。
- チェックボックスによって、Export for ActionScript (ActionScript のエクスポート) を有効にします。
- [class] 入力欄に、使用するクラスを入力します。( 例 : gfx.controls.Button)
- [OK] をクリックします。
- オブジェクトをもう一度右クリックしますが、今度は [Component Definition...] (コンポーネント定義…) を開きます。
- [class] 入力欄に、[Properties] (プロパティ) で割り当てたクラスと同じものを入力します。この例では、gfx.controls.Button です。
- [OK] をクリックします。
CLIK オブジェクトの複製 (チェックリスト)
ライブラリ内にある複製されたコンポーネントは、クラスおよびコンポーネントクラスの情報を保持できません。また、リンケージ識別子に関して、自動命名の問題が生じます。 以下のクイックチェックリストは、複製後または最初の設定後に CLIK オブジェクトを確実に正しく設定するためのものです。- CLIK クラスをプロパティで定義する必要があります。Export for Action Script (Action Script のエクスポート) にチェックを入れる必要があります。「Adobe Flash」内で複製を行った場合、これらのプロパティは、複製元のライブラリ オブジェクトからコピーされません。
- コンポーネントの定義も設定する必要があります。複製中は、この情報が複製元からコピーされません。
- 識別子が、必ずオブジェクト名と同じ名前になるようにしてください。
コンテンツのベストプラクティス
シーンのアーキテクチャ
「Scaleform」とともに Kismet を使用する
Kismet でムービーを開く
Kismet からムービーを開くには、単に、新たな Open GFx Movie アクションを追加して ( [New Action ] > [GFx UI] > [Open GFx Movie] )、SWF を Movie プロパティにアサインするとともに、ムービーを所有していなければならないムービー プレイヤー クラスを Movie Player Class プロパティにアサインします。次のようになります。 ムービーを開くためのプレイヤーは、 Player Owner 変数リンクにリンクされなければなりません。 プロパティ- CaptureInput
- これにチェックが入ると_CaptureKeys_ 配列にリストされているキーのための入力を、ムービーがデフォルトでキャプチャーします。
- CaptureKeys
- CaptureInput がチェックされている場合は、この配列にリストされているキーが「GFx」ムービーに送られます。
- DisplayWithHUDOff
- HUD が表示されていない場合であっても、このムービーが表示されます。(たいていの非 HUDuser インターフェイス ムービーに役立ちます。)
- Movie
- 再生したいムービー (アセットとしてエンジンにインポートされた SWF ファイル) への参照です。
- MoviePlayerClass
- ( 高度 ) このムービーのための機能をカプセル化した UnrealScript クラスで使用したいものがある場合は、このリストから選択します。それ以外は、 GFxMoviePlayer がデフォルトのオプションとなります。
- RenderTexture
- ( 高度 ) このムービーをフルスクリーンにレンダリングせず、テクスチャ リソースにレンダリングすることによって、ワールドで使用できるようにするには、ここで指定します。何も指定されない場合は、ムービーはスクリーンにレンダリングされます。
- StartPaused
- これをチェックすると、ムービーはデフォルトで再生されなくなり、スクリプトによって手動で再生されます。
- TakeFocus
- これをチェックすると、「GFx」ムービーが開かれたときに、スクリーンのコントロール フォーカスを取ります。
Kismet でムービーを閉じる
Kismet を通じてムービーを閉じるには、 Close GFx Movie アクションを使用することができます。ただし、まず、閉じるべきムービーへの参照を Object 変数に保存しておく必要があります。この参照は、新たなムービーを開く際に、 Open GFx Movie アクションの Movie Player 変数リンクから取得されます。 プロパティ- Unload
- これにチェックが入ると、ムービーが閉じられるとメモリからアンロードされます。
Kismet で ActionScript の関数を呼び出す
Kismet では、SWF ムービーの上にある ActionScript のメソッドを呼び出すことが可能です。たとえば、次のような ActionScript 関数が開かれたムービーの中にあるとします。function myActionScriptMethod(MyString:String, MyBool:Boolean) { // Do something interesting! }
- Type
- スロットに、渡したいパラメータの型を指定します。これに関係する型は、AS_String (S)、 AS_Boolean (B)、AS_Number (N) です。
- S
- 渡したい文字列データです。
- B
- 渡したい bool 値データです。
- N
- 渡したい数値データです。
Kismet で「GFx」からの ActionScript コールを受け取る
ActionScript は、FSCommand を使って Kismet でイベントをトリガーすることができます。これは、Kismet の他のイベントと同じように動作します。例 :fscommand("myFSCommand");
値の取得と設定
Kismet を通じて開かれた「Scaleform」ムービー内のオブジェクトに所属する変数の値は、 GFx GetVariable および GFx SetVariable アクションを使用して、アクセスおよびセットすることが可能です。 プロパティ- Variable
- 値を取得あるいはセットする変数の名前です。
「Scaleform」のフォント
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ?????‘’“”??????!¢£¨ca≪-R°23´1o≫?AAAAAAACEEEEIIIINOOOOOOUUUUsaaaaaaaceeeeiiiinoooooouuuuyY\§?… A;a;C'c'C(c(D(d(E;e;E(e(L'l'??N'n'N(n(O"o"R(r(S's'??T(t(U*u*U"u"Z'z'Z.z.?? ?????????????????????????????????????????????????????????????????? !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ?????‘’“”??????!¢£¨ca≪-R°23´1o≫?AAAAAAACEEEEIIIINOOOOOOUUUUsaaaaaaaceeeeiiiinoooooouuuuyY\§?…A;a;C'c'C(c(D(d(E;e;E(e(L'l'??N'n'N(n(O"o"R(r(S's'??T(t(U*u*U"u"Z'z'Z.z.?????????????????????????????????????????????????????????????????????A-a-A(a(??E-e-E(e(E.e.G(g(G,g,I-i-I;i;I.?K,k,L,l,L(l(N,n,O-o-O(o(??R'r'R,r,S's'S,s,T,t,U-u-U*u*U;u; S,s,T,t, ° a
- UFonts: 「Unreal」のビットマップ フォントです。- 常に高速でレンダリングされます! 距離フィールドをサポートしています。(モノクロのみ。スケールアップには非常に適しますが、シャープコーナーを保存することができません)。RGBA ビットマップ (スケーリングがそれほどよくありません。フルカラーです)。
- 組み込みベクター フォント (fonts_en.swf、fonts_*.swf) - 高速にレンダリングされる場合があります。動的なフォント キャッシュによって、パフォーマンス上の問題が生じる可能性があります。効率的にアップデートされません。RGBA のサポートがありません。
- システム フォント - 組み込みのフォントと同じですが、OS からルックアップされます。完全なローカリゼーションに対応する必要がある PC ゲームに最適です。
Localization/GFxUI.int
ファイルによって、フォントのシンボル名が、使用される実際のフォントにマッピングされます。その際、使用すると定められたフォント パスに応じて、次のルールのうち 1 つが適用されます。
- UFonts - UFont リソースへのパスです。例 : GearFonts.MyFont
- ベクターフォント - fonts_en.swf からエクスポートされたベクター フォントの名前です。例 : Arial、Bold
- システムフォント - TODO
[Fonts] NormalFont=Bitstream Vera Sans BoldFont=Bitstream Vera Sans,Bold SmallFont=Bitstream Vera Sans TitleFont=Bitstream Vera Sans,Bold
一般的なフォントのエラー
> Missing font "$NormalFont" in "_level0.PauseMenuSP.PartyPanelLoaderPanel.PartyPanel.PPListItem1.PlayerIcon.textField". Search log: > Searching for font: "$NormalFont" > Movie resource: "$NormalFont" not found. > Imports : "$NormalFont" not found. > : "../UI_Common/gfxfontlib.swf", "..\UI_Common\UI_Common_Assets.swf". > Exported : "$NormalFont" not found. > Searching GFxFontProvider: "$NormalFont" not found. > Font not found. > Error: Resource for font id = 12 is not found in text field id = 52, def text = 'OPTION' > Error: Resource for font id = 12 is not found in text field id = 52, def text = 'OPTION' > Error: Resource for font id = 12 is not found in text field id = 59, def text = 'textField'
- UI_Common/fonts_en.fla - 言語のためのフォントとグリフです。
- UI_Common/gfxfontlib.fla - フォント シンボル ($NormalFont, $LargeFont など) を定義するライブラリ SWF です。
- UI_Common/UI_Common_Assets.fla - 基本ウィジェットの、共有化された共通アセット ライブラリです。
- UI_FrontEnd/UI_CommonFrontEndAssets.fla - 共有化されたフォントエンドアセットです。
$NormalFont
シンボルや欠けている (missing) とエラー表示される他のシンボルなどが含まれています。
シーンのテストとデバッグ
デバッグのために「GFx」のレンダリングを有効または無効にする
古い UI システムから新しい「GFx」UI システムへの移行期間では、古い UI を使用する人たちがいるなか、新しい UI が作成されているのであれば、「GFx」UI のレンダリングを無効にした方がよいでしょう。このために、デバッグ用の簡単なブーリアンを追加しました。これによって、「GFx」UI のレンダリングと入力の受付が無効になります。変更するには、ゲームの Engine.ini ファイルで、次のブール値を修整します。[Engine.GameViewportClient] bDebugNoGFxUI=false
テスト用エンジン実行関数
デバッグ用関数がいくつか追加されたので、SWF ムービーをエンジンで見るとき、アーティストが楽になります。異なる指定をされない限り、これらの関数は、現在「GFx」によってレンダリングされている最上位のムービーに作用します。- GFxGotoAndPlay Path FrameLabel - 指定されたムービークリップから指定されたフレームラベルまで飛んで、再生します。
- GFxGotoAndStop Path FrameLabel - 指定されたムービークリップから指定されたフレームラベルまで飛んで、停止します。
- GFxInvoke Path FunctionName - 指定されたパス上で FunctionName (関数名) を使って ActionScript 関数を呼び出します。
- GFxRestartMovie - レンダリングされている最上位のムービーの再生を再開します。