Pluglog

Tkool Replay コメントは随時受け付けておりますので、古い記事でも遠慮なくお書きくださいませ。
Admin
TOP ≫ ARCHIVE ≫ 2016年11月
ARCHIVE ≫ 2016年11月
      

≪ 前月 |  2016年11月  | 翌月 ≫

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Comments (-) Trackbacks (-) スポンサー広告

バケットモンタージュ #41 パッシブ作成続行中

最近やってる作業
ひたすらパッシブスキルの処理書いてます

20161114222350.png
こんな感じのアイデアリストを元に片っ端から処理を作っては、デバッグしてチェック(緑のマーク)を入れていく・・
チェックを入れていくとシート上のカウントが増えていくので、着々とゲーム感覚で作業を進められるような気もするのは吉。
エラー出ずに効果適用されてることが確認できればOKとしているけど、たぶんもう一度は全テストしないとだろうなぁ。

20161118185012.png
処理はなるべくシンプルに、三行未満で書けるようにを心がけてる。
条件に合っていたら、ステートを付加する。能力値の増減なんかはステートで全て管理できるのでステートを作成すればいいだけ。

作ってるうちに結構あったのが、残体力の割合を判定するみたいなの。
こういうのもいちいち m.hp * 100 / m.maxhp < 25 ? ... みたいに書いてたけど、
関数を作って、m.hp_rate で求められるようにしたらかなり円滑化した!

他にも、パーティ内で最も〇〇なメンバーを取得する みたいなのも関数化したらすごく楽になった。
20161118190107.png

こういうのを色々定義していくことで、本処理が少ない行数で書けるようになり、ミスも減っていい感じ。
スポンサーサイト

バケットモンタージュ #40 スキル&エクセル&ソート

そろそろ通しプレイしてみたいという話をしていたのに、通しプレイするのにスキル必要 →
スキルデータめちゃくちゃやん → パッシブ全然足りない! → パッシブ処理も書かなきゃ → 普通のスキルも埋めなきゃ・・
で延々エクセルとにらめっこしていたこの頃。

スキルもモンスターデータのフレーバーテキスト埋めを並行しつつ、
このモンスターならこれがほしいなと追加しまくっていたのでどんどん増えていく始末。

20161104134544.png
我ながら凄まじい作業環境だと思った・・

しかしこのエクセルシートかなり高性能で、スキル情報を打ちこむと性能なんかの評価値をだしてくれる
例えば
消費MP10 ダメージ100
消費MP10 ダメージ50 貫通
みたいな基準を決めたとすれば、
「消費MP10」「貫通」を設定すればダメージ「50」の部分は勝手に算出してくれる感じ 便利!
ちなみにエクセルとツクールデータの互換については(過去記事:データ打ち込み)と、わりと最初の段階からやってた方針だった。

ソートも自在なので消費MP順とかにして比較評価したりできるのだけど、それなりに手間なので現状大雑把に決めてるだけ。

■メインソートの話
ソート自体も悩ましく、最初の頃は大分類、属性1、属性2、CP、消費MP・・ といった優先度で整列させていたのだけれど、
同じ格闘スキルでも属性毎にばらけたり・・というのが気になっていた

そこでスキル分類用のシートを別途で用意して、こちらである程度管理させるようにしたらいい感じになった。
20161113014347.png
(ついでにアイコン設定もこのシートで一括で行っている)

エクセルの日本語ソートは、フリガナ依存になるので、「打撃」というワードでも
フリガナが「ウツゲキ」「ダゲキ」とかで分かれてたりするとうまくソートされないこともあったので、
数値変換も兼ねてこの方法は良かった。(VLOOKUPとかCOUNTIFで言葉とIDをマッチさせる)

これで検索したIDをメインのソート基準に含めれば、アイコンが同じものが並ぶことになるので結構綺麗に並んだ気がする。
他にもスキル名の左の緑色は、COUNTIFでスキルマッチングシートを検索して、設定がちゃんとされてるか確認できる。
重複設定してると色が濃くなるので、一目でわかりやすい・・

あとはパッシブスキルを別シートで管理して、スキルシート側ではそれを参照させておくと、
パッシブスキルシート側の並び順に影響を受けず、スキルシート側で並び替えができるのがなかなか都合が良かった。


エクセル管理のおかげでかつてないほど膨大なデータを扱えるようになったけれど、その分結局作業量も増えてるような気も・・
これだけあっても1モンスターが覚えるスキルはそう多くもないように思える

初代ポケモンの技が165種類らしいのだけど、それであんなに豊富な種類があるように思えたのは凄いな。
本作はかなり無駄にスキルを増やしたかもしれない。でもやりたいもんは追加できるだけ追加する、無駄は増やしまくるのがぷらげー流だった。

バケットモンタージュ #39 範囲減衰補正

スキルを整理してたらまたシステムアイデアが一つ浮かんでしまった・・
ツクールのデフォルトの範囲攻撃は
20161102070637.png
こんな感じに種類づけられている。

範囲攻撃を設定する場合、敵ランダムで複数ヒットor全体攻撃しか選べない。
けれどたとえば
スキルA:倍率200% 範囲【単体】
スキルB:倍率80%  範囲【全体】
というスキルがあった場合、敵の数が5体いたら、スキルBの総倍率は400%になる

これならまだ許容範囲だが、このゲーム敵の数が場合によっては10体とかでる可能性もなきにしもあらずなので
そうなるとスキルBの倍率は800%となってしまうとスキルAとの落差が大きすぎる。
つまり敵の数が多いほど、範囲スキルの有用性が極端に上がってしまい、各個撃破の選択肢が薄れてしまう。

ついでにたくさんの敵が現れても与ダメージ効率が変わらないため、大群との戦闘に脅威性も高まらない。
例えば敵が3体の場合でも10体の場合でも、全体攻撃を使えば倒せるターン数は同じということになってしまう。

そこで2体範囲攻撃、3体範囲攻撃なんてのも作っていたのだけれど、全体攻撃に減衰補正をつけることに思い至った。
20160413154550.jpg イメージ的にはこいつですわ
例えば水噴射攻撃みたいな範囲攻撃があったする。
敵が1体のときは100%のダメージを与えるけれど、敵が2体、3体と群がっていた場合、水の勢いが遮断されて威力が減少・・
威力が80%、70%・・みたいな感じで落ちていく、みたいな。

どのくらいに設定するのがいいかと思って、補正値表作ってみた。
20161102070451.png
減算20%くらいなら、1体:100%、2体:80%×2=160%、3体:64%×3=192%・・ みたいな感じになり
範囲攻撃のメリットを失わせず極端に強くもならないバランスにできそう。

減算50%くらいにして、2体までは合計倍率が同じだけど3体以上巻き込むとダメージが減っていく、というのも面白そう。
これスキルごとに減衰倍率を設定するのも面白そうだ・・




バケットモンタージュ #38 パッシブスキル

20161031144842.png
パッシブスキル、いろいろ練ってました。

パッシブスキル・・いわゆる受動型スキル。
戦闘時にプレイヤーが能動的に使うアクティブなスキルに対して、習得しているだけで効果がある類のスキルという概念。
スキルCP制(関連記事:スキル適性システム)と組み合わせて、セットしているだけで効果を持つスキル群として扱う想定。

ネトゲではよくあるシステムだが、RPGツクールでパッシブスキルを作成する必要性は実のところない。
というのも、「項目を選んでメンバーを強化する」という仕組み自体は装備システムと一緒だからだ。
装備画面でやっても同じことである・・。
なので<どこで差別化するか>を考える必要がありそうだったのだが、特に考えていなかった。 何で作ったの!?

まあそれはおいといて、現状パッシブスキルは大別するといくつかに分類できる。
・常時発動型スキル
 常に適用されるスキル。単純に能力アップなど。
・開幕判定スキル
 戦闘開始時に発動されるスキル。序盤優勢に戦える。
・ターン毎に判定スキル
 ターン毎に発動判定があるスキル。ある条件になったとき、能力アップなど。
・ダメージ反映時判定スキル
 ダメージを与えたorダメージを受けたときに影響があるスキル。

これに加えて発動判定の種類が
・偶発的発動スキル
 独自の確率判定を行うタイプ。
・条件的発動スキル
 条件に合っていれば発動するタイプ。

などの組み合わせによって成り立つ。
だいたいこれだけの分類があればやりたいことは表現できそう。

例えば「底力」パッシブは、体力が低いときに闘争力がアップするというもの。
この場合は、ダメージ反映時判定&条件的発動となるため、
ダメージ判定ルーチンに条件を書いて、ステートを付与をすればOK、となる。

基本的に1パッシブにつき、対応する1ステートを用意する流れ。
常時系パッシブはスキル変更時にステートを付与すればいい。
開幕判定系や偶発系、デバフ系は戦闘中にステートを付与する形で効果が適用されたことを示せる。
境界が曖昧なのが条件発動系で、ターン発動や戦闘発動の分類でも、常時ステートにするか発動ステートにするのちょっと悩む。
例えば「敵より敏捷が低いとき、与えるダメージがアップ」みたいなのがあったとすると、
攻撃の都度に発動する方がいいのか、常時表記されているだけでいいのか・・ どちらにもできそうなので・・ その辺が迷いの種。

まぁ戦闘中に行うアクションは基本的に攻撃をするか、補助をするかしかないので、
たいていはダメージ反映に処理を追加していけば良さそう。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。