使い回す立ち絵の表示スクリプト

Last-modified: 2023-09-04 (月) 18:11:10

立ち絵を表示する際の便利なスクリプト記述の一例です。

  1. 固定位置(右・中央・左)を決めたキャラクタースクリプトを作成。
  2. 任意位置のキャラクターを「スクリプト」コマンドで呼び出す。

これにより、キャラクター表示に毎回「絵」コマンド「イン」コマンドなどの記述や位置数値変更の記入をすることなくがなくなります。



スクリプト記述例

スクリプト記述例はLight.vn基本サンプル(公式本体)を使用した場合を想定しています。ダウンロードはこちらから。
今回は「sample_script.txt」「chara.txt」の2ファイル作成しています。


本編キャラクター表示「スクリプト」コマンド

  • 新規スクリプト「sample_script.txt」内に
    ~スクリプト chara.txt ラムちゃん左
    ~スクリプト chara.txt バーレちゃん右

キャラクター位置別スクリプト

  • 新規スクリプト「chara.txt」内に
    ~栞 ラムちゃん左
    ~絵0 id_lam scg/lam/lam_samplea.png 0 70 80
    .イン id_lam 300
    スクリプト終了
    ~栞 バーレちゃん右
    ~絵0 id_vale scg/vale/vale_sampleb.png 700 70 80
    .イン id_vale 300
    スクリプト終了
    使い回す立ち絵の表示スクリプト
    • 新規スクリプト」はエディターの右上「新規スクリプトボタン」を押すことで作成できます。
      PC上で新規テキストを作成し、「scripts」フォルダに移動させることでも可能です。


スクリプト解説

通常のキャラクター表示と別スクリプトに記述したキャラクター設定を表示する方法を解説していきます。


1. 絵コマンドでキャラクターを表示

Light.vnではノベルゲーム制作において、キャラクターの表示(位置)は「」コマンドを多用していくことになります。
以下、表示サンプル例。

  • 新規スクリプト「sample_script.txt」内に
    ~絵0 id_lam scg/lam/lam_samplea.png 320 70 80
    .イン id_lam 300
    絵コマンドx320
  • 」コマンドにより、x軸(横)320y軸(縦)70、にてキャラクターが表示されている状態です。
    ここを中央位置とします。
  • 次に位置のキャラクター位置数値を設定します。y軸(縦)はそのまま固定としておきます。
    ~絵0 id_lam scg/lam/lam_samplea.png 0 70 80
    .イン id_lam 300
    絵コマンドx0
  • 」コマンドにより、x軸(横)0、にてキャラクターが表示されている状態です。
  • 次に位置のキャラクター位置数値を設定します。y軸(縦)はそのまま固定としておきます。
    ~絵0 id_lam scg/lam/lam_samplea.png 700 70 80
    .イン id_lam 300
    絵コマンドx700
  • 」コマンドにより、x軸(横)700、にてキャラクターが表示されている状態です。
    • 参照項目:


2. 別スクリプトにキャラクター設定を記述

キャラクターの表示(位置)設定を別スクリプトに記述します。
こうすることでキャラクター(数体)や位置情報を管理しやすくなり、そのまま「スクリプト」コマンドでキャラクターを呼び出すことが可能となります。

別スクリプトにではなく同スクリプトに記述しておいても問題はありません。その場合は呼び出すときのファイル名を同スクリプトの名前にしましょう。
今回は、分かりやすく管理しやすいために別スクリプトにしています。

以下、設定サンプル例。

  • 新規スクリプト「chara.txt」内に
    栞 ラムちゃん中央
    ~絵0 id_lam scg/lam/lam_samplea.png 320 70 80
    .イン id_lam 300
    スクリプト終了
    キャラクター設定・中央
  • 」コマンドにより、x軸(横)320y軸(縦)70、にてキャラクターを表示する設定です。
    今後はキャラクターを「スクリプト」コマンドで呼び出すため、「」コマンドと「スクリプト終了」コマンドで挟み込む形になります。
    指定したキャラクター位置を「中央」とし、呼び出す際の「栞名」を「ラムちゃん中央」としておきます。


3. 別スクリプトのキャラクター設定を呼び出して表示

別スクリプトに記述してあるキャラクター設定を「スクリプト」コマンドで呼び出して表示させます。
以下、表示サンプル例。

  • sample_script.txt」内に
    ~スクリプト chara.txt ラムちゃん中央
    キャラクター呼び出し・中央
  • スクリプト」コマンドで「ラムちゃん中央」を呼び出すために、
    目的スクリプト(chara.txt)と目的スクリプト内の栞名(ラムちゃん中央)を指定しています。
    これで「スクリプト」コマンドによるキャラクター表示方法は終了です。


4. 別スクリプトにキャラクター設定を複数追記

別スクリプトにキャラクター表示(位置)設定を複数追記します。
以下、設定サンプル例。

  • sample_script.txt」内に
    ~栞 ラムちゃん左
    ~絵0 id_lam scg/lam/lam_samplea.png 0 70 80
    .イン id_lam 300
    スクリプト終了
    ~栞 ラムちゃん右
    ~絵0 id_lam scg/lam/lam_samplea.png 700 70 80
    .イン id_lam 300
    スクリプト終了
    キャラクター設定・左・右
  • 位置「中央」に加え、位置「」位置「」の設定を追記します。
    ラムちゃん左」はx軸(横)0、「ラムちゃん右」はx軸(横)700、の「」コマンドを利用しています。
    こうして別スクリプトにキャラクター設定をまとめることにより、「中央」「」「」と指定するだけで任意の位置で表示できるようになります。
    また位置数値の変更時も、こちらのスクリプト数値を変えるだけですべてに適用されるため、とても楽な運用になります。


5. 任意のキャラクター設定を呼び出して表示

別スクリプトに記述してあるキャラクター設定を「スクリプト」コマンドで、任意に呼び出して表示させます。
以下、表示サンプル例。

  • sample_script.txt」内に
    ~スクリプト chara.txt ラムちゃん中央
    ~スクリプト chara.txt ラムちゃん左
    ~スクリプト chara.txt ラムちゃん右
    キャラクター表示・左
    キャラクター表示・右
  • スクリプト」コマンドで呼び出す際、設定した「栞名」を指定すれば、任意の設定スクリプトを呼び出せます。
    これによりキャラクターの位置と表示を分かりやすく簡単に使い回すことができるようになります。


6. 別スクリプトにキャラクターの別設定を追記

位置」だけでなく「表情」などの別設定も追記しておくことができます。
以下、設定サンプル例。

  • chara.txt」内に
    栞 ラムちゃん中央(喜び
    ~絵0 id_lam scg/lam/lam_samplec.png 320 70 80
    .イン id_lam 300
    スクリプト終了
    キャラクター設定・喜
  • 例では「」コマンドで呼び出している「素材画像」と「栞名」を「ラムちゃん中央(喜び」に変更しました。
    「中央」位置で「喜び」表情のキャラクターを設定してみました。
    このように「位置」や「表情」などを組み合わせて、呼び出す設定を増やしていけます。


7. キャラクターの別設定を表示

別設定も「スクリプト」コマンドで呼び出す際に「栞名」を変更するだけで、その設定部分を表示することができます。
以下、表示サンプル例。

  • sample_script.txt」内に
    ~スクリプト chara.txt ラムちゃん中央(喜び
    キャラクター設定・喜
  • スクリプト」コマンドで呼び出す「」を「ラムちゃん中央(喜び」にします。


8. 別スクリプトに別キャラクター設定も追記

別キャラクター設定も「スクリプト」コマンドで呼び出す際に「栞名」を変更するだけで、その設定部分を表示することができます。
以下、設定サンプル例。

  • chara.txt」内に
    栞 バーレちゃん右
    ~絵0 id_vale scg/vale/vale_sampleb.png 700 70 80
    .イン id_vale 300
    スクリプト終了
    別キャラクター設定・右
  • 位置「」での別キャラクターを設定しました。
    こちらも「」コマンドで呼び出している「素材画像」と「栞名」を「バーレちゃん右」に変更しただけです。
    • 参照項目:


9. 別キャラクター設定も同時に表示

スクリプト」コマンドを記述していけば、設定したキャラクターを自由に呼び出すことができます。
以下、表示サンプル例。

  • sample_script.txt」内に
    ~スクリプト chara.txt ラムちゃん左
    ~スクリプト chara.txt バーレちゃん右
    各キャラクター設定表示
  • このように「スクリプト」コマンドによる呼び出しを覚えると、
    キャラクター指定、キャラクター画像変更・キャラクター設定変更などのキャラクター管理が楽になると思いますので、ぜひ活用してみてください。


「スクリプト」コマンドの関数(任意の設定数値でキャラクター設定を呼び出す方法)

関数」を使用することで、スクリプトで呼び出す際に設定数値などを任意のものとすることができます。
つまり「スクリプト」コマンドを「」コマンドのように扱えるようにもなります。

関数で呼び出す


1. x軸(横)数値設定の下準備

まずはx軸(横)数値だけ設定できるようにしてみましょう。

  • chara.txt」内に
    栞 バーレちゃん 横位置
    ~絵0 id_vale scg/vale/vale_sampleb.png {{横位置}} 70 80
    .イン id_vale 300
    スクリプト終了
    栞 ラムちゃん 横位置
    ~絵0 id_lam scg/lam/lam_samplea.png {{横位置}} 70 80
    .イン id_lam 300
    スクリプト終了
    引数{{横位置}}
  • 」コマンドでx軸(横)を指定する数値の部分を「{{横位置}}」に変更します。
    {{}}」が大事であり、中の文字列は自由に記述してください。
    ここでは分かりやすく「横位置」としています。


2. x軸(横)数値設定をスクリプトコマンドで記入して呼び出す

スクリプト」コマンドでキャラクターを呼び出す「」コマンドを指定する際、「横位置」部分に数値を入れることにより、x軸(横)が決定されます。

  • sample_script.txt」内に
    ~スクリプト chara.txt ラムちゃん 100
    ~スクリプト chara.txt バーレちゃん 500
    引数{{横位置}}代入
  • 設定スクリプトでの「」である「栞 バーレちゃん 横位置」「栞 ラムちゃん 横位置」と
    呼び出しスクリプトで指定する「」部分「バーレちゃん 100」「ラムちゃん 500」とが対応している形になります。


3. その他の数値設定もすべて引数にしてみる

x軸(横)同様、y軸(縦)・レイヤー・イン効果時間なども引数に変えることができます。
ここでは例に出していませんが、ファイル名の一部などを引数にすることもできます。
使い方次第で、まとめや一括操作などができるのでとても便利な機能なのです。

  • chara.txt」内に
    栞 バーレちゃん 横位置 縦位置 レイヤー イン時間
    ~絵0 id_vale scg/vale/vale_sampleb.png {{横位置}} {{縦位置}} {{レイヤー}}
    .イン id_vale {{イン時間}}
    スクリプト終了
    栞 ラムちゃん 横位置 縦位置 レイヤー イン時間
    ~絵0 id_lam scg/lam/lam_samplea.png {{横位置}} {{縦位置}} {{レイヤー}}
    .イン id_lam {{イン時間}}
    スクリプト終了
    引数多用


4. すべての引数をスクリプトコマンドで代入して呼び出す

スクリプト」コマンドでキャラクターを呼び出す「」を指定する際、追加した引数部分に数値を代入することにより、すべてが決定されます。

  • sample_script.txt」内に
    ~スクリプト chara.txt ラムちゃん 100 70 80 300
    ~スクリプト chara.txt バーレちゃん 500 70 80 300
    すべての引数に代入
  • 設定スクリプトでの「」である「栞 バーレちゃん 横位置 縦位置 レイヤー イン時間」「栞 ラムちゃん 横位置 縦位置 レイヤー イン時間」と
    呼び出しスクリプトで指定する「」部分「バーレちゃん 100 70 80 300」「ラムちゃん 100 70 80 300」とが対応している形になります。
    すべてを任意の数値などで呼び出す場合、「」コマンドとほぼ変わらなくなりますが、表示キャラクターの設定スクリプトが多い時など、スクリプトをまとめて1つの絵として表示したいときに便利です。


「絵」コマンドの代わりに「スクリプト」コマンドの使用(複数スクリプトで成り立っているキャラクターを「スクリプト」で呼び出す)

キャラクターが1枚絵の場合は「絵」コマンドで十分ですが、演出やどうしようもない事情などで、複数のスクリプトを用いて1つのキャラクターを表示しなくてはならなくなる場合があります。
キャラクターを表示する度に複数スクリプトをコピペしていくのは大変です。
そんなときは複数スクリプトをまとめて「スクリプト」コマンドでキャラクター表示しましょう。


1. 親子の場合

  • 例では「親子」を使用してキャラクターを形作っている場合について解説していきます。
    sample_script.txt」内に
    ~絵0 id_lam scg/lam/ram_b.png 320 70 80
    ~絵 id_lam_eye scg/lam/ram_f_e10.png 0 0 1
    ~絵 id_lam_mouth scg/lam/ram_f_m05.png 0 0 1
    ~絵 id_lam_arm scg/lam/ram_h_04.png 0 0 1
    ~親子 id_lam id_lam_eye, id_lam_mouth, id_lam_arm
    .イン id_lam 300
    親子キャラクター
  • の「本体」に、の「目」「口」「腕」を配置している形になっています。
    このキャラクターを表示する度にこの複数スクリプトを記述していくのは大変で、テキスト容量もその分増えてしまいます。
    もちろん初心者のうちは力業として「毎回記述!」でも全然オーケーだと思います。
    ちょっと大変だなぁと気になりだした時にこの方法を思い出してくれたらと思います。


2. 別スクリプトにキャラクタースクリプトを記述

やり方は「スクリプト」コマンドでキャラクター設定を呼び出す方法とまったく同じです。

  • chara.txt」内に
    栞 ラムちゃん 横位置 縦位置
    ~絵0 id_lam scg/lam/ram_b.png {{横位置}} {{縦位置}} 80
    ~絵 id_lam_eye scg/lam/ram_f_e10.png 0 0 1
    ~絵 id_lam_mouth scg/lam/ram_f_m05.png 0 0 1
    ~絵 id_lam_arm scg/lam/ram_h_04.png 0 0 1
    ~親子 id_lam id_lam_eye, id_lam_mouth, id_lam_arm
    .イン id_lam 300
    スクリプト終了
    親子キャラクター設定
  • キャラクター表示用の複数スクリプトを「」コマンドと「スクリプト終了」コマンドで挟み込んでおきます。
    そして今回はx軸(横)・y軸(縦)を引数とし、レイヤーとイン効果時間は固定とする設定にしました。
    スクリプト」コマンドで呼び出す際は、横位置縦位置だけを設定できるようになります。


3. 別スクリプトのキャラクタースクリプトを呼び出す

  • sample_script.txt」内に
    ~スクリプト chara.txt ラムちゃん 320 70
    別スクリプト親子キャラクター表示
  • 目的スクリプト(chara.txt)と目的スクリプト内の栞名''(ラムちゃん)を記述します。
    続いて引数である「横位置320)」「縦位置70)」に対応した数値を代入します。
    これで「」コマンドのように「スクリプト」コマンドを使用してキャラクター表示させることができました。
  • 横縦の数値を変更することにより、キャラクター表示をスムーズに行うことが可能です。
    ~スクリプト chara.txt ラムちゃん -200 -300
    数値変更1
    ~スクリプト chara.txt ラムちゃん 800 400
    数値変更2