ブログ移転しました!!

いかに効率よくスクリプティングするか。

ゲーム制作「LR」代表、タカスガタイキです。
いよいよ終盤に近づき、現在はスクリプト作業に追われています。



さて、吉里吉里のスクリプティング作業は、tjsを使わない限りは、KAGによるタグ打ちがメインになります。
もっとも馴染み深いタグは何でしょうか。
異論はあるでしょうが、それはクリック待ちタグ[l]と改行タグ[r]ではないでしょうか。
吉里吉里では毎回この[l][r]を行末に打つことになりますから。

うちのサークル名は、LRです。
にやにやしてしまいます。

ところで、毎回行末に[l][r]と打つのは単純で疲れる作業ですね。
単純な作業というのは、自動化できるものです。
なので、作ってみました。
生シナリオから吉里吉里用のksファイルを自動生成するマクロです。

まあ、このくらいの自動化は多くのサークルがやってることなので、大したもんでもないですが。
でも、VerticalEditorでマクロを作っている人は珍しいと思う。
そもそもこのエディタを使っている人の絶対数が小さいからね!

というわけで、ご紹介。





まず、マクロの中身がこんなかんじです。


//-------------------------------------------------------
// 変数
//-------------------------------------------------------
var
str : String;
rootLevel : Integer;
count : Integer;
savePosition : String;
crlf : String;
i : Integer;

//-------------------------------------------------------
// 本文
//-------------------------------------------------------
begin

//静的変数の初期化
//セーブ場所は各人で変えてね
savePosition :='C:\Users\takasuga\Desktop\hogehoge\';
crlf :='
';

//動的変数の初期化
str := '';
rootLevel := GetNodeLevel(SelNodeIndex);
count := SelNodeIndex + 1;

//子ノードの中身を全て取得
while GetNodeLevel(count) > rootLevel do
begin

//ノードの内容を取得
str := GetNodeText(count);

//各種置換
str := StringReplaceAll(str, crlf, '[r]'+crlf);
str := StringReplaceAll(str, '。', '。[l]');
str := StringReplaceAll(str, '」[r]', '」[l][r]');
str := StringReplaceAll(str, ')[r]', ')[l][r]');
str := StringReplaceAll(str, '? ', '?[l] ');
str := StringReplaceAll(str, '! ', '![l] ');
str := StringReplaceAll(str, '?[r]', '?[l][r]');
str := StringReplaceAll(str, '![r]', '![l][l]');

//ファイルに書き出し
SaveText(savePosition + GetNodeTitle(count) + '.ks',str);
count := count + 1;
end
;
MessageBox('終わりました','テキスト生成',0)
end






では、早速使ってみましょう。



ve_1.jpg

まず、事前にVEでマクロが使える環境を整えてやらなければなりません。
その辺はこちらを見ながら、準備するのがいいでしょう。
ていうか、VEのマクロについて触れている記述って、このくらいしかないんだよね。。

準備ができたら、Ctr+Mでマクロ画面を呼び出しましょう。
この時、シナリオ群をまとめている親ノードにカーソルを当てておいて下さい(画像では「シナリオ」)。



ve_2.jpg

呼び出されたマクロ画面です。
上記のコードがfor_krkrという名前で保存されています。
これを実行してみましょう。



ve_3.jpg

すると、子ノードごとのksファイルが生成されました。
簡単ですね!



ve_4.jpg

中を見てみましょう。
行末に[l][r]が挿入されていますね。
それだけではなく、行途中の読点や、疑問符感嘆符の後にも[l]が挿入されています。
これにより、一文ごとにクリック待ちさせることが可能になるわけです。





今回はシナリオとスクリプトを僕が兼任しているため、シナリオに指定をほとんど入れていないのですが、もし、指定を入れるなら、指定のフォーマットを決めておけば、それもタグに自動変換させることができます。

■立ち絵 キャラ名:○○ 表情:△△ ポーズ:◇◇

[image storage="○○_△△_◇◇.png" pos=left]

みたいなかんじにね。

自動化とか全然意識したことないよっていうサークルさんはお試しあれ!
作業効率が全然違うよ!

web拍手 by FC2

Pagination