好感度管理ティラノスクリプトプラグイン
はじめに
好感度を管理するティラノスクリプト用のプラグインを作成しました。
簡単にですが、ここで使用方法を説明します。
※ティラノビルダー用の使用方法は下記になります。
概要
キャラクター毎の好感度を管理するプラグインです。
好感度の設定や加算、好感度による順位付けや確認などが行えます。
また、好感度によるキャラクター毎のルート分岐なども容易に行えます。
ダウンロード
下記から「lovemng{バージョン情報}.zip」をダウンロードしてください。
※ダウンロードファイルには、ティラノスクリプト用のフォルダとティラノビルダー用のファイルが含まれています。
BOOTHにて、無料版と有料版(投げ銭用)を公開していますので、こちらからもダウンロード可能です。
ソースコードと共にGitHubでも公開していますので、下記からでもダウンロード可能です。
準備
①data/others/plugin にlovemng{バージョン情報}.zipファイル内の「lovemng」フォルダをコピーてください。
下記構成で2ファイルがあるか確認してください。
data/others/plugin/lovemng/init.ks
data/others/plugin/lovemng/lovemng.js
②first.ksからプラグインを呼び出してください。
下記のタグを「first.ks」内に追加してください。
[plugin name=lovemng]
;一番最初に呼び出されるファイル
[title name="ティラノスクリプト解説"]
[stop_keyconfig]
;ティラノスクリプトが標準で用意している便利なライブラリ群
;コンフィグ、CG、回想モードを使う場合は必須
@call storage="tyrano.ks"
;ゲームで必ず必要な初期化処理はこのファイルに記述するのがオススメ
;好感度管理プラグイン読込 ← この辺に入れる
[plugin name=lovemng]
;メッセージボックスは非表示
@layopt layer="message" visible=false
;最初は右下のメニューボタンを非表示にする
[hidemenubutton]
;タイトル画面へ移動
@jump storage="title.ks"
[s]
使い方
ここでは、基本的な使い方について説明します。
各タグの詳細については、ダウンロードファイル内の「readme.txt」を参照してください。
①好感度の初期値を設定
「lovemng_set」タグを使って、好感度の初期値を設定します。
ここで設定したキャラクターが好感度管理の管理下に置かれます。
idにはキャラクターを識別できる一意の値を設定してください。
scopeで好感度管理を行う変数の種類を設定できます。
ゲーム変数fを指定すれば、通常のSaveデータとして、それまでの好感度が保持されます。
好感度管理は、システム変数sf、ゲーム変数f、一時変数tfのそれぞれで、別々に管理されます。
loveの値が好感度になります。初期値は0でなくても構いません。
①「lovemng_set」タグを使って、好感度の初期値を設定[p]
[lovemng_set id="akane" scope="f" name="あかね" love=0 memo="ここで、あかねの初期値に0を設定"]
[lovemng_set id="yamato" scope="f" name="やまと" love=0 memo="メモなので何を書いてもOK"]
; たろうは省略系で設定(chara_newで作成していないキャラクターでも追加可能)
[lovemng_set id="taro" name="たろう"]
②好感度に設定された値を確認
「lovemng_show」タグを使って、好感度に設定された値を確認します。
idで表示するキャラクターを指定し、propsで表示する項目を指定してください。
②「lovemng_show」タグを使って、好感度に設定された値を確認[p]
現在の好感度を確認[p]
[lovemng_show id="akane" scope="f" props="name"]の現在の好感度は[lovemng_show id="akane" scope="f" props="love"]です。[r]
[lovemng_show id="yamato" scope="f" props="name"]の現在の好感度は[lovemng_show id="yamato" scope="f" props="love"]です。[r]
[lovemng_show id="taro" props="name"]の現在の好感度は[lovemng_show id="taro"]です。[p]
表示する項目は、好感度以外も指定可能です。
あかねのメモの内容を表示[p]
[lovemng_show id="akane" props="memo"][p]
③好感度の加算(減算)を行う
「lovemng_add」タグを使って、好感度の加算(減算)を行います。
idで好感度を加算するキャラクターを指定し、loveで加算する好感度の値を設定してください。
あかねの好感度にプラス10[p]
[lovemng_add id="akane" scope="f" love=10 memo="あかねに好感度プラス10!"]
やまとの好感度にプラス15[p]
[lovemng_add id="yamato" scope="f" love=15]
たろうの好感度にプラス20[p]
[lovemng_add id="taro" love=20]
現在の好感度を確認[p]
[lovemng_show id="akane" props="name"]の現在の好感度は[lovemng_show id="akane"]です。[r]
[lovemng_show id="yamato" props="name"]の現在の好感度は[lovemng_show id="yamato"]です。[r]
[lovemng_show id="taro" props="name"]の現在の好感度は[lovemng_show id="taro"]です。[p]
パラメータを省力することで、好感度の加算が容易に行えます。
また、好感度の減算もマイナスを設定することで可能です。
その他に、加減ではなく、固定の値を直接設定することも可能です。
あかねの好感度にプラス1[p]
;好感度(love)を省略すると1なので、idを指定するだけで1加算できる
[lovemng_add id="akane"]
やまとの好感度を20に変更[p]
; lovemng_setタグで加減ではなく、直接値を設定することも可能
[lovemng_set id="yamato" love=20]
たろうの好感度にマイナス8[p]
; 減算の場合はマイナスで設定
[lovemng_add id="taro" love=-8]
現在の好感度を確認[p]
[lovemng_show id="akane" props="name"]の現在の好感度は[lovemng_show id="akane"]です。[r]
[lovemng_show id="yamato" props="name"]の現在の好感度は[lovemng_show id="yamato"]です。[r]
[lovemng_show id="taro" props="name"]の現在の好感度は[lovemng_show id="taro"]です。[p]
④好感度の順位を確認
「lovemng_rank」タグを使って、好感度の順位を確認します。
rankで表示する順位を指定し、propsで表示する項目を指定してください。好感度が同一の場合は、IDの若い順になります。
例えば、IDが「akane」「yamato」の場合、「a」から始まる「akane」ほう方が順位が上になります。
現在の好感度を順位で確認[p]
;順位(rank)を省略すると1位、表示する項目名(props)を省略すると好感度(love)を取得するので、1位の好感度はタグだけで取得できる
現在の好感度1位は[lovemng_rank]で[lovemng_rank props="name"]です。[r]
;省略なし
現在の好感度2位は[lovemng_rank scope="f" rank=2 props="love"]で[lovemng_rank scope="f" rank=2 props="name"]です。[r]
;普段はscopeを省略するくらいが良い
現在の好感度3位は[lovemng_rank rank=3]で[lovemng_rank rank=3 props="name"]です。[p]
⑤好感度の順位を判断してジャンプ
「lovemng_jump」タグを使って、好感度の順位を判断してジャンプします。
idでキャラクター、rankでそのキャラクターの現在の順位を指定し、その条件が成り立った際の飛び先をstrageとtargetで指定します。
strageとtargetは、通常のジャンプタグと同一の設定方法となります。
;あかねが好感度1位の場合はあかねルートへジャンプ
[lovemng_jump id="akane" scope="f" rank=1 storage="scene1.ks" target="*akane_route"]
;やまとが好感度1位の場合はやまとルートへジャンプ
;順位(rank)省略時は1位なので、同一シナリオ内なら、これで設定可能
[lovemng_jump id="yamato" target="*yamato_route"]
;たろうが好感度1位の場合はたろうルートへジャンプ
[lovemng_jump id="taro" target="*taro_route"]
[s]
*akane_route
あかねルートです[p]
@jump target="*common_route1"
[s]
*yamato_route
やまとルートです[p]
@jump target="*common_route1"
[s]
*taro_route
たろうルートです[p]
@jump target="*common_route2"
[s]
*common_route1
メインルートに戻ってきました[p]
たろうの好感度が2位の場合はたろうルートへジャンプ[p]
; 1位だけでなく、指定順位の場合でもジャンプ可能
[lovemng_jump id="taro" rank=2 target="*taro_route"]
; たろうが2位でない場合はジャンプしないので、その場合はこちらでメインルートへ戻す。
@jump target="*common_route2"
[s]
*common_route2
メインルートに戻ってきました[p]
この時点で、あかねの好感度=11、やまとの好感度=20、たろうの好感度=12となっているので、好感度1位はやまとなり、やまとルートへジャンプしました。
ジャンプは、1位だけでなく、任意の順位を指定できます。
たろうの好感度が2位の場合はたろうルートへジャンプ[p]
; 1位だけでなく、指定順位の場合でもジャンプ可能
[lovemng_jump id="taro" rank=2 target="*taro_route"]
⑥好感度を取得
「lovemng_get」タグを使って、好感度を取得します。
idで好感度の値を取得するキャラクターを指定します。
取得した好感度の値は、一時変数(tf)のlovemng_getに格納されます。
※lovemng_getは、常に上書きされるので、最後に取得された値が格納されています。
⑥「lovemng_get」タグを使って、好感度を取得[p]
[lovemng_get id="akane"]
; lovemng_getを実行すると、一時変数(tf)のlovemng_getに取得値が格納される
取得したあかねの好感度は[emb exp="tf.lovemng_get"]です。[p]
取得した好感度の値をif文で判断し、分岐させることも可能です。
あかねの好感度が10以上なら次の処理を実行[p]
[if exp="tf.lovemng_get >= 10"]
あかねの好感度が高いです[p]
[else]
あかねの好感度が低いです[p]
[endif]
⑦好感度管理からキャラクターを削除
「lovemng_del」タグを使って、好感度管理からキャラクターを削除します。
idで削除するキャラクターを指定してください。
現在の好感度を順位で確認[p]
;順位(rank)を省略すると1位、表示する項目名(props)を省略すると好感度(love)を取得するので、1位の好感度はタグだけで取得できる
現在の好感度1位は[lovemng_rank]で[lovemng_rank props="name"]です。[r]
;省略なし
現在の好感度2位は[lovemng_rank scope="f" rank=2 props="love"]で[lovemng_rank scope="f" rank=2 props="name"]です。[r]
;普段はscopeを省略するくらいが良い
現在の好感度3位は[lovemng_rank rank=3]で[lovemng_rank rank=3 props="name"]です。[p]
削除を行うと、好感度管理の管理下から除外されますので、順位は繰り上がります。
やまとを削除[p]
[lovemng_del id="yamato"]
現在の好感度1位は[lovemng_rank]で[lovemng_rank props="name"]です。[p]
やまとが削除されたことによって順位が繰り上げられる[p]
⑧好感度管理をクリア
「lovemng_clear」タグを使って、好感度管理をクリアします。
scopeで変数スコープを指定すると、その変数スコープで管理しているキャラクターを全て削除します。
好感度管理は、システム変数sf、ゲーム変数f、一時変数tfのそれぞれで、別々に管理されしているため、ゲーム変数fをクリアしても、システム変数sfはクリアされません。
好感度管理で作成された配列を確認[p]
; 管理用の配列(lovemngs)は、lovemng_setで指定した変数スコープ内に、それぞれ作成されます。
; 今回はゲーム変数(f)しか使用していないので、ゲーム変数(f)の中の配列(lovemngs)を確認
[iscript]
alert(JSON.stringify(f.lovemngs));
[endscript]
lovemng_getで作成された一時変数(tf.lovemng_get)を確認[p]
[iscript]
alert(tf.lovemng_get);
[endscript]
好感度管理をクリア[p]
[lovemng_clear scope="f"]
おわりに
以上が、ティラノスクリプト用の好感度管理プラグインの説明となります。
初めて作成したプラグインになりますので、不具合など、ご迷惑をおかけすることがあるかもしれません。その場合は、ご一報頂けると助かります。