アンロック要素
アンロック要素機能を使用すると、ロックまたはアンロックのいずれかの状態を永続的に保持するアイテムを管理できます。CGギャラリーやムービーギャラリーのスロット、実績、ヒントなど、さまざまな用途に利用できます。プレイヤーが条件を満たしたときに何らかのエンティティをアンロックまたはアクティブ化する、その他のシステムを表現することもできます。
各アンロック可能アイテムは、文字列識別子と、アイテムがアンロックされているかどうかを示すブール値で表されます。シナリオスクリプトでは、@unlock および @lock コマンドを使用して、特定のIDを持つアイテムをアンロックおよびロックします。例:
@unlock SecretAchievement— はアイテム SecretAchievement をアンロックし、
@lock SecretAchievement— はそれを再びロックします。
アイテムのアンロック状態は グローバルスコープ に保存され、ローカルゲームセッションには依存しません。たとえば、アイテムをアンロックした場合、プレイヤーが新しいゲームを開始したり、セーブしたゲームをロードしたりしても、再びロックされることはありません。
実際の GameObject をアンロック可能アイテムにバインドするには、Unlockable Events コンポーネントを使用します。
Unlockable Item Id フィールドにアイテムのIDを設定し、アイテムがアンロックされたときに実行されるコマンドをバインドします。上記の図では、たとえば、SecretAchievement がアンロックされたときにゲームオブジェクトをアクティブにし、ロックされたときに非アクティブにします。
C#では、UnlockableManager エンジンサービス を使用してアンロック可能アイテムにアクセスできます。
例
C#スクリプトを一切書かずに、アンロック要素システムを使用して音楽ギャラリーを実装する例は、UIサンプル にあります。他の種類のアンロック可能なギャラリー(ムービー、実績など)も同様の方法で実装できます。
アンロック可能リソース
アンロック要素の構成メニュー(Naninovel -> Configuration -> Unlockables)には、アンロック要素機能で使用する任意のアセットを格納できるリソースマネージャーがあります。
アンロック可能リソースは、CGギャラリー などの組み込みのアンロック要素システムによって使用されます。このマネージャーは独自のカスタムシステムに利用することもできます。
CGギャラリー
CGギャラリー機能を使用すると、ゲームの進行中にアンロックできるテクスチャリソース(画像)を指定し、タイトルメニューからアクセスできる ICGGalleryUI UIを介して閲覧できます。
デフォルトでは、CG プレフィックスを持つテクスチャリソース(アンロック可能リソースマネージャーを介して追加されたもの、または同じプレフィックスを持つ MainBackground アクターの背景スプライトリソースとして提供されたもの)は、アンロック可能なCGアイテムと見なされます。
アンロック可能なCGアイテムをギャラリーに追加するには、パスの前に CG を追加して既存のメイン背景リソースの1つを使用するか:
— または、Naninovel -> Resources -> Unlockables でアクセスできるアンロック可能リソースマネージャーを使用して「スタンドアロン」テクスチャを追加します。
複数のCG(例:単一のシーンのバリエーション)を1つのギャラリースロットにグループ化するには、アンロック可能アイテムのIDに _ とそれに続く数字を追加します。たとえば、次のIDを持つCGを追加した場合:
CG/EpicScene_1CG/EpicScene_2CG/EpicScene_3
— これらは単一のCGスロットにグループ化され、プレイヤーが画面をクリックするとクロスフェード効果で順番に表示されます。
注意
UIグリッド内のCGスロットは、左から右、上から下に配置され、アンロック可能アイテムのパス名で並べ替えられます。リソースマネージャー内の位置は無視されます。特定の順序でスロットを配置したい場合は、リソースにそれに応じた名前を付けます。例:
CG/01CG/02_1CG/02_2- ...
CG/35CG/36
CGアイテムをアンロックおよびロックするには、それぞれ @unlock および @lock コマンドを使用します。たとえば、上記の図で追加された CG/Map アイテムをアンロックするには、次のスクリプトコマンドを使用します。
@unlock CG/Mapアンロック可能リソースと背景リソースの両方を使用してCGアイテムを提供する場合、アンロック可能リソースマネージャーで指定されたリソースがCGギャラリーで先に表示されます。この動作や、利用可能なCGリソースが実際に取得されるソースは、CGギャラリーを表すUIプレハブのルートにアタッチされた CG Gallery Panel スクリプトの Cg Sources プロパティを使用して変更できます(組み込み実装は Naninovel/Prefabs/DefaultUI/CGGalleryUI に保存されています)。
少なくとも1つのCGアイテムがいずれかのソースに追加されると(アンロック状態に関係なく)、タイトルメニューに「CG GALLERY」ボタンが表示され、CGギャラリーブラウザーにアクセスできるようになります。
UIのカスタマイズ機能 を使用して、組み込みの ICGGalleryUI 実装を変更または完全に置き換えることができます。
ヒント
アンロック可能なヒントのシステムでは、ローカライズ可能な 管理テキスト ドキュメントを使用して一連のテキストレコードを指定できます。レコードはゲームの進行中にアンロックでき、タイトルメニューおよびテキストプリンターのコントロールパネルからアクセスできる ITipsUI UIを介して閲覧できます。
このシステムを使用して、ゲーム内用語集/百科事典や実績トラッカーを構築できます。
注意
上記のビデオはインラインの管理テキストドキュメント形式を示していますが、これは最近のNaninovelバージョンではヒントのデフォルト形式ではありません。現在のデフォルト(複数行)形式とインライン形式への切り替え方法については、以下を参照してください。
利用可能なヒントを定義するには、管理テキスト リソースディレクトリ(デフォルトでは Resources/Naninovel/Text)内に Tips.txt テキストドキュメントを作成します。形式はスクリプトローカライズドキュメント(複数行)に似ています。# で始まる行にヒントID(キー)を記述します。次の行にはヒントレコードの値として、タイトル(必須)、カテゴリと説明(オプション)を | で区切って記述します。例:
# Tip1ID
ヒント1のタイトル | ヒント1のカテゴリ | ヒント1の説明
# Tip2ID
ヒント2のタイトル || ヒント2の説明
# Tip3ID
ヒント3のタイトル
# Tip4ID
ヒント4のタイトル | ヒント4のカテゴリ |ヒントの値が長すぎる場合は、読みやすくするために複数行に分割できます。
# Tip1
タイトル | カテゴリ |
長い説明の1行目。<br>
長い説明の2行目。<br>
# Tip2
タイトル | カテゴリ |
長い説明の1行目。<br>
...インライン形式を好む場合は、管理テキスト構成の Multiline Documents リストから Tips を削除します。これにより、ヒントを他の管理テキストドキュメントと同様に記述できるようになります。
Tip1ID: タイトル
Tip2ID: タイトル | カテゴリ | 説明
Tip3ID: タイトル || 説明<br> タグの他に、選択したテキストレンダリングシステム(組み込みヒントUIではTMProが使用されます)でサポートされている他のリッチテキストタグを使用できます。
Tips.txt 管理テキストドキュメントに少なくとも1つのヒントレコードが存在する場合、「TIPS」ボタンがタイトルメニューとコントロールパネルに表示され、ヒントブラウザーを開けるようになります。
スクリプトでヒントレコードをアンロックするには、@unlock(再びロックするには @lock)に続けてヒントID(Tips/ をプレフィックスとして付ける必要があります)を指定します。たとえば、Tip1ID ヒントレコードをアンロックするには、次を使用します。
@unlock Tips/Tip1IDプリンターでのヒント
関連付けられたテキストが表示されたときに、ヒントを自動的にアンロックできます。さらに、プレイヤーがそのテキストをクリックすると、ITipsUI UIが自動的に表示され、関連するヒントレコードが選択されます。
表示されるテキストをヒントに関連付けるには、<tip> タグを使用します。例:
吾輩は<tip="VN">ビジュアルノベル</tip>である。名前はまだ無い。— IDが「VN」のヒントレコードが存在する場合、関連付けられた「ビジュアルノベル」テキスト(TMProプリンターによって表示された場合)に下線が引かれ、ヒントレコードがアンロックされます。また、プレイヤーがそのテキストをクリックすると、ヒントUIが開き、関連するレコードが表示されます。
プリンターでのヒントの動作(関連テキストのフォーマットや、ヒントのクリック時のカスタム動作など)を変更するには、Revealable Text コンポーネントの「Tips」セクションにあるプロパティを使用します。このコンポーネントは、すべての組み込みTMProテキストプリンターのプレハブ内で、テキストゲームオブジェクトにアタッチされています。これらのプロパティを調整するためのカスタムプリンターの作成方法は、ガイド を参照してください。
カスタムハンドラーが On Tip Clicked イベントに割り当てられると、デフォルトの動作(ヒントUIの表示)が無効になることに注意してください。