ノベルゲーム製作UnityアセットNaninovelの使い方

calligraphy IT

NaninovelはUnityで使える、ノベルゲーム制作に特化したアセットです。他のゲームの会話部分だけNaninovelに任す、といった使い方もできます。
そこそこ高額ですが使いやすそうなので購入。というわけで、使い方を勉強していきたいと思います。
ここでは基本的な内容に絞り、細かい内容は別記事で追加してこうと思います。

スポンサーリンク

NaniNovelの購入~インポート

アセットストアページはこちら。
デモもあるので、触ってみると雰囲気掴めます。
naninovel1
結構お高いので購入判断は慎重に。国産で「宴」というエンジンもあります。
naninovel2
購入はクレカかPaypal受付。
naninovel3
購入したらダウンロードして、
naninovel4
Importします。
naninovel5
大した容量ではないので、支障なければ全部入れます。これで準備完了。
naninovel6
この時点でテストプレイしても、設定変更などがデフォルトで可能な状態になっています。

テキストを編集

naniファイルの作成

naninovel15
とりあえずテキストいじってみます。
まず、AssetsNaninovelResourceScriptsというフォルダを作ります。
naninovel8
フォルダ内で右クリック→作成NaninovelNaninovel Scriptを選択します。できたスクリプトは好きな名前に変更します。
naninovel10
Naninovel Scriptはnaniという拡張子のついたテキストファイルで、好きなエディタで開くことができます。ダブルクリックでも開けるし、
naninovel11
naniファイルを選択→インスペクターの開くをクリックして開くこともできます。

テキストを表示

naninovel12
テキストを適当に編集して上書き保存し、テストプレイを実行すると、
naninovel13
これだけでゲームに反映されます。三行に分けて書くと、三回に分けて表示されます(改行すると別のテキスト扱いになる)。

改行

naninovel26
改行するには、文章1[br]文章2のように表記します。

改行②/コマンドパラメータとは

naninovel27
または、
@print おはよう waitInput:false
@br
@print こんにちは reset:false waitInput:true

のように書いても改行が可能です。
naninovel28
三行だとこう。ちょっとつっこんだ話になりますが、
waitInput:false = クリック待ちをせずに次の文章を表示(消去すると「クリックすると文章を追加」する処理になる)
reset:false = 現在表示されている文章を削除せず、その後にこの文章を追加
という意味になります。
こうしたスクリプト(@)に追加処理を持たせるA:Bの構文を、Naninovelではコマンドパラメータと呼びます。
パラメータには:で対にならないもの(無名パラメータ)もあります。無名パラメータは、@スクリプト名 値のように指定し、各パラメータに最大ひとつしか存在しません。
Naninovel(Unity)で待機処理を入れる方法/@waitの使い方
Naninovel上では、@waitの後に秒数を指定するだけで待機処理は実装できます。ユーザ処理待ちすることも可能です。

話者を表示

naninovel14
台詞を誰が話しているか明示するには、話者: 台詞のように表記します。
:と台詞の間にはスペースが必須です。

キャラクターの表示

naninovel16
AssetsNaninovelResourceに、今度はCharactersというフォルダを作ります。
naninovel21
作ったら、表示したいキャラ画像をあらかじめつっこんでおきます。
naninovel17
フォルダ内でNaninovelResourcesCharactersを開き、
naninovel18
+(リストに追加)キャラ名入力→右のボタンをクリックします。このキャラ名は後で使います。
naninovel19
するとこういうゴチャゴチャした画面が開くので、
naninovel20
とりあえず二か所だけ設定します。ディスプレイ名でキャラの表示名を設定し、
naninovel22
Resources→さっきCharactersフォルダに入れておいたキャラ画像をクリックします。Nameは設定しないでもOK。
naninovel23
最初にCharacters Listで設定したキャラ名を、
naninovel24
スクリプト内で@char の後に入力すれば、
naninovel25
小さかったり位置がおかしかったりはするものの、とりあえずキャラクターを表示することができます。

キャラクターのサイズの変更(Pixels Per Unit)

naninovel29
Spriteの場合の話にはなりますが、キャラクターのサイズを変更してみようと思います。
CharactersManage Characters Resourcesをクリックし、
naninovel30
キャラクター名横のボタンを押して編集モードに入ります。
naninovel31
ユニット毎のピクセル数(Pixels Per Unit)はUnityのSpriteのサイズで使われる単位で、1メートルに対し何ピクセル使用するか? を意味しています。つまり解像度なんですが、
naninovel32
元の画像のピクセル数が変わるわけではないので、実質サイズ調整として機能します。なお、数字が大きいほどひとつの長さにたくさんのピクセルを詰め込むので、画像は小さく表示されます。
naninovel33
なので、適当に数字を小さくしてやると、画像が大きめに表示されます。

キャラクターの初期位置

naninovel34
いまいちちゃんとしたソースが見つけられなかったんですが、表示するキャラの初期位置はpivotで変更できるようです(後で修正するかもしれません)。pivot = 中心的な意味です。
naninovel35
xの数字が大きくなるとキャラは左に移動し、
naninovel36
yの数字が大きくなるとキャラは下に移動します。画像ではマイナスの値を指定して上に配置しています。

キャラクターの初期位置②(posパラメータ)

初期位置固定はちょっと使い勝手が悪いということであれば、charスクリプトのposパラメータで初期位置を指定することができます。
naninovel37
説明だと@char sg pos:0,0でキャラが左下に来るはずなんですが、実際はなぜか縦軸中央左端に位置し、
naninovel38
@char sg pos:50,0でちょうど中央に来たので、これもなんかわかったら追記します。50.50だと画面上にめりこみ、100,50で右上にめりこみました。
Naninovel(Unity)でキャラクターの向きを変える方法
暇を見つけて少しずつNaninovelの機能を調べていく初回、char使用時にパラメータでlookを指定することで、キャラの向きを変えることができます。
Naninovel(Unity)でキャラクターや背景を消す、隠す方法/@hide、hideAll、hideChars、hidePrinterの使い方
@hideでは、指定したIDのキャラクターや背景を隠すことができます。removeしない限りキャラクターは見えない状態でゲームから取り除かれず、メモリを占有し続けます。

背景画像を表示

naninovel39
AssetsNaninovelResourceBackgroundsフォルダを作ります。
naninovel40
フォルダに使用する背景画像を入れます。
naninovel41
メニューのNaninovelResourcesBackgroundsをクリックします。
naninovel42
キャラクターとちがい、最初からMainBackgroundという項目があるので、そのまま右のボタンを押します。
naninovel43
下部Main Background Resources+(リストに追加)をクリックします。
複数の背景が追加できます。
naninovel44
フォルダに入れておいた背景画像を選択し、
naninovel45
使いやすく短めの名前を付けておきます。下に@back 付けた名前 で背景画像を表示できると案内が出るので、
naninovel46
たとえば@back lakesideのように入力し、ゲームを実行するとこのように反映されます。
Naninovel(Unity)のトランジションエフェクトの使い方について
Naninovelで背景画像を切り替える時に、デフォルトで用意されたさまざまな特殊効果(トランジションエフェクト)を適用することができます。

キャラクターを隠す(hide)

naninovel47
@hide キャラクター名で、キャラクターを非表示にすることができます。

キャラクターの移動(char)

naninovel49
キャラクターを表示した状態で、別の位置に再度同じキャラクターをcharすると、その位置にキャラクターが移動します。
逆に言えば、charで同じキャラクターを複数表示することはできないようです。

音楽/効果音を鳴らす

naninovel50
AssetsNaninovelResourceAudioフォルダを作ります。
naninovel51
使用する音楽/効果音を入れておきます。
naninovel52
メニューからNaninobelResourcesAudioを選び、
naninovel53
+(リストに追加)をクリックして、
naninovel54
使用する曲/効果音をすべて登録します。使いづらければ名前も変更しておきます。
naninovel55
画面の下に背景同様案内が出ますが、音楽は@bgm、効果音は@sfxで指定します。BGMは自動でループします。
naninovel56
指示の通りスクリプト内で指定すると、ゲーム内で音楽/効果音が再生されます。

音楽/効果音を止める

コメント

com
;(セミコロン)で始まる行は、コメントとして処理上無視されます。

その他の機能について

Naninovel(Unity)のエフェクト、特殊効果(@spawn)の使い方
Naninovelは組み込みでたくさんエフェクトが用意されているので、労せず画面効果をゲームに加えることが可能です。
Naninovel(Unity)で選択肢を作る、分岐する、ジャンプする方法(@Choiceの使い方)
@Choiceを使うことで、Naninovel内で物語を分岐させる、あるいは任意の箇所へジャンプさせることができます。
Naninovel(Unity)で条件分岐する方法/if、else If、else、endifの使い方
Naninovelで条件分岐する方法についてです。
Naninovel(Unity)でカスタム変数を作成・使用する方法/@setの使い方
Naninovelのシステムを使って変数を作る/使う場合、Project Settingsから変数を登録することで変数を作成できます。また、値の更新には@setというスクリプトが用意されています。
Naninovel(Unity)の入力機能の使い方(@input)
@inputでは、ユーザから入力処理をしてもらい、その結果を変数として保存することができます。
Naninovelのセーブ/ロード機能について
Naninovelでは最初からセーブ/ロード機能が実装されているので、何もなければ特に何かする必要はありません。一応簡単に設定についてだけ触れます。

その他、追加情報は下記に追記しています。

やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント