# スタートガイド

# 前提条件

Naninovelは Unityゲームエンジン 用の拡張機能です。そのため、Naninovel を始める前に Unity の基礎を学んでおくことを強くおすすめします。

以下のマニュアルは特に重要です:

Naninovel 外で独自のゲームプレイを作成する予定がなければ、シーン関連の情報は全て無視して構いません。Naninovel で対応できます。

# 基本の概念

Naninovel をセットアップして使用する前に、基本概念についてざっと見てみましょう。 このガイドでよく目にする重要な概念に、アクター というものがあります。アクターは識別子(ID)、外観、空間(シーン)の中の位置、その他いくつかのパラメーターによって記述される抽象的な要素です。

アクターは抽象的な要素であり、直接存在することはできません。代わりに、様々な追加パラメーターが付与された特別なバージョンが使われます。

アクターの種類 追加パラメーター 説明
キャラクター Look Direction シーン中のキャラクターを表します。
背景 None シーンの背景を表します。デフォルトでは、キャラクターアクターの後ろに配置されます。
テキストプリンター Text, Author ID, Reveal Progress テキストメッセージを時間差で徐々に表示します。
選択肢 Choices プレイヤーに選択肢を選ばせます。

背景の上にキャラクターが描かれた典型的なビジュアルノベルの設定を考えてみましょう。 Naninovelの用語では、次のように表されます。

では "Kohaku" キャラクターを嬉しそうに見せたいとしましょう。キャラクターにはいくつかのテクスチャ(画像)が存在し、それぞれが異なる感情を表現します。Naninovel では、そのようなテクスチャはアクターの 外観 と呼ばれます。同様に "MainBackground" に別の何かを表示させるには、背景アクターの外観を変更する必要があります。

アクターとそのパラメーターは、Naninovel スクリプト に記載されているコマンドによって制御します。

他にも広く使用される概念として、ユーザーインターフェイス (UI) があります。UIは、プレイヤーがアクターやゲーム自体を操作するのに使います。例えばメニュー画面(タイトル、セーブロード、設定など)やコントロールパネル(自動読み進み機能の切替、スキップなど)です。デフォルトではUI要素はアクターの上に配置されます。

テキストプリンターと選択肢ハンドラーは、アクターでありUI要素でもあります。つまりアクターの性質を共有し、naninovelスクリプトを介して制御できると同時に、プレイヤーがゲームを操作するのにも使用されます。

プログラミングに詳しい方は エンジンアーキテクチャー を参照して、ソフトウエアの観点からどのように設計されているかをご確認ください。

# 新規 Unity プロジェクトを作成する

基本概念を念頭に置きつつ、早速初期設定を始めましょう。始めに Unity プロジェクトが必要です。作成方法は、Unityマニュアル を参照してください。

プロジェクトは 2D テンプレート を使用して2Dモードのエディターで作成するのがよいでしょう。そうすれば画像はデフォルトでスプライトアセットとしてインポートされるので、手動でインポート設定を変える必要がありません。エディターモードは後から プロジェクト設定 で変更できます。

新しいプロジェクトを作成すると、Unityは2つのゲームオブジェクトを含むサンプルシーンを自動的に追加します。「メインカメラ」と「指向性ライト」です。Naninovel は完全にシーンから独立しているため、この二つのオブジェクトは削除することができます。そうすれば不要なパフォーマンスの圧迫を発生させません。サンプルシーン自体を削除することもできますが、一部のエディター機能を正しく動作させるには、プロジェクトに少なくとも1つのシーンを含めることをお勧めします。

# Naninovel のインストール

アセットストア で Naninovel パッケージをインポートし、スクリプトコンパイルとインポート処理を待ちます。必要に応じて、プロジェクトアセットディレクトリ内の任意の場所に自由に Naninovelパッケージフォルダーを移動できます。

Naninovelを使用する過程で、いくつかのアセット(コンフィグ、設定、保存など)が Assets/NaninovelDataフォルダー内に自動的に生成されます。パッケージフォルダーと違って、データフォルダーを手動で移動しないでください(自動的に再生成されます)。データフォルダーの場所を変更する場合は、エンジンの設定メニューで Generated Data Path プロパティを編集します。

# Naninovel スクリプトを追加

アセットのコンテキストメニューから Create -> Naninovel -> Naninovel Script を選択して、Naninovel スクリプトアセットを作成します。

Create Naninovel Script

通知

Naninovelスクリプト(および他のすべてのNaninovelリソース)は任意のプロジェクトフォルダーに保存し、好きなように整理することができます。命名も自由です。上図は一例です。

Naninovelスクリプトはテキストドキュメント( .nani拡張子)であり、シーンで発生する動作を制御します。メモ帳、TextEdit、VS Code などの任意のテキストエディターで開いて編集できます。

Open Naninovel Script

ビジュアルスクリプトエディターを使用して、naninovelスクリプトを編集することもできます。作成したスクリプトアセットを選択すると、ビジュアルエディターが自動的にインスペクターウィンドウで開きます。

スクリプトに新しい行を追加するには、行を挿入したい場所を右クリックするか、 Ctrl+Space を押して(入力コンフィグメニューでデフォルトのキー紐付けを変更できます)、目的の行を選択します。行を並べ替えるには、番号ラベルを使用してドラッグします。行を削除するには、行を右クリックして "Remove" を選択します。

ビジュアルエディターを使用してスクリプトを変更すると、インスペクターヘッダーのスクリプト名の上にアスタリスク (*) が表示されます。つまりアセットを保存する必要があります。 Ctrl+S を押してアセットを保存します。スクリプトがダーティの時に別のアセットを選択しようとすると、ダイアログウィンドウがポップアップ表示され、変更を保存または元に戻すことができます。

編集したスクリプトを外部で更新すると、ビジュアルエディターに自動的に同期されるため、テキストエディターとビジュアルエディターの両方でスクリプトをシームレスに操作できます。

通知

以降のガイドではテキストエディターを使用しますが、必要に応じて、ビジュアルエディターで同じ手順を全て行うことが可能です。

Naninovel関連のアセット(作成したスクリプトなど)をエンジンで "表示" できるようにするには、プロジェクトリソースとして割り当てる必要があります。アセットの作成メニューからスクリプトを作成すると、自動的に割り当てられます。 スクリプトリソースを手動で割り当てる(または編集/削除する)には、エディターのコンテキストメニューから Naninovel -> Resources -> Scripts を選択して、リソースウィンドウを使用してください。スクリプトを追加するには、リストから + (プラス記号)ボタンを押して新しいレコードを追加し、スクリプトアセットをリストにドラッグアンドドロップします。複数のアセットまたはフォルダ全体をリストにドラッグアンドドロップして、バッチで追加することもできます。

Add Naninovel Script

作成したスクリプトをテキストエディターで開き、次のテキストを追加しましょう:

Hello World!
@stop

1行目は、ゲームが実行された時に"Hello World"というテキストを出力します。2行目はスクリプト実行を停止するのに必要です。

プレイモードでゲームを実行し、結果を見てみましょう。

通知

使用可能なすべての組み込みスクリプトコマンド、サポートされているパラメーター、および使用例は、APIリファレンスに記載されています。カスタムコマンドを追加することもできます。詳細については、 カスタムコマンド を参照してください。

タイトルメニューの"NEW GAME"がアクティブでない場合、スクリプトコンフィグ (Naninovel -> Configuration -> Scripts) の Start Game Script が作成したスクリプト名と同じになっているか確認してください。このプロパティは、アセットの作成メニューから最初のスクリプトを作成するときに自動的に入力されますが、既存のスクリプトをプロジェクトにコピーした場合は機能していない可能性があります。

# キャラクターの追加

Naninovelのキャラクターは、通常の分解スプライト、アニメーションのLive2Dモデル、および3Dメッシュをベースにしています。独自の実装を追加することもできます。このチュートリアルでは、スプライト実装を使用します。

各キャラクターは、ID と外観のセットで表現されます。キャラクターを追加するには、Naninovel -> Resources -> Characters からキャラクターマネージャーGUIへアクセスしてください。IDを指定して新しいキャラクターアクターレコードを追加してから、レコードをダブルクリック(またはレコード下のボタンをクリック)して、全ての外観スプライトを Resources リストに追加します。

Add Character

追加したキャラクターIDを"Kohaku"としましょう。naninovelスクリプトを編集して、追加した文字を表示します:

@char Kohaku
Hello World!
@stop

ゲームを実行すると、画面の中央にキャラクターの外観スプライトの1つが表示されます。外観を指定しない場合は、キャラクターIDと同じ名前か "Default" となっているものがデフォルトで選択されます。特定の外観を選択するには、次のように、ドットで区切られたキャラクターIDの後にその名前を追加します:

@char Kohaku.Happy
Hello World!
@stop

キャラクター "Kohaku" に "Happy" という名前の外観があれば、デフォルトのスプライトではなく、対応するスプライトが表示されます。

コロンの前にIDを追加して、表示テキストにキャラクターを紐付けることができます:

@char Kohaku.Happy
Kohaku: Hello World!
@stop

キャラクターの外観を表示テキストと結合させて、より簡単に入力することもできます:

Kohaku.Happy: Hello World!
@stop

キャラクター(または背景、テキストプリンターなどの他のアクター)を非表示(シーンから削除)にするには、 @hide コマンドに続けてアクターIDを記述します:

Kohaku.Happy: Hello World!
@hide Kohaku
@stop

# 背景を追加

キャラクターと同様に、Naninovelでの背景表示には複数の方法があります。スプライト、汎用オブジェクト、動画、シーンなどです。カスタムのユーザー実装も可能です。

独立した背景アクターを複数作成できますが、通常のビジュアルノベルゲームでは一つの背景を使用してトランジションさせます。 ルーチンを簡略化するために、 MainBackground アクターはデフォルトで背景アクターリストに追加され、naninovelスクリプトで外観を操作する度に毎回IDを指定する必要はありません。

Naninovel -> Resources -> Backgrounds メニューから背景スプライトを追加します。MainBackground が自動で開きますが、必要に応じてアクターリストに戻って他のアクターを追加することもできます。

Add Background

追加した背景の外観スプライトの名前を "City" とします。背景を表示するには、 @back コマンドに続けて背景の外観名を記述します:

@back City

背景の切り替えはデフォルトで、cross-fade トランジションエフェクト となっています。エフェクトを変更するには、外観名の後にトランジションの種類を指定します:

@back City
@back School.RadialBlur

上記は "RadialBlur" のトランジションエフェクトを使って、"City" から "School"へと切り替えます。

メイン背景以外を参照するには(たとえば、複数の背景を互いに重ね合わせたい場合)、アクターのIDを指定します。たとえばメインのアクターの他にIDが Flowerの背景アクターがあるとして、次のコマンドでその外観を "Bloomed" に変更し、次に "Withered" に変更します:

@back Bloomed id:Flower
@back Withered id:Flower

# 音楽と効果音の追加

BGM(バックグラウンドミュージック)またはSFX(効果音)アセットを追加するには、エディターメニューから Naninovel -> Resources -> Audio を開きます。Unityでサポートされている オーディオ形式が使用できます。

Managing Audio

追加したBGMファイル名を "ThePromenade" としましょう。BGMとして再生するには、 @bgm コマンドに続けてトラック名を記述します:

@bgm ThePromenade

音楽トラックを切り替えると、クロスフェードエフェクトが自動的に適用されます。音楽はデフォルトでループするようになっていますが、コマンドパラメータを使用して音量やフェード時間と同様に変更できます。

逆に、効果音はデフォルトではループしません。"Explosion" SFXを追加した場合、再生するには @sfx コマンドを使用します:

@sfx Explosion

# 動画ガイド

動画を参照したい方は、上記の説明が以下に載っています。

# デモプロジェクト

デモプロジェクトの全てのソース(ストアで紹介されているものと同じもの)は、 GitHub の github.com/Naninovel/Demo にあります。

Git clientでリポジトリをクローン するか zipファイルをダウンロード することができます。デモプロジェクトで配布されるアセットはカスタムライセンスの対象となる場合があり、学習目的でのみ提供しています。

警告

プロジェクトに Naninovel パッケージは含まれないため、初めて開く際はコンパイルエラーが発生します。問題を解決するには、アセットストアから Naninovel をインポートします。

最終更新 日: October 28, 2020