Skip to content

キャラクター

キャラクターアクターはシーンの中で背景 の上に存在するアクターです。

キャラクターアクターは、名前、外観、可視性、および形状(位置、回転、スケール)および視線の向きで定義されます。外観、可視性、変形、および視線の向きを時間をかけて変化させることもできます。

キャラクターの動きはコンテキストメニューの Naninovel -> Configuration AM-> Characters で設定できます。利用可能なオプションについては コンフィグガイド をご覧ください。キャラクターのリソースマネージャーはコンテキストメニューの Naninovel -> Resources -> Characters からアクセスできます。

Add Charactercover

キャラクターや外観が大量にありエディターメニューから割り当てるのが大変な場合は、Resources/Naninovel/Characters フォルダーに、対応するアクターIDのフォルダでグループ分けしてドロップすることもできます。たとえば、 "Kohaku" IDを持つキャラクターアクターの外観を追加するには、テクスチャ(スプライト)を Resources/Naninovel/Characters/Kohaku フォルダーに保存すると、自動的にスクリプトで使用できるようになります。

必要に応じて、外観リソースをサブフォルダで整理できます。 その場合、naninovelスクリプトで参照するにはスラッシュ (/) を使用します。 たとえば、Resources/Naninovel/Characters/Kohaku/Casual/Angry に保存された外観テクスチャは、 Casual/Angry でスクリプトから参照できます。

addressable asset system を使用して手動でリソースを公開することもできます。アセットを公開するには、使用するパスと同じアドレスを "Resources/" の部分を除いて、上記の方法で割り当てます。例えば、"Happy" の外観を "Kohaku" キャラクターで公開するには, 次のアドレスにテクスチャアセットを割り当てます: Naninovel/Characters/Kohaku/Happy. addressable 機能はデフォルトではエディターで使用できないことに注意してください。リソースプロバイダーのコンフィグメニューで Enable Addressable In Editor プロパティを有効にすることで許可できます。

naninovel スクリプトでは、キャラクターは基本的に @char コマンドで操作します:

nani
; `Sora` という名前のキャラクターをデフォルトの外観で表示。
@char Sora

; 同様に、外観に `Happy` を設定。
@char Sora.Happy

; 上記と同じですが、キャラクターを画面の左端から45%、下端から10%の位置に配置します。
; また、左を向かせます。
@char Sora.Happy look:left pos:45,10

ポーズ

各キャラクターは名前の付いたステート(ポーズ)を指定できる Poses プロパティを持っています。

cover

ポーズ名を @char コマンドの外観として使用すると、コマンドパラメーターで個別に指定する代わりに、ポーズステートで指定されたすべてのパラメーターを一度に適用できます。

nani
; `SuperAngry` ポーズが `Kohaku` キャラクターに定義されているとして、
; ポーズステートで指定されたすべてのパラメータを適用します。
@char Kohaku.SuperAngry

; 上記を3秒かけて `DropFade` トランジションで表示します。
@char Kohaku.SuperAngry transition:DropFade time:3

ポーズを外観として使用する場合でも、個々のパラメータは上書きできます。例:

nani
; `SuperAngry` ポーズが `Kohaku` キャラクターに定義されているとして、
; ポーズステートで指定されたすべてのパラメータを色味を除いて適用します。
; 色味はコマンドで上書きします。
@char Kohaku.SuperAngry tint:#ff45cb

表示名

キャラクター設定では、特定のキャラクターの Display Name を設定できます。 設定すると、キャラクターのIDではなく、プリンター名ラベルのUIに表示名が表示されます これにより、スペースや特殊文字(IDでは不可)を含むキャラクター名を使用できます。

ローカライズするには、テキスト管理 で "CharacterNames" を使用します。このドキュメントは、テキスト管理リソースの生成タスクを実行すると自動的に作成されます。"CharacterNames" ドキュメントの値は、オリジナルロケールの場合、キャラクターメタデータに設定された値を上書きしません。

naninovelスクリプトでは、表示名をカスタム変数と紐付け、ゲーム全体で動的に変更することができます。表示名を紐付けるには、キャラクターコンフィグメニューでカスタム変数の名前を中括弧で囲み指定します。

cover

これでスクリプトで変数の値を変更できます。これにより、表示名も変更されます:

nani
@set PlayerName="Mistery Man"
Player: ...

@set PlayerName="Dr. Stein"
Player: You can call me Dr. Stein.

名前の紐付け機能を使うと、 @input コマンドでプレイヤーに表示名を入力させることもできます:

nani
@input PlayerName summary:"Choose your name."
@stop
Player: You can call me {PlayerName}.

メッセージカラー

キャラクターコンフィグで Use Character Color が有効だと、表示テキストと名前ラベルを指定した色に変更できます。対応するキャラクターIDが @print コマンドか一般テキストで指定されている場合に適応されます。

以下の動画で表示名とメッセージカラーの使い方を解説しています。

cover

アバターテクスチャ

@char コマンドの avatar パラメーターを使って、キャラクターにアバターテクスチャを設定できます。アバターは、キャラクターに紐付けられたテキストメッセージを表示するときに、対応できるテキストプリンターで表示されます。現在、 WideChat のテキストプリンターのみがアバター機能をサポートしています。

cover

任意のアバターを使用するには、まずアバターリソースに追加し、名前を付ける必要があります。キャラクターコンフィグメニューの Avatar Resources プロパティで行うことができます。

cover

NOTE

アバター名は任意に設定することができ、既存のキャラクターIDや外観を含める必要はありません。アバターをキャラクターに関連付けて自動的に表示したい場合には必要です。

これで、次のように特定のアバターテクスチャを表示できます。:

nani
@char CharacaterId avatar:AvatarName

キャラクターにデフォルトのアバターを設定するには、アバターテクスチャリソースの名前を CharacterID/Default にしてください。例えば、ID Kohaku のキャラクターにデフォルトのアバターを設定するには、アバターリソースに Kohaku/Default という名前を付けます。

アバターを特定のキャラクターの外観に紐付けることもできます。これにより、キャラクターの外観が変わると、アバターも自動的に変更されます。そのためにはアバターリソースの名前を次の形式にします: CharacterID/CharacterAppearance。この CharacterAppearance はアバターリソースをマップする外観の名前です。

アバターはキャラクターの外観と直接繋がっておらず シーンにキャラクターを表示する方法ではないことに注意してください。キャラクターのリソースマネージャーで設定された外観は、シーン内での実際のキャラクター表示です。アバターは独立した機能で、対応しているテキストプリンターに任意の画像を"挿入"するものです。

@char コマンドの visible パラメータを false に設定することで、キャラクターのアバターのみをテキストプリンター内に表示しキャラクター自体は非表示にすることができます。例:

nani
@char CharacaterId visible:false

キャラクター自体を非表示にしたままでアバターを常に変更したい場合は、キャラクターの設定メニューで Auto Show On Modify を無効にすることを検討してください。無効にすると、非表示にするときに visible:false を指定してキャラクターのパラメーターを変更する必要はありません。

話者の強調

キャラクターコンフィグで有効にすると、最後に表示されたメッセージによって話しているキャラクターを色付けします。

cover

口パク

一般Live2D のキャラクター実装では、いわゆる "口パク" を利用できます。イベントを送ることで、表示メッセージを発しているキャラクターの口パクアニメーションを動作させることが出来ます。

cover

自動ボイス再生 機能が有効になっていると、口パクイベントはボイスオーバーによって起動します。それ以外の場合は、表示テキストメッセージによってイベントがアクティブになります。後者の場合、手動で口パクを開始または停止したい場合があると思います(句読点のときに口パクアニメーションを停止する時など)。その場合は、@lipSync コマンドを使用してください。

口パクを設定する方法について詳しくは、 一般Live2D のキャラクター実装についてのドキュメントをご覧ください。

プリンターのリンク

Linked Printer プロパティを使用して、 テキストプリンター をキャラクターに関連付けることができます。

cover

リンクされていると、そのキャラクターが発しているメッセージと関連付けられたプリンターが自動的に使用されます。

@print コマンド(一般テキストを表示するときに内部で使用される)は、関連付けられたプリンターをデフォルト状態にし、他の可視プリンターをデフォルトで非表示にします。プリンターがキャラクターにリンクされている場合、print コマンドは、今表示されているデフォルトのテキストプリンターを自動的に変更し、対応するキャラクターに関連付けられたテキストを表示します。プリンタアクターのコンフィグメニューで Auto Default プロパティを無効にすることで、この動作を防ぐことができます。無効になっている場合は、 @printer コマンドで、手動でデフォルトのプリンターの表示/非表示を切り替える必要があります。

スプライトキャラクター

スプライト実装のキャラクターアクターは、最も一般的でシンプルなものです。これは、クアッドメッシュ(スプライト)にラップされたテクスチャ ↗アセットのセットによって、キャラクターの外観を表示します。テクスチャには、.jpg.png.tiff.psd といった、Unity でサポートされている画像ファイル形式 ↗を使用できます。

TIP

開発のワークフローに合った、最も使いやすいファイル形式を選択してください。プロジェクトをビルドする際、Unity はすべてのソースリソース(テクスチャ、オーディオ、ビデオなど)を、ターゲットプラットフォームに最も適した形式に自動的に変換するので、プロジェクト内のリソースをどのような形式で保存しても、違いはありません。Unity がプロジェクトのアセットを管理する方法については、公式ドキュメント ↗を参照してください。

シーン上のスプライトキャラクターのメッシュの初期サイズ(スケーリングされていないサイズ)は、Naninovel のカメラ設定の Reference Resolution、キャラクターの Pixel Per Unit プロパティ(設定メニューでキャラクターアクターごとに設定されます)、ソースとなるテクスチャの解像度に依存します。

最高のレンダリング品質と最適なパフォーマンスを得るためには、一般的に、すべてのキャラクターの Pixel Per Unit をデフォルト値(100)のままにし、テクスチャの解像度によってキャラクターの初期サイズを制御することをお勧めします。例えば、ゲームの Reference Resolution がデフォルトの 1920 x 1080 px である場合、キャラクターが画面全体を占めるようにするには、キャラクターのテクスチャの高さを(Photoshop などの画像編集ソフトで)1080 px にリサイズします。同様に、画面の 2/3 を占めるようにするには、高さを 1080 * 2/3 px にします。

分解スプライトキャラクター

オープンソースの SpriteDicing ↗ パッケージを使用した DicedSpriteCharacter 実装で、キャラクタースプライトのテクスチャを再利用することで、ビルド時の容量とテクスチャーのメモリを大きく削減することができます。

Sprite Dicingcover

Unityパッケージマネージャー ↗ でパッケージをインストールします: パッケージマネージャーを開く (Window -> Package Manager)、 "+" ボタンをクリック、 "Add package from git URL" を選択、入力欄に https://github.com/Elringus/SpriteDicing.git#package と入力し、 "Add" をクリック。

cover

キャラクターの外観を含む DicedSpriteAtlas アセットは、分解スプライトキャラクターのリソースとして使用されます。各外観は、アトラスに含まれている分解スプライトに名前でマップされます。

分解スプライトキャラクターのメタデータプロパティの一部(たとえば、ユニットあたりのピクセル数、ピボット)はアトラスアセットによって制御されます。一方、キャラクターコンフィグの値は、実際のスプライトを表示するためのレンダーテクスチャに適用されます。アトラスプロパティを変更するときは、変更を有効にするため再ビルドしてください。

cover

以下のビデオガイドでは、分解スプライトアトラスの作成と構成、作成したアトラスに基づく新しい分解キャラクターの追加、naninovelスクリプトからのキャラクターの制御について説明しています。

cover

キャラクター差分

レイヤー実装で複数のスプライト(レイヤー)からキャラクターを作成し、実行時にnaninovelスクリプトで、個別またはグループごとに切り替えることができます。

キャラクター差分プレハブの作成は、コンテキストメニューの Create -> Naninovel -> Character -> Layered で行います。プレハブ編集モード ↗ に入りレイヤーを作成します。デフォルトでは、いくつかのレイヤーとグループが作成されます。そのまま使用するか、削除して独自のものを追加できます。

スプライトレンダラー ↗ コンポーネントを持つルートプレハブオブジェクトの子ゲームオブジェクトは、レイヤー と見なされます。他のオブジェクトは グループ と見なされます。グループ内にレイヤーを配置すると、naninovelスクリプトの一つの式であるレイヤーを選択したり、グループ内のすべてのレイヤーを無効/有効にしたりできます(詳細は後ほど)。

一部のレイヤーをデフォルトで非表示にするには、(ゲームオブジェクトではなく)スプライトレンダラーコンポーネントを無効にします。

プレハブの上に表示される白いフレームは、実行時にレンダーテクスチャにレンダリングされるアクターキャンバスを示しています。テクスチャメモリの浪費を防ぎ、かつアンカーを正しく機能させるため、レイヤーとグループを移動して、フレーム内の空白を最小限に抑えてください。

cover

ブジェクトを拡大縮小して、アクターのデフォルトサイズを微調整できます。

キャラクター差分を Photoshop で作成している場合は、Unity の PSD Importer package ↗ をご検討ください。これは、レイヤーとポジションを全て保持したキャラクタープレハブを自動的に生成します。レイヤー階層を保持するには、インポート設定で Use Layer Grouping オプションを必ず有効にしてください。

必ず作成した差分プレハブをキャラクターリソース (Naninovel -> Resources -> Characters) に追加してください。 "Naninovel.LayeredCharacter" 実装を選択し、リソースレコード設定時に "Resource" フィールドへプレハブをドロップしてください。

差分キャラクターを naninovel スクリプトで操作するには、他のキャラクター実装と同じように @char コマンドを使います。違いは外観の設定の仕方のみです: 単一のIDの代わりに レイヤー構成式 を使います。式には3つの種類があります:

  • グループ内の1つのレイヤーを有効にする: group>layer
  • レイヤーを有効にする: group+layer
  • レイヤーを無効にする: group-layer

たとえば、 "Miho" のキャラクターを考えてみましょう。 "Miho" は "Body" グループを持っていて "Uniform"、 "SportSuit"、 "Pajama" の3つのレイヤーが含まれています。"Uniform" レイヤーを有効にして他のレイヤーをすべて無効にするには、次のコマンドを記述します:

nani
@char Miho.Body>Uniform

グループ内の他のレイヤーに影響を与えずにレイヤーを有効または無効にするには、 ">" の代わりに "+" と "-" をそれぞれ使用します。また、複数の構成式をコンマで分割して指定することもできます:

nani
; メガネを有効に、帽子を無効にし、感情は "Cool" を選択。
@char CharId.Head/Accessories+BlackGlasses,Head-Hat,Head/Emotions>Cool

グループ外のレイヤー(ルートプレハブの子オブジェクト)を選択するには、グループの部分をスキップします。例:

nani
; "Halo" レイヤーオブジェクトがルートプレハブの下にあり、それを無効にする。
@char CharId.-Halo

構成式でレイヤー名を省略することで、グループ内のすべてのレイヤーに適用させることもできます(さらに、select式を使用すると隣接レイヤーに適用されます):

nani
; "Body/Decoration" グループ内のレイヤーを全て無効にする。
@char CharId.Body/Decoration-

; 存在する全てのレイヤーを有効にする。
@char CharId.+

; それぞれ複数のレイヤーを含んだ `Poses/Light` と `Poses/Dark` グループがあるとして、
; `Light` グループ内の全てのスプライトを有効に、 `Dark` グループの全てのレイヤーを無効にする。
@char CharId.Poses/Light>

上記の式は、ターゲットグループの直下の子だけでなく、基になるグループに含まれるすべてのレイヤーに再帰的に影響します。

外観が指定されていない場合(たとえば、事前に外観を設定せずに @char CharId)、デフォルトの外観が使用されます。キャラクター差分のデフォルトの外観は、レイヤー化されたプレハブのエディターでの見え方と同じです。

以下の動画は、キャラクター差分を設定してnaninovelコマンドで操作するデモです。

cover

NOTE

動画で表示されている @char Miho.Shoes> コマンドは実際には "Shoes"グループ(すべての隣接グループを無効にしています)を選択し、非表示にしていません。グループを非表示にする正しいコマンドは @char Miho.Shoes- です。

Layered Actor Behaviour コンポーネントの Composition Map プロパティから、コンポジション式をキーにマップすることが可能です:

cover

— これでキーを使用して、レイヤー化されたアクターの外観を指定できます:

nani
; `Body>Uniform,Hair/Back>Straight,Hair/Front>Straight,Shoes>Grey` を適用する。
@char Miho.Uniform
; `Hair/Back>Straight,Hair/Front>Straight` を適用する。
@char Miho.StraightHair

キャラクター差分プレハブを編集する際は、マップレコードを右クリックして "Preview Composition" を選択すると、マップされた構成式をプレビューできます。

cover

レイヤーオブジェクトは実行時にUnityカメラで直接レンダリングされないことに注意してください。代わりに、コンポジション(外観)が一時的なレンダリングテクスチャに変わるたびに1回レンダリングされ、Naninovelカメラから見えるカスタムメッシュに送られます。この設定は、半透明のオーバードローを防ぎ、トランジションアニメーション効果をサポートするために必要です。

一般キャラクター

一般キャラクターは、最も柔軟なキャラクターアクターの実装です。これは、ルートオブジェクトに紐付けられた CharacterActorBehaviour コンポーネントを追加済みのプレハブをベースにしています。外観の変更と他のすべてのキャラクターパラメータは、Unityイベント ↗ としてルーティングされ、下層のオブジェクトの動作を任意に実装できます。

cover

テンプレートから一般キャラクタープレハブを作成するには、コンテキストメニューから Create -> Naninovel -> Character -> Generic を使用してください。

一般キャラクターで口パク機能を利用するには、 CharacterActorBehaviour コンポーネントの On Started SpeakingOn Finished Speaking Unityイベントを使用してください。そのキャラクターが表示メッセージを話始める時(またはメッセージが完全に表示された時)イベントが呼び出され、そのキャラクターの口パクアニメーションの開始や停止などのカスタムロジックをトリガーできます。これはUIの On Show イベントと On Hide イベントの仕組みに似ています。 UIカスタマイズガイドでカスタムアニメーションの駆動に使用する方法を見つけてください。

次の動画は、3Dリグモデルを一般キャラクターとして設定し、Animator ↗ コンポーネントでリグアニメーションの外観の変更をルーティングする例です。

cover

Unityの Animator コンポーネントは、ゲームオブジェクトが同じフレームで有効化/無効化されると、 SetTrigger の登録に失敗する可能性があります。GameObject.SetActive で可視状態を変更する場合(上記のチュートリアルで示しています)は、代わりにレンダラーで子オブジェクトを有効/無効にすることを検討してください。

ビデオキャラクター

ビデオキャラクター(VideoCharacter)は、ループするビデオクリップ ↗アセットによって外観が表されます。

各プラットフォームでサポートされているビデオフォーマットについては、Unity のドキュメント ↗を参照してください。

アルファチャンネル(透明度)のあるビデオを使用する場合は、サポートされているフォーマットのガイド ↗を参照してください。

Live2D キャラクター

Live2D キャラクターの実装は、Live2D Cubism ↗ 2Dモデリングとアニメーションソフトで制作されたアセットを使用します。

利用するには、始めに Live2D Cubism SDK for Unity ↗ をインストールする必要があります。インストール方法や使い方は、公式のLive2Dドキュメントをご覧ください。

その後 Live2D 拡張パッケージ ↗ をダウンロードします。

実装に使用される Live2D モデルプレハブには、ルートオブジェクトに紐付けられた Live2DController コンポーネントが必要です。外観の変更は、SetTrigger ↗ コマンドの外観がトリガー名であるため、アニメーターコンポーネントにルーティングされます。たとえば、Live2Dキャラクタープレハブ "Kaori" があり、"Surprise" という名前のトリガーを呼び出したい場合は、次のコマンドを使用します:

nani
@char Kaori.Surprise

上記のコマンドは、プレハブに紐付けられたアニメーターコントローラーで "Surprise" 引数を指定して SetTrigger ↗ を呼び出すのみです。基礎となる animator ↗ ステートマシンは自分で作成する必要があります。

WARNING

Cubism SDK for Unity 最新バージョンは Animator コンポーネントと直接連携しています。これまで Cubism 2.x で使われていた式とポーズは 非推奨 ↗ となっており、Live2D用 Naninovel 拡張機能ではサポートしていません。

Live2Dの CubismLookController および CubismMouthController コンポーネントが存在し、Live2Dモデルプレハブに設定されている場合、Live2DController で任意にキャラクターの視線の向きと口のアニメーション(口パク機能)を制御できます。

cover

設定方法の詳細は Live2D ドキュメントの 視線の追従 ↗口パク ↗ を参照してください。

Live2DController は Live2DモデルをUnityにインポートするときに自動的に作成されるLive2D モデルプレハブ内に、 "Drawables" ゲームオブジェクトがあると想定しています。コントローラは @char コマンドの "scale" パラメータに沿って、実行時にこのゲームオブジェクトをスケーリングします。したがって、エディターで設定したローカルスケールの値は無視されます。Live2D プレハブで初期スケールを設定するには、この動画のように ↗ 親ゲームオブジェクトのスケーリングを使用してください。

次のビデオガイドでは、 Cubism Editor からの Live2D キャラクターのエクポートプレハブの設定、簡単なアニメーターステートマシンの作成、naninovelスクリプトでのキャラクターの操作について解説しています。

cover

EXAMPLE

GitHubのサンプルプロジェクト ↗ で Naninovel で Live2D キャラクターを扱っているので、参考にしてください。Naninovel と Live2D SDK パッケージはプロジェクトと一緒に配布されていないため、初めて開く際にコンパイルエラーが発生します。アセットストアから Naninovel パッケージをインポートし、ウェブサイトから Live2D Cubism SDK をインポートして問題を解決してください。

Spine キャラクター

Spine キャラクターの実装は、Spine ↗ という 2D モデリング・アニメーションソフトで制作されたアセットを使用します。

cover

この実装を使用するためには、最初に Spine runtime for Unity ↗ をインストールします。インストール方法や使用方法については、公式ドキュメント ↗を参照してください。

次に、Naninovel の Spine 拡張パッケージ ↗をダウンロードし、インポートします。

実装のリソースとして使用される Spine キャラクターのプレハブは、ルートのオブジェクトに Spine Controller コンポーネントがアタッチされている必要があります。Naninovel スクリプトのコマンド(@char など)による外観の変更は、一般キャラクターの実装と同様に、Controller の On Appearance Changed イベントにルーティングされます。Spine の SetAnimation メソッドを使用したり、Unity の Animator Controller のトリガーを起動したりといったように、自由にイベントを扱うことができます。

cover

TIP

Spine Controller を継承したカスタムコンポーネントを使用することもできます。これにより、仮想メソッドや関連する動作をオーバーライドすることができます(例えば、特定の期間やトランジションパラメータで外観の変化を処理するなど)。

内部的には、Spine モデルはテクスチャにレンダリングされ、それがスクリーンに投影されます。これは、キャラクターをフェードする際に、半透明のオーバードローのアーティファクトを防ぐために必要です。テクスチャのサイズを指定するには、Render Canvas コンポーネントを使用します(Spine Controller の追加時に自動的にアタッチされます)。プレハブモード時に現在のサイズをプレビューするギズモ ↗を有効にしてください。サイズが大きくなると、テクスチャーが消費するメモリも大きくなるので、できるだけ小さくしておきましょう。

EXAMPLE

Spine キャラクターを Naninovel で使用するサンプルプロジェクト ↗をチェックしてください。

ナレーターキャラクター

ナレーターキャラクターは、シーン上に目に見える形(外見、位置、視線方向、色合いなど)では存在しませんが、プリンターメッセージを作成することができ、関連する構成オプション(表示名、メッセージカラー、リンクされたプリンターなど)を持っています。

cover

テクスチャへのレンダリング

すべての実装(一般キャラクターを除く)のキャラクターアクターと背景アクターは、テクスチャアセットにレンダリングすることができます。このアセットは、カスタム UI、プリンタ、マテリアル、またはその他の互換性のあるソースに割り当てることができます。

Render Texture プロパティを持つアクターの設定で、レンダーテクスチャアセットを割り当ててください。テクスチャが割り当てられると、アクターはシーン上のゲームオブジェクトとしては表示されず、そのテクスチャにレンダリングされます。また、Correct Render Aspect プロパティが出現します。これは、レンダーテクスチャの解像度にかかわらず、レンダリングされたアクターがアスペクト比を維持するかどうかをコントロールします。

cover

アクターがテクスチャにレンダリングされると、トランスフォーム(位置、回転、スケール)やその他の変更は何の効果もないことに注意してください。代わりに、レンダーテクスチャのホストオブジェクトを変更してください(例:テクスチャが UI の RawImage コンポーネントに割り当てられている場合は、Image)。

下のビデオは、Live2D キャラクターを、カスタムテキストプリンターに割り当てられたテクスチャにレンダリングする方法を示しています。プリンターはキャラクターにリンクされているので、関連するテキストメッセージが処理されると、キャラクターは自動的にプリンターと一緒に表示されたり隠れたりします。

cover

EXAMPLE

Live2D キャラクターをテクスチャにレンダリングし、テキストプリンターと結合する完全な作例が、GitHub の Naninovel Live2D プロジェクト ↗にあります。

NOTE

一般キャラクターを除いた他のキャラクター、および背景の実装タイプは、上述の Live2D のものと同様、テクスチャにレンダリングするように設定できます。

WARNING

Addressables パッケージ ↗を使用している場合、Unity はアセットの参照を適切に追跡できない ↗ため、ビルド時にレンダーテクスチャの重複が発生し、この機能が正しく動作しないことがあります。参照を手動で(AssetReference API で)処理するか、以下の図のように Get Actor Render Texture コンポーネントを使用してください。

cover