エディタ内容
信玄上洛シナリオエディタ
信玄上洛シナリオエディタは、信玄上洛デジタルアプリ版でプレイ可能なシナリオデータを修正したり、新規に作成するツールです。
作成したシナリオは、Windows版のみならず、Android版やiOS版でもプレイ可能です。
プロットしたデータは即座にビューアへ反映され、ビューアからの操作も可能としております。またゲームエンジンを用いて、動作チェックが可能です。
画面はWindowsXPテーマのオリーブグリーン配色へ設定した機種を用いています。
(OSで設定しているテーマにより表示色は異なります)
エディタの通常機能
信玄上洛シナリオエディタではシナリオ作成の為、以下の機能がございます。
1.武将データ作成
各シナリオで初期データとして読み込む武将データを作成します。シナリオ内でも武将データの修正は可能ですが、こちらで作成したデータは、次から作成する時に初期データとして利用できます。
2.シナリオデータ作成
プレイするゲームシナリオを作成します。最初から収録されているシナリオを「ひながた」として利用できる他、上級者向けにスクリプトを編集して、イベントを発生させる事を可能としています。
3.動作チェック機能
作成途中のシナリオデータを、ゲームエンジンを用いてテストプレイできます。効率よくテストできる為、テスト結果からデータの修正へ、素早く反映させる事を可能としました。
エディタの上級者向け追加機能
信玄上洛シナリオエディタでは、上級者向けの機能として、次の追加機能を持たせております。もちろん、スクリプトを弄らなくても、エリア内のユニット設定だけでプレイ可能ですが、よりシナリオのフレーバーとして調整できる機能を追加しました。
a.武将の追加と能力値の修正
エディタでは新たに武将を追加したり、能力値を修正する事が可能です。収録のバージョンとは違った能力値でシナリオ化が可能です。
b.シナリオごとのカスタマイズ
ゲームのフェイズごとにスクリプトを調整してカスタマイズが可能です。
(上級者向けの機能です)
c.勢力ごとのカスタマイズ
勢力ごとにスクリプトを調整してイベントの追加や修正が可能です。
(上級者向けの機能です)
■武将の追加や能力値の修正が可能
■フェイズごとの編集画面でカスタマイズが可能
■スクリプト編集でイベントの追加や調整が可能
シナリオの作り方
信玄上洛のシナリオは、次の手順で作成します。別途、上級者向けのカスタマイズ機能もございますが、以下の手順により作成したシナリオデータで遊ぶ事が可能です。
0.ひながた武将データの作成
各シナリオで用いる武将データのひながたを作成します。こちらで作成したデータは、次から新たにシナリオを作成する時に、ひながたとして読み込まれます。
ひながた武将データを作成したら、次にシナリオデータの作成へ移ります。なお、シナリオデータの作成時も、武将データの修正は可能です。
1.勢力情報の設定
勢力設定は、勢力ごとに以下の3つの情報を定義します。
2.武将情報の設定
ひながたの武将データとは別に、シナリオ作成時も武将データの追加と編集が可能です。
3.エリア情報の設定
マップ画面を使って使用エリアを定義し、そのエリアへ配置するユニットを定義します。
4.プレイ条件の設定
ゲームの勝利条件を定義します。
以上のデータを設定したら、エディタよりゲームエンジンを呼び出して、テストプレイを行う事ができます。必要であればテストの結果をシナリオデータへフィードバックし、シナリオの調整を続け完成させます。
上級者向けの機能
信玄上洛のシナリオは上記の作業で作れますが、上級者向けの機能としてスクリプトを編集し、シナリオをカスタマイズ化させる事ができます。スクリプトは以下の変数、関数、演算子、コマンドなどを組み合わせて設定します。この作業により、よりこまかい勝利条件やイベントを組み込む事が可能です。
但しこちらの作業は、プログラムスキルが必要な場合がございますので、スクリプトは特に調整しなくとも遊べるようにしています。
※以下のデータは11月1日現在の開発中のものです。製品版では変更する場合がございます。
システム予約変数
予約変数名 | 説明 |
---|---|
_Year | ゲーム年 |
_Month | ゲーム月 |
_MaxTurnNo | ターン番号 |
_MaxTurnNo | 初期設定(延長なし)のターン番号 |
_NeedSelectBushoIncDec | 増減させる武将数 |
_NeedSelectSeisan | 軍備判断の操作が必要なエリア数 |
_NeedSelectTsuigeki | 追撃戦の絶対選択時に1 |
_NeedMove2nd | 二次移動の絶対選択時に1 |
_KassenNum | 実行が必要な合戦エリア数 |
組込関数
関数名 | 戻り値 | 説明 |
---|---|---|
DiceRnd() | 1~6 | 1~6までの乱数 |
HaveAnyDefence(勢力名) | 1か0 | 指定勢力がどこかから攻められているなら1 |
HaveMovableSU(勢力名,エリア名) | 1か0 | 指定勢力が指定エリアに移動可能な戦力ユニットがいれば1 |
InRegion(エリア名,勢力名) | 1か0 | 指定エリアに指定勢力のユニットが存在すれば1 |
IsBattleTo(勢力名1,勢力名2) | 1か0 | 勢力1と勢力2がどこかで合戦をしていれば1 |
IsAlliance(勢力名1,勢力名2) | 1か0 | 勢力1と勢力2が同盟状態なら1 |
IsLiveMapBusho(武将名) | 1か0 | 指定武将がマップ上に出現して生きていれば1 |
IsLiveNationDaimyo(勢力名) | 1か0 | 指定勢力に大名がいれば1 |
IsNationUnitInNationRegion(勢力1,勢力2) | 1か0 | 勢力2が支配しているエリアに勢力1のユニットが存在する場合1 |
NationAtRegion(エリア名) | 勢力名 | 指定エリアの現在の支配勢力(合戦中であれば、合戦直前の支配勢力) |
RegionNumAtNation(勢力名) | 数字 | 指定勢力が制圧しているエリア数(合戦中のエリアは含まない) |
TargetRegion(勢力名) | エリア名 | 指定勢力が現時点進軍目標にしているエリア名(なければ空白) |
TotalAttackStep(勢力名) | 数字 | ゲーム開始時より、指定勢力が合戦(追撃戦・敗走ダメージを含む)で、任意の敵対勢力のステップ数を減らした数の総和 |
TotalAttackUnit(勢力名) | 数字 | ゲーム開始時より、指定勢力が合戦(追撃戦・敗走ダメージを含む)で、任意の敵対勢力のユニット数を減らした数の総和 |
TotalDamageStep(勢力名) | 数字 | ゲーム開始時より、指定勢力が合戦(追撃戦・敗走ダメージを含む)で、任意の敵対勢力からステップ数を減らされた数の総和 |
TotalDamageUnit(勢力名) | 数字 | ゲーム開始時より、指定勢力が合戦(追撃戦・敗走ダメージを含む)で、任意の敵対勢力から戦力ユニットを除外された数の総和(大名・武将を除く) |
TotalNationStep(勢力名) | 数字 | 現在のマップ上に出現している指定勢力に所属する戦力ユニットのステップ値の総和 |
TotalNationUnit(勢力名) | 数字 | 現在のマップ上に出現している指定勢力に所属する戦力ユニットと大名・武将ユニットの総数 |
TotalWinBattle(勢力名) | 数字 | ゲーム開始時より、指定勢力が新規に他勢力エリア(中立、緩衝を含む)を自勢力エリアに変化させた回数の総和 |
IsNationLive(勢力名) | 1か0 | 指定勢力がマップ上に存在しているか(滅亡して臣従状態で残っている勢力は含まない) |
HoldRegionNumAtNation(勢力名) | 数字 | 指定勢力が掌握しているエリア数 |
IsHoldRegionAtNation(エリア名,勢力名) | 1か0 | 指定エリアを掌握しているのが指定勢力であるか |
組込演算子
符号 | 説明 | 符号 | 説明 | |
---|---|---|---|---|
== | 等しい | = | 代入 | |
!= | 等しくない | ( | 括弧 | |
<= | 等しいか小さい | ) | 括弧 | |
>= | 等しいか大きい | + | 加算 | |
< | 小さい | - | 減算 | |
> | 大きい | * | 乗算 | |
&& | 論理積AND | / | 除算 | |
|| | 論理和OR | % | 余り | |
! | 否定 |
コマンド例
コマンド | 説明 |
---|---|
AssignDimyo | 大名不在時に【勢力A】の勢力設定の大名後継順序に従い生きている武将を大名にする |
BackOrigin | 【エリアB】にいる【勢力A】のユニットを出身エリア(武将の場合は初期出現エリア)に移動する |
Calc | 【計算式B】を計算して【変数A】に代入する ※変数名は英字または英字数字であり、予約変数で使用していないものを使用可能 |
CheckState | 【勢力A】の移動可能な戦力を調査する |
DeathBusho | 【武将A】を強制死亡させる |
Alliance | 【勢力A】と【勢力B】を同盟に設定する |
EvalCpuBushoIncDec | 【勢力A】(CPU)を調査して武将増減で調整を行う |
EvalCpuArm | 【勢力A】(CPU)を調査して戦力生産で調整を行う |
ExecNationMove | 【勢力A】(CPU)を調査して移動計算に従いユニットが移動を行う |
EvalCpuDefense | 【勢力A】(CPU)の防衛行動を計算を行う 防衛行動が起きなければ進軍テーブルによる進軍行動を開始する |
Goto | 同じ【ラベル名】のLabelまでジャンプする |
IfSet | 条件式が成り立ったら、【変数A】に1を入れる ※変数名は英字または英字数字であり、予約変数で使用していないものを使用可能 |
Label | 同じ【ラベル名】のGoto文のジャンプ先 |
Move | 【勢力A】の移動可能ユニットを【指定数】【エリアB】に移動する |
JumpMove | 【勢力A】の移動可能ユニットを【指定数】【エリアB】に移動する BOXなどの地図上のつながりがない場合でも移動可能 |
DirectMove | 【ユニットid】を【エリアA】へ移動する(武将・戦力ともに可) BOXなどの地図上のつながりがない場合でも移動可能 |
MoveBusho | 【武将A】が移動可能な場合【エリアB】に移動する |
Rem | 自由に【コメント】の入力が出来ます |
Opposition | 【勢力A】と【勢力B】の同盟関係を敵対にする |
Target | 【勢力A】の進軍先のエリアを強制的に【エリアB】にする |
TargetNow | 【勢力A】の進軍先のエリアを強制的に【エリアB】にする 戦力の中間集約はせずに移動可能なユニットを即座に【エリアB】へ移動する |
Obey | 【勢力B】が滅亡した場合に大名は【勢力A】に逃げ延びる(臣従) この状態で【勢力A】が【勢力B】のホームエリアを制圧すると【勢力B】が再興する |
AssistNation | 【勢力A】で合戦が発生した場合に【勢力B】は移動可能な戦力を【勢力A】合戦場に加勢移動する(増援) |
Born | 事前に勢力設定で定義した【勢力A】をマップ上に登場させる(誕生) |
Treason | マップ上にいない【武将A】が【勢力B】に所属勢力を変更し、ホームエリアに出現する(反乱) |
OutUnit | 【ユニットid】を盤面から排除し、無所属にする(ユニット排除) 【ユニットid】が戦力ユニットの場合は解散(Step値0で軍備待ち)にする |
ChangeUnitType | 【ユニットid】が解散している場合に再軍備されるときの兵種を【兵種】に変更する(兵種変更) ※兵種は長槍・山岳・騎馬・鉄砲・僧兵 |
SetDimyo | 【武将A】を強制的に所属している勢力の大名にする(大名直接指定) 同じ勢力に大名がいる場合はその大名は武将へ変更となる |
Message | ゲーム内で【メッセージ文】を表示する \n は改行と見なし2行まで表示可能 |
スクリプト例(上級者向け機能)
スクリプトを編集する事で、シナリオの中へ様々なイベントを組み込む事が可能です。
■スクリプトの構造
【コマンド】:実行するコマンドを書き込みます。【条件式】:コマンドを実行する条件式を書き込みます。
【ターゲット】:コマンドを実行する対象を書き込みます。
【パラメータ】:コマンド実行時の要件を書き込みます。
【摘要】:メモとして利用できます。
■例1:同盟関係を破棄し敵対関係となる場合
コマンド | 条件式 | ターゲット | パラメータ | 摘要 |
---|---|---|---|---|
Rem | 足利義昭が織田へ挙兵 | 特別ルール | ||
Goto | TAKEDA_ASHIKAGA | SKIP_TAKEDA_ASHIKAGA | 真偽行動の命令文 | |
IfSet | IsBattleTo(武田,織田) | TAKEDA_ASHIKAGA | 武田が織田へ参戦した場合 | |
Alliance | TAKEDA_ASHIKAGA | 武田 | 足利 | 武田と足利が同盟締結 |
Opposition | TAKEDA_ASHIKAGA | 織田 | 足利 | 足利と織田が敵対状態 |
Message | TAKEDA_ASHIKAGA | 足利義昭、織田へ挙兵 | wait | メッセージの表示 |
Label | SKIP_TAKEDA_ASHIKAGA | 偽の場合はスキップ |
ここでは西上作戦にて武田が織田を攻めた時、足利義昭が便乗して織田へ参戦するイベントのスクリプト例です。
{TAKEDA_ASHIKAGA}は変数です。変数はユーザー側が自由に設定できます。
変数{TAKEDA_ASHIKAGA}が真(ここでは0→1)の場合、それまで同盟関係にあった足利と織田の関係が敵対関係へ変化し、お互い侵攻が可能となり、メッセージを表示させます。
変数{TAKEDA_ASHIKAGA}が偽(ここでは0)の場合、スキップするスクリプト記述です。
このスクリプトでは、織田は勝手に将軍家へ攻撃できず、足利義昭の挙兵が発生すると攻撃可能となる事を再現しています。
■例2:変数の数値増加
コマンド | 条件式 | ターゲット | パラメータ | 摘要 |
---|---|---|---|---|
Rem | 変数の増加 | 変数値の加算説明 | ||
Calc | A=A+1 | 変数Aへ+1を加算する |
変数{A}値の変化に合わせて、イベントを組む事が可能です。
例えばターン数を示す変数を設定し、その変数値=ターン数に応じて、そのシーンに合ったイベントを発動するなどが可能となります。
画像は開発中のものです。
またWindowsXPテーマのオリーブグリーン配色へ設定した機種を用いています。
(OSで設定しているテーマにより表示色は異なります)