19. テキスト、画像、スプライトやバー

画面上のテキスト:

新しいテキスト機能:

- フォント(Diaryや新しいタイプのセーブデータパネルを除く)を再定義したい場合は、 Font.pc の改訂をしないで、WADにFONT_GRAPHICSオブジェクトを入れてください。
FONT_GRAPHICSはNG Center[Tools]タブの[NG Font Editor]機能で編集することができます。
- 以前からTRLEで見ることができるテキスト(インベントリのテキストやLegendスクリプトコマンドなどで書かれたテキスト)をカスタマイズしたければこうします。(詳細は以下を参照してください。)

= 色:CustomizeスクリプトコマンドでCUST_SET_TEXT_COLORコンスタンツを使用します。
= サイズ:TextFormatスクリプトコマンドを使用します。

- TRNGの機能のいくつかには、テキストがあります。もっともその機能はテキスト(そのもの)についてではありませんが。(例えば、スタンバイカメラ効果。)
テキストの色、サイズと位置(その内のいくつか )をカスタマイズするには、TextFormatスクリプトコマンドまたはF66、F75、F76、F81のトリガを使用します。(詳細は以下を参照してください。)
- ララが手にする武器の弾数を(インべントリを開かないで直接)画面上に表示したい場合は、CustomizeスクリプトコマンドでCUST_SHOW_AMMO_COUNTERを使用します。(詳細は以下を参照してください。)
弾数と一緒に弾薬/武器のアイコンを表示する場合は、WADにFONT_GRAPHICSオブジェクトが必要です。
- F223は、画面上にStatisticsメニューを表示します。(あたかも、手動でメニューを開いたかのように。)
- Diaryまたは新しいタイプのセーブデータパネルについては、そちらの項を参照してください。
- TRLEでは(レベル開始時の)画面にテキストを表示する方法はLegendスクリプトコマンドだけでしたが、
TRNGでは(いつでも好きな時に)より多くの方法で表示できます。

TRNGのテキストのためにコンプレックスフォーミングを使用するかしないかは、あなた次第です。
使用しない場合、以下の方法があります。

= F65は、指定した時間だけ、言語ファイルの[Strings]セクションからストリングスを表示します。
= F149は、ESCキーを押すまで、言語ファイルの[Strings]セクションからストリングスを表示し続けます。
= F64は、指定した時間だけ、言語ファイルの[ExtraNG]セクションからストリングスを表示します。(これは、ID 255を超えるストリングスでは機能しません。)
= F360は、常に「永遠に」、言語ファイルの[ExtraNG]セクションからストリングスを表示します。(これは、ID 255を超えるストリングスにも機能します。)
= F148は、ESCキーを押すまで、言語ファイルの[ExtraNG]セクションからストリングスを表示します。
= F201は、(下から上に)垂直に、言語ファイルの[ExtraNG]セクションからストリングスをスクロールします。

使用した場合、以下の方法があります。:

= F207は、コンプレックスフォーミングに従い、言語ファイルの[PSXStrings]セクションからストリングスを表示します。
= F208は、コンプレックスフォーミングに従い、言語ファイルの[PCStrings]セクションからストリングスを表示します。
= F209はF208と同じことを行いますが、ESCキーを押すと、画面からテキストを削除します。
= F203は、コンプレックスフォーミングに従い、言語ファイルの[ExtraNG]セクションからストリングスを表示します。
= F210はF203と同じことを行いますが、ESCキーを押すと、画面からテキストを削除します。
= F206は、コンプレックスフォーミングに従い、(右から左へ)水平に言語ファイルの[ExtraNG]セクションからストリングスをスクロールします。
= F205は、コンプレックスフォーミングに従い、(下から上に)垂直に言語ファイルの[ExtraNG]セクションからストリングスをスクロールします。

「コンプレックスフォーミング」とは構成値がPARAM_PRINT_TEXTコンスタンツを使用したParametersスクリプトコマンドで定義されていることを意味します。
(色についてはCLのコンスタンツを参照してください。位置や大きさについてはFTコンスタンツを参照してください。)
コンスタンツは、IDを持っています。
テキストのトリガは、このIDにリンクされているので、トリガが起動されると、テキストはそのコマンドの構成値を使用して、画面上に表示されます。
しかし、コンプレックスフォーミングを使用していない場合、テキストはデフォルト値(サイズ、色、位置)に応じて表示されます。- TextFormatスクリプトコマンドまたはF66、F75、F76、F81トリガを用いて「非コンプレックスフォーミング」を使わない限り。(詳細は以下を参照してください。)
(とにかく、TRNG内の各テキストはPARAM_PRINT_TEXTテキスト、Diary、新しいタイプのセーブデータパネルを除いて、デフォルト値を持っています。)

特別なトリガ:

= F202は、ちょうど垂直にスクロールしている画面のすべてのテキストを削除します。
= 時には、画面のテキストを「永遠」に設定することもあるでしょう。それらを削除するには、2つの方法があります。

<F67は、上記のトリガのいずれかによって表示されたすべてのテキストを削除します。(スクロールするものは除きます。)
<F204は、指定した[ExtraNG]のストリングスを画面から削除します。

それではテキストの形成について見てみましょう:

- まず第一に、TRNGで使用されるテキストのタイプを定義してみましょう:

= 旧テキスト:ラストレベレーションまたはTRLEで見つけることができるテキスト:Statistics画面や、インベントリ内のテキストなど
= TRNGテキスト:TRNG(まず第一に、非テキスト)の新しい機能のテキスト。(弾薬と機能テキストを除く。):(平行棒で)回転した数、スタンバイカメラ効果のためのテキスト、A52トリガのタイマーなど
= 弾薬テキスト:CUST_SHOW_AMMO_COUNTERコンスタンツを使って、画面上に弾薬量を示すために使用されるテキスト。
= 機能テキスト:テキスト/画像タイプのTRNG機能(Diary、新しいタイプのセーブデータパネル)のテキスト。
= 独立したテキスト:「コンプレックスフォーミング(詳細は上記を参照してください。)の有無にかかわらず」、画面に表示することができます。 - 「独立」とは、このテキストはテキストそのものだけであることを意味します。(例えばスタンバイ効果のテキストはスタンバイ機能にリンクしているので独立していません。)
「A」タイプの独立したテキストは、PARAM_PRINT_TEXTスクリプトのコンスタンツを使用していないFLIPEFFECTによって画面上に書き込まれるテキストです。
「B」タイプの独立したテキストは、PARAM_PRINT_TEXTスクリプトのコンスタンツを使用したFLIPEFFECTによって、画面上に書き込まれるテキストです。

- テキストを形成するためのツールは、次のとおりです。

= graphics\wadsフォルダにある Font.pc :ゲームの基本的なフォント(機能テキストを除く)はここで定義されています。
= FONT_GRAPHICSオブジェクト:WADの中にあるオブジェクト。[NG Font Editor]を使用して、レベル/タイトルのフォント(機能テキストを除く)をカスタマイズします。
= CUST_SET_TEXT_COLORコンスタンツ:旧テキストの色をカスタマイズします。(テキストのタイプを定義するためにはTTコンスタンツを参照してください。) - 注:

a、レベルのテキストのカスタマイズには、Customizeコマンドを、通常[Level]ブロックに配置する必要があります。
b、レベルのテキストのカスタマイズ - タイトルのテキストまたはゲーム全体のカスタマイズを有効にしたい場合 - Customizeコマンドは、[Title]ブロックに配置する必要があります。

= TextFormatスクリプトコマンド:

a、ゲームのすべての旧テキスト(Legendスクリプトコマンドのテキストを除く)のサイズをカスタマイズするには、SizeCharacterMenuフィールドだけを使用したコマンドを、[Title]ブロックに配置します。(サイズについてはSCコンスタンツを参照してください。)
b、TRNGテキストと「A」タイプの独立したレベルのテキストの色、位置とサイズをカスタマイズするには、SizeCharacterMenuフィールド以外の任意のフィールドを使用したコマンドを、[Level]ブロックに配置します。
(位置とサイズについてはFTコンスタンツを参照して、色についてはCLコンスタンツを参照してください。) - 注:

<[Title]ブロック内のコマンドは、タイトルテキストのためにのみ機能します。
<この操作は、すべてのTRNGのテキストでは機能しないと思います。これは、例えば、スタンバイ効果テキストやA52タイマーなどのために、機能します。(そのため、テキストを形成するいくつかのデフォルト値は編集できない場合があります。)

= F66、F75やF81トリガ:TextFormatコマンドと同じことを行うことができます。
それらのいずれかを有効にすると、TextFormatコマンドやF66、F75、F81のようなトリガによって(そのレベルまたはタイトルレベルのために)以前に定義された値を、別のF66、F75、F81で上書きします。 - 注:

a、ちょうど表示されているか、これから表示されるTRNGのテキストのために機能します。
b、これから表示される「A」タイプの独立したテキストのために機能します。
c、次のF66、F75、F81のトリガまで、そのレベル/タイトルレベルでのみ有効です。

= F76トリガは、(現在のレベル/タイトルレベルで)TextFormatコマンドや、以前のF66/F75/F81トリガの全ての効果を無効にします。

a、ちょうど表示されているか、これから表示されるTRNGのテキストのために。
b、これから表示される「A」タイプの独立したテキストのために。

= 「B」タイプの独立したテキストをカスタマイズするにはPARAM_PRINT_TEXTコンスタンツを参照してください。
= 弾薬のテキストをカスタマイズするにはCUST_SHOW_AMMO_COUNTERコンスタンツを参照してください:
(色についてはCLコンスタンツを参照して、位置についてはFTコンスタンツを参照してください。サイズについてはFTコンスタンツを使用することはできません:サイズはSCコンスタンツを使用してください。より多くの機能についてはSHOWCコンスタンツを参照してください。)通常、[Level]ブロックに配置します。もし、ゲーム全体で有効にする場合は、[Title]ブロックに配置します。
= WindowsFontスクリプトコマンド(いくつかの機能についてはWFFのコンスタンツを参照してください):
ここで機能テキストのすべてのパラメータを定義することができます - レベルのためなら、コマンドは[Level]ブロックに、タイトルのためなら、コマンドは[Title]ブロックに。(また、フォントの色を定義するため1つか2つColorRGBスクリプトコマンドが必要です。)
注:このコマンドで選択したフォントのタイプも、[Strings]または[ExtraNG]セクションに入力する必要があります。

Diary:

構成要素:

- PICKABLEオブジェクト(ピックアップ、クエスト、パズルまたはキー)がDIARYオブジェクトとして必要です。(決してDIARY_ITEMオブジェクトを使用しないで下さい)もしインベントリにそれがあって、それをインベントリ上で選択すると、画面上にDiaryが開きます。
- Diaryのフォントやプロパティを定義するため、常に1つまたは複数のWindowsFontスクリプトコマンドが必要です。
- Diaryスクリプトコマンドは、Diaryのプロパティを定義するために必要です。
(いくつかの機能についてはLDFコンスタンツを、Diaryの構造を定義するにはPLコンスタンツを参照してください。)
注:スクリプトコマンドを適切な順番で使用しないと、Diaryは動作しません。- 推奨される順番:

ColorRGB= ….
Pickup/Puzzle/Key= ….
WindowsFont= ….
Diary= ….

- 画面上のDiaryの画像は「Image」BMPです。(詳細は以下を参照してください。)DiaryコマンドにImage IDを入力します。
- 各Diaryのデフォルトの内容は、(TXTファイルとして)Scriptフォルダに配置する必要があります。
Diaryコマンドは、「@」記号付きのTXTにリンクされています。例えば、 @Diary01_default.TXT は、このTXTが最初のDiaryのためのデフォルトの内容であることを意味しています。
( @Diary01_default.TXT を[ExtraNG]セクションにも入力する必要があります。)
- Diaryに新しい内容を(現在の内容に)追加したい場合は、同じようにします:
TXTに入力 - 例えば、 @Diary01_new01.TXT が最初のDiaryの最初の新たなコンテンツであるとすると、- Scriptフォルダに保存し [ExtraNG]セクションに @Diary01_new01.TXT と入力します。

ゲーム内のDiaryのためのキーコマンド:

- 右矢印またはSPACE:ページをめくります。
- 左矢印:後方にページをめくります。
- SPACE:最後のページから最初のページにジャンプします。
- ESC:終了。

DiaryのためのTXTファイルの構造。

TXTファイルの#END_PAGE#コマンドは、ページの内容を分割します。 例えば、Diaryが3ページであれば、TXTファイルは次のようになります。:

TXTの最初(前のTXTに新しくDiaryの内容の追加するには、TXTの最初のコマンドを#END_PAGE#で開始する必要があります。しかし、デフォルトのDiaryの内容のためのTXTでは決して使用しないで下さい。)
最初のページの内容
#END_PAGE#
<FORMAT>
formingコマンド
<END_FORMAT>
2ページ目の内容
#END_PAGE#
3ページ目の内容
TXTの最後(#END_PAGE#コマンドでTXTの最後のページを閉じないでください。)

- 特定のページ上に(Diaryスクリプトコマンドで定義されている)デフォルト値を適用したくない場合、
各ページには、- <FORMAT>記号で開始され<END_FORMAT>記号で終了するフォーミングセクションを持つことができます。
2ページ目のフォーミングセクションは、複数の形成値が、そのページのデフォルト形成値を上書きすることを意味しています。
formingコマンドは、「コマンド、等号、形成値」という形で使用されます。
formingコマンドについての詳細は、NG Center[Reference]のDiary Script Commandの説明を参照して下さい。
(注:Diaryに画像が欲しければ、至る所にformingコマンドが必要です。なぜなら、そのコマンドで画像の「Image」BMP IDを識別するからです。)

Diaryのためのトリガ:

- F219は、現在のDiaryの内容に指定したストリングスの内容を追加します。(すなわちDiaryの新しい内容、上記 @Diary01_new01.TXT の例を参照してください)
- F220は、指定したDiaryのすべての内容を削除します。(決してララに空のDiaryを開かせないで下さい。ゲームがクラッシュしてしまいます!なのでララがそうする前に、F220の後にいくつかの新しい内容を追加してから開いて下さい。)
- F221は、指定したDiaryの最後に追加されたTXTの内容を削除します。
- F222は、強制的に、特定のページでDiaryを開くようにします。

次のレベルでのDiaryの内容:

- ピックアップアイテムをDiaryとして使用する場合は、次のレベルでも同様に、Diaryとして使用することを強く推奨します。
それは、同じインベントリ名と同じIDのDiaryコマンドでもあるということです。同じ「インベントリ名」というのはたぶんオブジェクトのスロット名(例えばQUEST_ITEM1とか)のことだと思います。 (Diaryコマンドで指定した任意のピックアップアイテムがDiaryになる)なのでレベルをまたぐ場合、WADに同じオブジェクトが含まれてないといけないのでしょう。
それとDiaryは複数作ることができ、それをコマンドのIDで識別しているので、同じIDでないと同じDiaryとして認識されないのではないかと。(なのでスクリプトの次のレベルのセクションにも同じIDのコマンドを記述する必要があると思われます)

- レベルの終りでDiaryの内容が自動的に次のレベルに引き継がれます。(新しいレベルでは、DiaryスクリプトコマンドのデフォルトコンテンツのフィールドにIGNOREと入力します。)

セーブデータの機能

古いタイプのセーブデータパネルのカスタマイズ:

テキストは、セーブデータパネルで、FONT_GRAPHICSおよび/またはTextFormat値で、左右どちらかに移動するかもしれません。
問題を解決するために、CustomizeスクリプトコマンドのCUST_NO_TIME_IN_SAVELISTコンスタンツで、セーブデータエントリから日/時/分/秒の値を削除します。

新しいタイプのセーブデータパネル:

page19_01.jpg

新しいタイプのセーブデータパネルは、既定のレベル/タイトル上の古いタイプのセーブデータパネルに取って代わります。
新しいセーブデータパネルは、背景イメージです。そこには、通常のセーブデータエントリだけでなく、セーブポイントのスクリーンショットやセーブポイントに関する追加情報(所持している大/小メディパック、プレイ時間など)も同様に記録しています。
SavegamePanelスクリプトコマンドは古いパネルを交換し、新しいパネルのパラメータを定義するために使用します。
(いくつかの機能についてはSPFコンスタンツを参照してください。パネルの構造を定義するためにはSPLコンスタンツを参照してください。)

さらに:

- パネルのフォント(複数可)およびそれらのプロパティを定義するためWindowsFontスクリプトコマンドが必要です。
(SavegamePanelコマンドを後に配置することをお勧めします。 - すなわち - WindowsFontスクリプトコマンドの下に。)
- 画面上のパネルの画像は「Image」BMPです。(詳細は以下を参照してください。)
SavegamePanelコマンドにImage IDを入力します。
- CustomizeスクリプトコマンドのCUST_INNER_SCREENSHOTコンスタンツで、スクリーンショットの解像度を定義します。(解像度値についてはQSFコンスタンツを参照してください。) - このコマンドを使用しないと、新しいタイプのパネル上にスクリーンショットが表示されません。
- レベル/タイトルの新しいセーブデータパネルの追加情報の記述を定義するには、TXTファイルに入力し、Scriptフォルダに入れておきます。
SavegamePanelコマンドは、「@」記号付きのTXTにリンクされます。例えば、 @panel_info.TXT は、これが新しいセーブデータパネルの追加情報の記述であることを意味しています。
( @panel_info.TXT は[ExtraNG]セクションにも入力する必要があります。)
さらなるコマンドの追加情報についてはNG Center[Reference]のSavegamePanel Script Commandの説明を参照してください。
例を見て下さい - これがTXTに入力するものです:

Actual number of large medipacks (in inventory):
(L-PACKS)
Found secrets in game:
(SECRETS) of 70

括弧内のテキストはコマンドです。
(L-PACKS)ララがちょうど持っているメディパック大、(SECRETS)ララがこれまでに見つけたシークレット。
例えば、メディパック大を16持っていて、シークレットを19発見した場合は、セーブデータのエントリを選択すると、セーブデータパネルに以下の情報が表示されます:

Actual number of large medipacks (in inventory):
16
Found secrets in game:
19 of 70

画面上の画像:

- 画像はBMPファイルを使用してください。
- ファイル名は、「Image」とID番号が必要です。例えば、 Image60.BMP 。
- TRLEメインフォルダに画像ファイルを置くか、(Pixの名で)そこにサブフォルダを作成します。
- Imageスクリプトコマンドは、画像が画面上に配置される方法を定義します。(いくつかの機能についてはIFコンスタンツを参照してください。)
- Imageコマンドで画面上の画像の座標を定義するのが難しいと思う場合は、NG Center[Tools]の[Get Screen Frames function]が役立ちます。
- F217を有効にすると、指定した時間だけ、指定したImageスクリプトコマンドに従って、画面に指定した画像を配置します。もし「永遠に」という設定で配置した場合は、F218を使用して、画像を削除します。(ポップアップ画像でのみ有効)
(注:誤解しないでください、Imageコマンドの画像は、日記やセーブデータの画像とは独立したものです。もちろん、そういう目的のために画像を使うことはできますが。)
- Toolsフォルダの converter.exe を参照してください。好きな場所にプログラムを置き、プログラムは、同じフォルダのJPGファイルをBMPファイルに変換します。 - 注:

= EXEはTRNGで使用しない写真には有効ではありません。(例えば、 ImageX.bmp と Load.bmp はTRNGファイルなので、 ImageX.jpg または Load.jpg から変換することができます。)
= Toolsフォルダの中でEXEを使用することはお勧めしません。

画面上のスプライト:

- NG Center[Tools]の[Sprite Editor]機能は、SPRITE-HOLDERオブジェクトに必要なテクスチャを追加します。
page19_02.jpg
- NG Center[Tools]の[Format Sprite Slot]機能は、スプライトの量や大きさをカスタマイズします。
- ご存知のとおり、いくつかの処理では、スプライト(DEFAULT_SPRITES)(炎、ロープ、水中の泡など)を使用しますが、また、どんなスプライトでも(まるで画像であるかのように画面の表面に)直接配置することができます。
どんな従来のSPRITE-TAKINGオブジェクトでもそのため(まるで画像であるかのように画面の表面に直接置くこと)に使用できますが、Paolone氏は、直接その機能のためのオブジェクトを作りました:CUSTOM_SPRITESを参照してください。
「CUSTOM_SPRITES」は新しいスプライトのスロット(オブジェクト)です。
CUSTOM_SPRITESはまったくの空の状態なので好きな画像を追加することができます。

(画面上に - 画像かスプライトか? - どちらを配置するべきかわからない場合は、両方に長所と短所がある点に注意してください。例えば、画面上の画像の量には限りがあります。)
- ParametersスクリプトコマンドのPARAM_SHOW_SPRITEコンスタンツで、スプライトが画面の表面上に配置される方法を定義します。(いくつかの機能についてはFSSコンスタンツを参照してください。)
注:透明の機能を使用している場合、ColorRGBスクリプトコマンドで透過色を定義する必要があります。
- F357を有効にすると、指定した時間だけ、指定したParameters/PARAM_SHOW_SPRITEスクリプトコマンドに従って、画面上に指定したスプライトを配置します。「永遠に」の設定で配置した場合は、F358を使用して削除してください。

画面上のバー:

- CUST_BARコンスタンツは、新しいバーを作成したり、従来のTRLEバー(酸素、ダッシュ、体力、レベルのロード)をカスタマイズするために使用します。

= バーの種類を選択するBARコンスタンツを参照してください。
= いくつかの機能についてはFBARコンスタンツを参照してください。
= ColorRGBコマンドがバーの色を定義するために必要です。
= F331は、画面上に任意の新しいバーを配置します。F332でそれを削除します。

page19_03.jpg

- Paolone氏が作成したTRNGバー(冷水、ダメージ)をカスタマイズするためにDamageスクリプトコマンドを使用します。(いくつかの機能についてはDMGコンスタンツを参照してください。)


前のページ
次のページ