1.-シナリオ適用・編集

提供: Light.vn wiki
移動: 案内検索

注:ページに不明瞭なところや誤字、追加して欲しい内容などありましたら
github, twitter, メールのどちらかを通じて気軽にご連絡ください。

ノベル製作時、先ずシナリオの適用から始まる場合が多いかと思います。
このページはテキスト表示と編集に関してご説明します。



簡単確認用の内容要約

以下はこのページで説明する内容の簡単要約です。
このページを始めて読む方々は簡単に読んでみた後、
下の「サンプル・スクリプト」からの詳細内容をご覧ください。

  • テキスト表示は先に文字窓の生成と、使用文字窓の宣言を必要とする
  • 規則(簡単)
  • " 「改ページ」-"「ページ続き」.「改行」~ 「スクリプト命令」
  • \w「wait:現在シナリオ行表示後待機」
  • \c「continue:現在シナリオ行表示後次の行へ続行」
  • シナリオ適用・編集(規則詳細)
  • "「改ページ」や-"「ページ続き」を行の真っ先に置くと

Light.vnは「この行から全てのスクリプト行はシナリオテキスト」として認識

  • ~を行の真っ先に置くと

Light.vnは「この行から全てのスクリプト行は命令行」として認識
__注:__一回で充分。命令行全ての真っ先に~を置く必要性はありません

  • Light.vnがシナリオテキストとして認識する部分はエディター上で全て青にハイライト
  • .「改行」をシナリオ行の真っ先に置く事で、置いた数ほど改行
  • \w「'wait':待機」をシナリオ行の最後に置くと、

其の行の表示が終わったらLight.vnは待機状態に入り、ユーザーの入力を待つ

  • シナリオ適用・編集(規則結果)
  • "を置いた行以後からは自動的にスクリプト行がシナリオテキストとして認識され一々-"を置く必要性が無くなり、

テキストが終わり・或いはテキストの中間に命令語の使用が必要な場合は命令行の真っ先に~を置くと作動
__注:__シナリオテキストの中間・後に命令入力の場合、
命令行の先に~を置かないと命令行がシナリオテキストとして表示されます

  • 結果的に大抵の場合、シナリオ適用・編集は

"「改ページ」、
.「改行」を行う箇所だけを示せば充分でございます



サンプル・スクリプト

詳細説明に入る前に、先ず以下のスクリプトをエディターにペーストしてみましょう:

文字窓 textbox0 60 350 89 824 0      //<文字窓生成> 文字窓 [名前] [x座標] [y座標] [表示レイヤー] [幅] [高さ]
使用文字窓 textbox0                  //必須!

文字フォント r-mplus-1c-m.ttf          //文字フォント [フォント名]」: フォントはFontsフォルダー内に置く
文字サイズ 24                        //文字サイズ [フォント大きさ(pixel)]
文字ボールド true                     //文字ボールド [true/false]
文字陰 1                            //文字陰 [0/1]: (0)陰なし / (1)文字の外に薄い陰を生成
文字ワードラップ false                 //日本語等単語と単語の間にスペースを入れない言語は「false]、英語等入れる言語は「true」
文字自動待機 off                     //不必要:off
文字窓スキン textbar0.png 0 35        //文字窓スキン [スキン・イメージ] [x座標] [y座標]

"我輩は文字王でござる。テキスト王国王家52代孫である我輩はテキスト民のために奮闘中じゃ。\w

"私は野菜が大好きだ。  
..何故だかは忘れている。\w

~//シナリオ適用完了
//お疲れ様です!

Light vn tut01.01.png

エディターの1行をクリックし、「F5」キーを押してみるとスクリプトのテストプレイが開始し、
(同じく「F5」キーを押す事でテストプレイは終了)
スクリプト行をクリックすると、その行までのスクリプト結果が左のプレビュー画面に反映されます。
簡単にプレイし、気軽にスクリプトを弄って見た後、以下の詳細説明を読む事をお勧めします。



:コマンド形式の [ ] は必須入力, ( ) はオプション(選択入力)を意味します。



文字窓 生成・設定

テキストを画面上に表示するには先ず文字窓(テキスト・ボクッス)を生成する必要があります。
Light.vnのサンプルプロジェクトの場合、以下の文字窓スクリプトを使用しています:
(エディターにコピー・ペーストしてみてください)

文字窓 textbox0 60 350 89 824 0      //<文字窓生成> 文字窓 [名前] [x座標] [y座標] [表示レイヤー] [幅] [高さ]
使用文字窓 textbox0                  //必須!

文字フォント r-mplus-1c-m.ttf          //文字フォント [フォント名]」: フォントはFontsフォルダー内に置く
文字サイズ 24                        //文字サイズ [フォント大きさ(pixel)]
文字ボールド true                     //文字ボールド [true/false]
文字陰 1                            //文字陰 [0/1]: (0)陰なし / (1)文字の外に薄い陰を生成
文字ワードラップ false                 //日本語等単語と単語の間にスペースを入れない言語は「false]、英語等入れる言語は「true」
文字自動待機 off                     //不必要:off
文字窓スキン textbar0.png 0 35        //文字窓スキン [スキン・イメージ] [x座標] [y座標]

:r-mplus-1c-m.ttf, textbar0.pngはそれぞれサンプルのFontsとImagesフォルダーに入っています。

  1. 文字窓生成

形式:文字窓 [名前] [x座標] [y座標] [表示レイヤー] [幅] [高さ]

x,y座標は、左上の座標を意味します。幅は横幅、高さは縦幅を示します。
つまり、上の例は"textbox0"という名前を付与し、x:60 y:350座標(左上)にレイヤ:89 幅:824 高さ:0の文字窓を生成します。
文字窓の高さを0に設定すると、高さを無制限にし、テキストがカットされないようにします。
反面、高さを0以外の数値に設定すると、設定した高さを超えるテキストは表示されないよう自動カットされます。

  1. 使用文字窓 宣言 (重要)

形式:使用文字窓 [使用する文字窓の名前]

文字窓の設定が終わったら、文字窓の使用を宣言します。

  1. 文字窓詳細設定

文字フォント``文字サイズ``文字ボール``文字陰等、文字窓の詳細設定を指定します。

: 文字フォント 文字サイズ を設定しないとテキストが表示されません。指定フォントがFontsフォルダー内に入ってる事を確認してください。

:日本語使用の場合、基本的に「文字ワードラップ false」、「文字自動待機 off」にします。

文字ワードラップは単語と単語の間にスペースを入れる英語などの言語を使用する場合、文字窓の横幅の制限により単語が
中間に切られそうになったら自動改行を行うための機能です。
文字自動待機はシナリオ行が終わるたびにLight.vnを自動待機させる必要がある時に使います。
:文字窓詳細設定の場合、先に「使用文字窓」と宣言した文字窓に適用されます。
つまり、存在していない文字窓や、文字窓の生成がちゃんと出来ていない場合、使用文字窓を宣言していない場合は、
文字窓の詳細設定は適用されません。

  1. 文字窓スキン設定 (選択)

形式:文字窓スキン [スキン・イメージ] [x座標] [y座標]

:スキン・イメージはプロジェクト経路の「Images」フォルダーから読み込みます

最後に文字窓スキンを設定すると、文字窓の設定はとりあえず完了です。
文字窓スキンを設定しなくてもテキストはちゃんと表示されます。

上の文字窓スクリプトをコピーペーストして、その下に

"我輩は文字王でござる。テキスト王国王家52代孫である我輩はテキスト民のために奮闘中じゃ。  

をコピーペーストしてみると

Light vn tut01.png

即時にこのような結果がプレビュー画面に出ます。
この状態で台詞部分を修正すると、修正した部分も即時に反映され、
文章が設定した文字窓の幅を越えると上のように自動的に改行されます。

:プレビュー画面の大きさは、「AltとQ」「AltとW」「AltとE」を共に押す事で
元来画面サイズの「100%」「75%」「50%」に拡大・縮小して表示されます。
(上のスクリーンショットは「Alt+W」を押した「75%」状態で撮ったものです)



シナリオ適用・編集

文字窓の生成・設定が終わったら、シナリオの適用と編集が可能になります。
ノベル製作時、シナリオの適用と修正が一番面倒で時間の掛かる作業かと思います。
なので、出来るだけその負担を減らすためにLight.vnは幾つかのルールを導入しております。

  • シナリオ行とスクリプト命令行の違い
    先ず、"-"で行が始まると、Light.vnは__それから全てのスクリプト行「シナリオテキスト」__として認識します。
    其の反面、行の真っ先に~を置くと、Light.vnは__それから全てのスクリプト行「スクリプト命令」__として認識します。
    Light.vnのエディター上でスクリプトを開けると、__シナリオテキストの場合は全て青にハイライトされます__ので、
    スクリプト行がシナリオテキストとして認識されているのか(青色)、
    スクリプト命令として認識されているのか(青くない色)は簡単に判断できます。

  • じゃ"-"って何だ?
    行の真っ先に
    "を入れると__「改ページ」
    -"を入れると「文章続き」__
    を信号します。

  • 改行
    シナリオ行の真っ先に.を置くと、その数ほど改行されます。
    例えば、

    "私は野菜が大好きだ。  
    ..何故だかは忘れている。  

    「何故だかは忘れている。」は2回改行を行った後表示されます。(.が行の真っ先に二つ)

  • 待機(ユーザー入力待機)部分を宣言
    シナリオ行の最後に\wを入れると(「w」は「wait(待機)」の略語)、
    Light.vnは其の行の表示が終わったら待機状態に入り、ユーザーの入力を待ちます。
    :エディター上でF5を押すと其の行からテストプレイが開始・終了します。
    待機がちゃんと作動してるのかどうかはテストプレイ上で容易に確認できます。

  • エディター上のプレビュー画面を見ながらテキストを美的に配置
    最後に、プレビュー画面を見ながら適切な箇所に「" 改ページ」「. 改行」等を入れながら美的に調節すると
    シナリオ適応はとりあえず完了で、後ほど修正するのも簡単です。

これらの規則を利用して先のスクリプトに以下の内容を追加してみると:

"私は野菜が大好きだ。  
..何故だかは忘れている。\w

~//シナリオ適用完了
//お疲れ様です!

Light vn tut01.01.png

.文字による改行もちゃんと作動しており、エディター上でF5を押してみると
Light.vnが「何故だかは忘れている。」行で待機する事も確認可能です。

ちなみに、

~//シナリオ適用完了
//お疲れ様です!

部分を以下に変えると少し面白い現象が見られます。

//シナリオ適用完了
//お疲れ様です!

原因は、スクリプトとシナリオの関係に関して覚えてる方々は分かるかと思います。
(覚えてない方々は上の簡単要約をチェック!)

>次:「2. 素材配置 (背景, 絵, 背景音) 」へすすむ