概要
- シナリオのファイル構成(シナリオはscriptフォルダがあれば取り合えず動きます)
- ドット絵データ(image.dat、image2.dat)と戦場マップ(xxx.map)はシナリオ製作ツールで作成します。
- シナリオ製作ツールは大物入れにあるVahren.zipに同梱されてます。
- スクリプトはメモ帳などのテキストエディタで記述します。
- 画像素材(地図、顔絵、立ち絵、旗、アイコン)と音楽素材(BGM、効果音)は作者様の方で御用意ください。
    
    
        | + | ... | シナリオフォルダに存在しないファイルは自動的に標準フォルダa_defaultから読みに行きます。スクリプトについては本体のa_default/script/mainフォルダの各スクリプトを御参考ください。(ふりーむ版は暗号化されてるので大物入れにある方を見てください)顔絵のサイズは100×100(多少縦横増減あってもOK)pixelで、透過色は何色でもOKです。旗はアニメーションするので32×(32+32)pixelで黒が透過色です。カーソルはアニメーションカーソルか通常カーソル(.cur)で32×32pixelです。BGMはmp3かmid(最新版付近で非対応の現象あり注意)です。
 | 
(クリックで表示)
シナリオ作品公開に際しての注意事項
    
    
        | + | ... | 作者様の公開サイトにアフィリエイト広告を掲載なされても構いません。ただし他サイト様の素材を使用している場合にはそちらの規約も御確認ください。公開作品および実行ファイル(Vahren.exe)に対する一切の責任を当方ななあしは負わないものとします。それを御承諾された上で公開してください。御制作して頂いたシナリオ作品は「Vahren.exe+a_system+シナリオフォルダ」で構成されるソフトとして独自に単独公開して頂いても構いません。任意のジャンル、任意のスタイルで公開してください。
 | 
シナリオ作成の大まかな流れ
    
    
        | + | ... | 
1、クラス(class構造体)、種族(race構造体)、スキル(skill構造体)を作る。
2、上記を組み合わせてユニット(unit構造体)を作る。
 3、領地(spot構造体)を作り、memberに所属ユニットを列挙する。
 4、勢力(power構造体)を作り、memberに所属領地を列挙する。
 5、シナリオ(scenario構造体)を作り、
 powerに登場勢力を列挙。spotに登場領地を列挙。roamに放浪人材を列挙。
 6、scenario構造体に領地の表示と連結を書く。showSpotで領地を表示しlinkSpotで領地を連結する。
 | 
(クリックで表示)
スクリプト言語仕様
scriptフォルダ内の全datファイルがスクリプトと見なされます。名前は自由です。
    
    
        | + | ... | 
 { } ( ) , ; : = ! < > & | * / + - %
 これらの記号は演算子として使われます。識別子やデータ文字列に含める事は出来ません。@を記述すると空文字列となります。継承データを空欄に戻す時に使ってください。name = @とすると空文字列となります。member = @とすると要素ゼロの空データとなります。構造体の名前とデータ文字列には、英数字と_(アンダーライン)のみ用いてください。負の値を記す際は、マイナス符号(-)と数値を必ずくっつけて記述してください。//を行頭に書くとその行はコメントアウトされます。/+は//と同じですが、batファイルで switch を付けて起動すると無効になります。/*と*/は行頭に書いてください。この間を全部コメントアウトします。拡張子無しで各画像ファイル名を記すと、png → jpg → bmp の順で検索されます。拡張子無しでBGMファイル名を記すと、mid → mp3 → ogg の順で検索されます。スクリプトに書くファイル名と実際のファイル名が厳密に一致している必要はありません。大文字小文字の差異は無視されます。
 | 
skill構造体にfunc=文字列でスキルタイプを指定する。能力低下スキルは遠距離/攻撃魔法からのnextスキルでのみ有効。
		| missile | 遠距離攻撃/mp≠0で攻撃魔法 | 
		| sword | 接近攻撃/mp≠0で魔法剣 | 
		| heal | 回復強化技/mp≠0で回復強化魔法/str=マイナス値にすると能力低下スキル | 
		| summon | 召集技/mp≠0で召喚魔法 | 
		| charge | 突撃 | 
		| status | リーダースキル/アシストスキル | 
スキルの共通基本データ
    
    
        | + | ... | 
name = (文字列)スキルの名称icon = (ファイル, ファイル, ‥)icon = (ファイル*α値, ファイル*α値, ‥)アイコン。iconフォルダにある画像ファイルを指定する。左側を一番上にして重ねる事が出来る。α値(1~255)とすると半透明で合成できる。fkey = (文字列*数値)スキルをグループ化します。上位スキルによる上書き判定に使えます。同名文字列なら同系統のスキルと見なされ、大きい数値のスキルが低い数値を上書きします。sortkey = (数値)省略時は0。ユニットのスキルの並び順を決めます。小さい数値ほど前になります。color = (数値), (数値), (数値), (数値)スキルの色合いを設定します。special = (on/off)special = (数値)「必殺技」にする。数値は使用可回数。100以上にすると無限になります。delay = (数値)発射後に数値分の攻撃間隔だけ全スキル発射不可となります。speed=60のユニットでdelay=1とすると約二秒間攻撃不能となります。gun_delay = (数値)gun_delay = (文字列*数値)gun_delayの同名文字列のスキルのみ発射不可となります。quickreload = (on/off)発射後(厳密にはスライドが完了した後)にユニットが即再行動可能になります。この記述のみだと際限なく同じスキルを撃ち続けてしまうものの、gun_delay等を併せて記述し同じスキルの連続発射を抑えることで他のスキルと連続発動できるスキルになります。(例:ダッシュや相殺バリアのような非攻撃スキルを発動しながら別のスキルで攻撃するなど)help = (文字列)説明文hide_help = (on/off)onにするとシステムによる自動説明文が表示されません。sound = (ファイル, ファイル, ‥)効果音。soundフォルダのwavファイルを拡張子無しで指定。複数列挙するとランダムでどれかが再生される。msg = (文章)スキル発動時の台詞。人材ユニットが必殺技を使った時のみ出る。msg@(ユニット) = (文章)特定ユニット専用の台詞。これは通常技でも出ます。picture@(ユニット) = (文字列)pictureフォルダの画像を指定する。指定ユニットの発射時その画像がカットインされる。cutin = (on)術者の立ち絵画像をカットインする。cutin = (文字列*数値, 文字列*数値, ‥)カットイン画像表示のカスタマイズ指定。
    
    
        | + | ... | 
		| type | 0=ズーム型(デフォルト)。1=スライド型 |  		| top | カットイン画像のy座標が画面底辺-(画像縦サイズ×top×0.01)になる |  		| y | カットイン画像のy座標を画像比率の百分率で指定。0=画面上辺、50=画面中央、100=画面底辺 |  		| y2 | 設定すると y~y2 の間でランダムとなる |  		| stop | 数値は不要。カットイン時に一時停止する |  		| wake_time | カットイン画像が術者から画面端に移動するまでのフレーム数。少ないほど高速。デフォルト=15 |  		| flash | 任意の色でフラッシュする。数値はRGBの色成分。0=黒,900=赤,90=緑,9=青,999=白,444=灰色,404=暗紫,44=暗水色 |  		| phantom | カットイン発動時に出る残像数。デフォルト=6 |  		| alpha | 表示画像のα値(1~255)デフォルト=255 |  		| zoom | 百分率で指定。画像の表示拡大率 |  		| inflate | ズーム型の時の拡大率。デフォルト=5(1フレームに5%拡大) |  		| slide | スライド型の移動速度。デフォルト=60(1フレームに60ドット) |  		| trans | 1フレーム毎のα値の減少値。デフォルトはズーム型=8、スライド型=16 | 
 | (クリックで表示)value =  (数値)このスキルの所持者に加算される戦闘力。実際には(lv*0.1 + 1.0) * valueだけ戦闘力が増えるtalent = (on/off)talent = (文字列)省略時はoff。offだと全ユニットが習得可能。onだと人材ユニットのみ習得。on以外の文字列を指定すると非人材ユニットは当スキルの代わりに文字列名のスキルを習得します。exp_per = (百分数値/on/off)このスキルの獲得経験値を変更します。50だと通常算出の50%となり、200だと200%になります。省略時は0です。0は100%と同義と見なされます。なお必殺技の経験値は入らない仕様となってますが(必殺技の時は0はそのまま0と見なす)exp_per=100とすれば普通に入るようになります。※exp_per=offで経験値が全く入らないスキルとなり、exp_per=onだと100と同じ扱い。
 | 
skill 構造体(スキルの設定)
skill 構造体(遠距離攻撃/攻撃魔法)
skill 構造体(それ以外)
デバッグモード
Vahren.exeはデバッグモードで実行できます。デバッグモードだと構文チェックも出来ます。
    
    
        | + | ... | 
 
Vahren.exeのあるフォルダにdebug_paper.txtを置きます。
debug_paper.txtの先頭行にシナリオフォルダ名を記述すると
 起動時オリシナ選択を飛ばしてデバッグモードでスタートします。
 debug_paper.txtの行の末尾は必ず改行してください。
 
 
デバッグモードではスクリプトの再解析ができます。
ゲーム中に「Vキー」を押すと指定された構造体の再解析を行います。
 debug_paper.txtを
 
test2
skill
 spot
 
とするとオリシナtest2をデバッグモードで起動し、
ゲーム中に「Vキー」を押すとskill構造体とspot構造体の再解析を行います。
 戦闘シーンでスキルの挙動を確認しながらその場で修正できます。
 ワールドマップの領地の座標修正にも使えます。
 この場合は選択画面に戻りVキーを押した後に再開してください。
 
 
musicoffとするとBGMは無効となりますが、起動時間が大幅に短縮されます。
 
test2
musicoff
 | 
(クリックで表示)
簡易版シナリオの製作について
    
    
        | + | ... | 
 
シナリオフォルダにscript2フォルダがあるとそちらが優先されます。
script2では全てのスクリプトを書く必要はなく、追加および変更したい部分だけを記述出来ます。
 簡単に作ってみたい方はこちらをご利用ください。
 Vahren.exeはオリシナのscript2フォルダ→a_defaultのscriptフォルダの順にスクリプトを読み込み
 同名の構造体がある場合はオリシナ側が優先されます。
 故にオリシナのスクリプトで標準シナリオのスクリプトを上書きする形になります。
 | 
(クリックで表示)
スクリプトの暗号化について
一般公開の際はスクリプトの不正な編集を回避する為に暗号化する事をお薦めします。
    
    
        | + | ... | 
 
debug_paper.txt に「encode」を記述してVahren.exeを実行するとスクリプトファイルが暗号化されます。
例:debug_paper.txtに
 
test2
encode
 
と記述すると、test2のscriptフォルダ内の全datファイルが暗号化されます。
すでに暗号化されてるファイルはスルーされます。
 debug_paper.txtの行の末尾は必ず改行してください。
 | 
(クリックで表示)
.
-  
-  暗号化されてるとちょっと悲しいよね  -- 名無しさん  (2023-07-05 09:57:40)
-  暗号化は相当すごい作品になってシェアウェアとかになって模倣作を防ぐという段階になったら納得できるかも。 
 製作途中を見てもらいながら、このwikiで応援されている作品は、スクリプトは見てもらったほうがいい。  -- 名無しさん  (2023-09-19 22:43:40)
-  いや作者さんの自由でしょ  -- 名無しさん  (2023-09-20 01:04:04)
-  いや、作者さんの自由でしょうそれは  -- mititdoll  (2023-09-20 01:04:34)
-  自由、その通り。アドバイス受けられるから推奨というだけで自由。  -- 名無しさん  (2023-09-21 00:51:05)
-  自由とは素晴らしいものだ 
 すぐアドバイザーや助言者になりたがる、俗に言う「教え魔おじさん」はすばらしくないが  -- 名無しさん  (2023-10-30 08:54:50)
-  作品作りには試行錯誤がつきもので、完璧を求めるあまりドロップアウトしてしまうケースもある。共感と理解を示し合い、お互い高め合えるコミュニティこそが望ましい。  -- 名無しさん  (2023-12-03 15:18:40)
-  爺さんたち横暴過ぎだろ……  -- 名無しさん  (2025-06-19 18:02:04)
最終更新:2025年06月19日 18:02