サイトロゴ

フリーのRTSRPG「Millennium Legend」をメインとしたブログ、その他すぴブレの改造講座など。
 
久々の講座です・・・が、今回も実用性が少ないかも知れません。

今回はすぴブレのシステム上の仕様を知っていただこうということで
色々と調べながらこの記事を書いています。


1/25 終了

この記事はすぴブレにて改造、製作を行う人のための記事です。
はい、ここに書いてあることはもしかしたら過去の講座で触れられているものかもしれません。
あくまでも覚え書き程度なものだと思ってください。

★すぴブレ付属のエディタマニュアルに載っていないコマンド等
・<Command/>
<Command com="ex/gameover"/>
強制的にタイトルへ戻す(ゲームのデータはそのまま)
実用性・・・・工夫次第。

・<Poly/> 注意!PolyフォルダにあるXmlにて使われている方です
エディタマニュアルのポリゴン作成にて
type ・・・座標処理方法
・fan ・・・扇形に座標を並べる。
・strip ・・・連続した三角形を並べる。
・index ・・・インデックス(<I/>)で処理する。
とあるが、実はもう一つ
・wire というものがある、その名の通りワイヤーフレーム表示となる
例 ポリゴン:block
wire.jpg
実用性は不明

・<Sound/>
<Sound bgm="音楽ID"/>という使い方が主流だが
_mute:一時停止(正確的にはボリュームを一時的に0にする)
_replay:一時停止からのスタート(0にしたボリュームを元に戻す)
_stop:停止
実用性は大いにあり。

・<Member/>
すぴブレエディタマニュアルの例文には以下の通り
<Member lev="レベル" pason="キャラ名" job="クラス名" wep="武器" body="防具" acs="アクセサリ" inpaty="0">
     <Status lev="レベル" hp="0" mp="0" atc="0" def="0" mag="0" spd="0"/>
</Member>
だがStatusを見るとレベルが指定できるのだが不要の可能性が高い
lev="レベル"はUserDataのmonlevを基準としている
-1ならばmonlev+1となる30(自然数)とかならば、そのキャラは30Levelになる
試しに1.4や1.9と入力した結果は1Levelとなった、小数点切り捨てらしい。
あとStatusでは kill=""という風に倒した数も指定できる。
敵にソウルブレイズで強化したい場合はこちらを使うといい感じになる。
もし使うのならば以下の通りに
<Member lev="レベル" pason="キャラ名" job="クラス名" wep="武器" body="防具" acs="アクセサリ">
     <Status hp="0" mp="0" atc="0" def="0" mag="0" spd="0" kill="0"/>
</Member>

・<Poly/> こちらはポリゴンを設置する方です。
こっちの type="タイプ"には
何もないときは表示のみ。
block は壁。
glass は表示なしの壁。
delete は削除。
と書いてあるが、
システム上にはbridgeという謎のタイプがあるが効果・使い方が不明。
没になったものだと思われる。 よって実用性も何もない。
ちなみに普通に表示されるだけである。

nonefogについて、1にすると画面奥に行っても白くならないと書いてある。
どういうときに使うのかは以下の画像を見てほしい。
左が0で右が1
fog.jpg
ある角度から見るとよくわかるが少し離れると不自然に消えるので注意。

そして・・・rev:反転されてても強制表示。
左0:右1
rev.jpg

ヘェッ?! 何かだまし絵的なものに変り果てました。
どうやらポリゴンの裏側も表示し、表面より優先度が上がっているようです。
何を言っているかわからないって? 私も分かりません。

作ったポリゴンがなんかおかしい時に使うのでしょうか・・・


ここまででちょっと一休み、少し読みにくかったかもしれません・・・(1/14)

続きです 一休みってレベルじゃねーぞ!!(1/17)

★すぴブレの仕様(実用編)

・<Msg/>
もし同じidを持つキャラがいた場合は以下の通りのキャラが対象。
3部隊同じキャラの場合(一番上に書かれた部隊が優先)
<Paty army="friend" x="100" y="150" dir="0.0">
     <Member pason="hed" job="swdman"/>←このキャラが対象
</Paty>
<Paty army="friend" x="150" y="150" dir="0.0">
     <Member pason="hed" job="swdman"/>
</Paty>
<Paty army="friend" x="200" y="150" dir="0.0">
     <Member pason="hed" job="swdman"/>
</Paty>

1部隊に3人いた場合(部隊の中の最後に居るキャラが優先)
<Paty army="friend" x="100" y="100" dir="0.0">
     <Member pason="hed" job="swdman"/>
     <Member pason="hed" job="sosr"/>
     <Member pason="hed" job="amrman"/>←このキャラが対象
</Paty>

なお優先度は<Act/>と<Popup/>と<ZoomIn/>も<Msg/>と同じ

・<Rnd/>の誤記(すぴブレエディタマニュアル)
例文
<Rnd p="確率" world="確率">
実行イベント
</Rnd>

world 全体マップモンスターの出現率。0~100。
-1にした場合は停止位置になったときのみ発動。

と書かれているが実はworldと書くと何も起きない。
正しくは

<Rnd p="確率" monster="確率">
実行イベント
</Rnd>

monster 全体マップモンスターの出現率。0~100。
-1にした場合は停止位置になったときのみ発動。

とmonsterが正しい。

・<Title/>の誤記(すぴブレエディタマニュアル)
誤:col 背景の色。0xffffffffなど。デフォルトは透明。
正:col 文字の色。0xffffffffなど。デフォルトは白。

誤の方は<Powered/>の方の物である

なおここで色(col)について説明を書いておくが、あらかじめ16進数について覚えていると分かりやすいはず。

0xAARRGGBB

最初から説明すると0xは16進数を表す、ここは変えてはいけない。
RRは赤色の度合い
GGは緑色の度合い
BBは青色の度合い
AAはアルファ値、明るさと透明度の度合い

<Title/>ではAAは殆ど明るさしか変わらないが半透明にもなる。
<Powered/>は背景色で透明度に大きく関係する。

16進数についてはここでは説明を省きたいと思います。
0xff=256 0x64=100 0x0A=10 0x0から0xffは0から255を指定できます。


中断(1/17)
再開(1/18)

・<Paty/>によるデータ上書き

この仕様は不具合を起こす原因となることもなるかもしれないので知っていただきたいです。
                        はい・・見事私は引っかかりました。

内容を簡単に説明すると、書き方次第で仲間になっているキャラの
ステータスや装備が変わってしまうという事を引き起こします。

例:もしhedというidを持つキャラが仲間にいたとして
  ごく一般的な装備をしていたとする。
  そして以下のイベントを入れると、レベルは50になり装備品は全て消える。
<Paty army="user" brave="50" x="0" y="0" dir="0" escape="0">
     <Member lev="50" pason="hed" job="swdman" wep="0" body="0" acs="0"/>
</Paty>
もしキャラが仲間にいる場合ならばarmy="friend"をお勧めする。
バトルで使う場合は<Member/>内ではpasonのみ指定すること。
あと、army="friend"を使うときはそのキャラが仲間にいない場合はjobも指定しないと出現しない。

中断
再開(1/21)

・近距離武器と遠距離武器
ゲーム中で編成を組む場合、剣士をパーティに入れる場合と魔法使いを入れる場合では、
少し変わったことが起きます。
剣士は前に配置されるのに、魔法使いや弓使いは後ろの方に配置されます。
このすぴブレではアイテムの定義の射程距離により決定されます。
100未満は近距離武器、100以上は遠距離武器と区別されます。




コメント
この記事へのコメント
教えてください キャラの能力値の取得について
キャラの能力値(spd, tex)などを _temp_ に引き継ごうとしましたがうまくいきません.paramか charainfoかと考えましたが,charainfo の方は使い方がわかりませんでした.よろしくお願いします.
ちなみに,キャラデータに,パラメータ 健康(helth)を追加し,戦闘やイベントで増減させ,一定値以下でイベントを起こそうとしています.
2014/04/19(土) 00:24 | URL | イワン #-[ 編集]
キャラの能力値の取得について
結論から申しますと、残念ながらキャラの能力値を取得することはできません。
charainfoにそれらしき事が書いてあり、私も同じ風に取得しようと試みたことがありますが、試行錯誤しても取得することが出来ませんでした。
取得できるパラメータはparam/memberに書いてあった物だけでした。

健康(helth) 詳細は存じませんが、
ロジックを用いれば実装できると思います。
(Dataファイルに書き込み実装することは不可能です)

また、ロジックを使用しない場合でも実装は可能なはずですが、恐ろしいほどの処理が必要になるかもしれません。

詳しい説明があれば・・構想を組み立てるまではできますが・・・
2014/04/19(土) 01:05 | URL | Stnsllet #C30KqXvA[ 編集]
回答有難うございます.
詳細は,キャラそれぞれに,helth 初期値:3 を与え,戦闘で dead で減る
肉などのアイテムなどで回復
0になると,メンバーから一時離脱し,
Stage経過時に, ランダムで回復し,2になると,メンバーに復活です.
合わせて,パラメータ:忠誠を用意して,忠誠が低ければ,在野(そのうち,戦場で中立で出てくる)に戻ってしまう.です.
他にも,一番上の部隊のリーダのtexを取得して,worldでの表示を,リーダのものに変更したいです.
2014/04/19(土) 01:25 | URL | イワン #-[ 編集]
詳しい説明ありがとうございます。

とりあえず上から考えてみました。

・helth 初期値:3 を与え,戦闘で dead で減る

そのキャラが仲間になった時にパラメータ(_temp_ではない方)として
"キャラID_helth"というパラメータを作り、数値を入れます。
deadで減るのはStateを使えば可能です。
問題点はパラメータの所為でセーブデータ容量が凄まじいことになる可能性があることと
State:deadのイベントを全員分書かなければいけないということです。
ロジックを使うことによりState:deadに関しての処理を簡単に行うことが出来ます。

・肉などのアイテムなどで回復
可能ですがあり得ないほど難しいです。
まずアイテムでパラメータを動かすことが出来ない為に更にパラメータの管理が必要になります。
私ならばWindowを使いキャラを選択し、肉(パラメータ管理)を使わせる、という方法で無理やり実装しますが・・

・0になると,メンバーから一時離脱し,
問題はないと思います。

・Stage経過時に, ランダムで回復し,2になると,メンバーに復活です.
BattleInなどで処理を行うことでメンバーに復活させることが出来ますが、
復活といってもdata/review、つまりストックメンバーになります。
もし、隊列に組み込ませたいというのならばキャラが抜ける際に
キャラがいた部隊を取得しパラメータにする必要があります。

・パラメータ:忠誠
これにより更にセーブデータが大きくなります。

・忠誠が低ければ,在野(そのうち,戦場で中立で出てくる)に戻ってしまう
少し解釈に迷いましたが・・・これはhelthと似た仕組みで、
忠誠度が低くなるほどdata/unviewされると解釈しました、
Rndを使うといい感じになると思います。

戦場で中立として出す際に、出す瞬間に一度data/reviewさせ、
param/memberでレベルとか装備を_temp_で取得したあと
data/unviewし出現させればOKのはずです。
おそらく、この為にキャラの能力値を取得する必要があったのだと思いますが、
レベル、装備、kill数を取得すれば少しパラメータに誤差が出ますが、
気にならない程度に同じパラメータにできます。
ただしpow系でドーピングを掛けた場合はドーピングが反映されません。

・一番上の部隊のリーダの画像をworldで表示したい
条件が整えば結構簡単です、
まずparam/leaderで左上のキャラのIDを取得したとします。
次に world/main/取得したキャラのID とします。
ここで重要なのは取得したキャラのIDと表示したいtexが一致する必要があります。
idとtexが同じであるという条件が必要です。

以上です、中々良いシステムだと思います。
一応、私が考えた限りでは可能なのですが実装はかなり難しいと思います。

このシステムを作る際に重要なポイント
・セーブデータのサイズが凄まじくなる(影響は不明)
・xmlだけで作ろうとすると単調な作業を淡々とすることになる(コピー作業が特にエグい)
・分からないことがありましたら遠慮せずご相談ください。
2014/04/19(土) 02:06 | URL | Stnsllet #C30KqXvA[ 編集]
有難うございました.自分のレベルに合った内容で考え直そうと思います.
2014/04/19(土) 23:13 | URL | イワン #-[ 編集]
健康や忠誠は,ステイタスではなく,スキル(type="n")でやってみようと思います.
2014/04/29(火) 01:46 | URL | イワン #-[ 編集]
Skill(しかもn)ですか..typeのnに関しては使ったことすらないので分かりませんが...
とりあえずは色々試してみてください。
2014/04/29(火) 07:44 | URL | Stnsllet #C30KqXvA[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://stnsllethouse.blog.fc2.com/tb.php/108-9688a081
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック