データセットの作り方 その3:置換の応用
リンク
いきなり宣伝からですがGirl13が公開中です。
データセットの作り方
前回は、文章内の文字置換についていくつか試したところで終了しました。今回はもう少し踏み込んでシナリオファクトリーにおける文字置換について紹介していきたいと思います。
文字列の置換は、バリエーションに富んだ文章を生成するための最も重要な機能なので、シナリオファクトリーでは、一口に置換といっても多くの機能が用意されています。
機能が多いということは、逆を返せば、覚えることが多くて使いづらいということでもあります。ただし、データセットを作成するにあたって、すべてを使いこなす必要はありません。
これからざっと一通りの機能を紹介しますが、その中で自分が使いやすいと思ったものだけで十分だと思います。あくまで重要なのは「文章」そのものなのですから。
以下の記述で、表示の都合で半角が使えない為に”*”を全角で表示しているところがあります。コピペして使用する場合は、半角に置き換えてご利用ください。
文字列置換
これまでの記事で使ってきた文字列置換方法です。
**replace=[置換ファイル名]
という具合に記述することで、置換ファイル(.rpl)に記載された文字列の置換を行うことができます。カンマで区切ることで複数の置換ファイルを指定することもできます。
また[置換ファイル名]の代わりに[置換前文字列:置換後文字列]と記述することで、個別に置換文字を指定することも可能です。
例)**replace=置換_フラン.rpl,$○女:吸血鬼
というように、置換ファイル名と置換文字列を混ぜて指定することもできます。
↑1行目で、置換_キャラクタ作成.rpl を指定しています。
※複数の置換ファイルがある場合、先に記述されたファイルから順に置換が実行されます。置換ファイル内の文字列置換は最下行から順に実行されます。
ストック行
ストック行は、シナリオテキスト内で使うことができる置換機能です。視覚的には一番わかりやすい置換になります。stock コマンドで文章を蓄積していき、ストック終了時(set コマンド若しくは別行開始)に蓄積された文章の一部を出力します。
例)
フラン「じゃんけーん!」
*stock=ぐー
*stock=ちょき
*stock=ぱー
フラン「……。」
結果)
フラン「じゃんけーん!」
ちょき
フラン「……。」
というように、*stockされた行の中から1つをランダムに取り出して表示します。
*stockは、stockが連続している間は文章を蓄積し、次行がstock以外の行になったときに出力されます。
*set コマンドは、ストックされた行の中から複数行を取得したいときに使います。
例)誰を嫁にするかな……二人くらい選んでいいよな……
*stock=金剛
*stock=比叡
*stock=榛名
*stock=霧島
*set 2
結果)
誰を嫁にするかな……二人くらい選んでいいよな……
比叡
榛名
%d表記(乱数置換)
%d[数字] 若しくは %d[最小値,最大値]
と記述します。%d表記は、使いこなすとかなり強力な置換機能です。
例)
年齢:$d[100]
体重:$d[1,100]
結果)
年齢:22
体重:45
使いどころとしては、置換文字列のランダム選択になると思います。前回紹介した置換の例で解説します。
例)
*replace=DM\DM一覧
こんにちは、$DM%d[51]だよ!
結果)
こんにちは、マリィだよ!
DMフォルダにあるDM一覧.rplというファイルを開くと、
$DM1,ヘスティア
$DM2,ヘスティア
……
$DM51,マリィ
という具合に、置換文字列がずらっと並べられているこのが確認できます。
$DM%d[51]
と記述することで、$DM1~$DM51のいずれかに置き換わるというわけですね。
以上が主に使う置換機能になります。以下はちょっと高度?な置換になります。こんな感じだよーとざっと紹介しておきます。
直接置換
文章内で置換指定する機能です。
例)
今回は[[$魔王:俺様]]の負けだ。しかし、次こそは$魔王が勝つ!
結果)
今回は俺様の負けだ。しかし、次こそは俺様が勝つ!
というように、文章中で置換文字列の指定を行えます。
@@replace
シナリオ処理最初の段階でシナリオスクリプトに置換を実行します。通常、シナリオコマンド自体には置換は実行されませんが、@@replaceを使うとシナリオコマンド自体の置換が可能です。
%c[]表記(カウンター)※version1.5~
数字をカウントします。カウントは起動してから%c[]が使われる毎に増えていきます。[]内に数字を入れるとそこからカウントします。
例)
%c[]、%c[]、%c[]、%c[100]、%c[]、%c[]
結果)
1、2、3、100、101、102
サンプル
長くなりました。それでは最後に今回紹介した置換を使ったサンプルを掲示して終わりたいと思います。※[ダンまち]をカレントフォルダにして実行してみてください。
例)
*replace=DM\DM一覧,$思い人:$DM%d[51]
$DM%d[51] 「$思い人! 結婚して!」
*stock=$思い人 「はい! よろこんで!」
*stock=$思い人 「ごめんなさい! 無理です!」
おしまい
結果)
アイズ 「カシマ! 結婚して!」
カシマ 「はい! よろこんで!」
おしまい
置換機能の詳細についてはMoonCatのサイトをご覧くださいね。サンプルになるべく沢山の事例を上げていく予定です。
それでは次回はいよいよデータセット(.json)を作ってみたいと思います。
フォロワー以上限定無料
Girl13のサンプル動画その2
無料
【 200円 】プラン以上限定 支援額:200円
シナリオファクトリーversion1.5開発版
このバックナンバーを購入すると、このプランの2019/08に投稿された限定特典を閲覧できます。 バックナンバーとは?
支援額:200円
【 800円 】プラン以上限定 支援額:800円
シナリオファクトリーversion1.5開発版(スーパーユーザーモード)
このバックナンバーを購入すると、このプランの2019/08に投稿された限定特典を閲覧できます。 バックナンバーとは?
支援額:800円