Pluglog

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

スポンサーサイト

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

バケットモンタージュ #42 メニュー欄不足

テスプレしてて思った点 また浮上
RPGでダンジョン探索してるときに、装備アイテムを見つけたりするとメニュー欄を開いて装備変更・・
というのはよくある流れだけれど「メニュー欄で装備変えられるのは果たしていいのか」を、わりと初期の頃考えていた

というのもボス前とかで装備の変更、とかもできてしまうため、場合によってはビルドを変更できてしまう。
それよりもダンジョンに行く前にボスまで含めたビルドを考えて、いざダンジョン内では戦闘のみに意識を注ぐ。
・・という方が理想なんじゃないかと思って、メニュー欄の削減も兼ねて装備コマンドを外していた。
そして、装備は街とかの拠点マップや、合成後に行えるように変更ポイントを配置してみた。

しかし実際にテスプレしてると、アイテム手に入ったぞー! 装備するには・・→拠点に戻らないと・・
これが結構めんどい
やっぱし装備画面はメニュー内に置くべきか・・と再考しはじめる結果に。
あと前作った作戦コマンドを管理するメニューコマンドも必要になってた。

20170116092345.png
これが・・

20170116091759.png
こうなる・・
(この時点ではまだ装備の方は考えてなかったので実際は、図鑑削除してアイテムとスキルの間に装備か)

なんかコマンド5列になるとごちゃごちゃ感が増えてちょっとなあ
ショートカットも初期位置Z、ASD、QWShiftCtrlで8個まで1ボタンで飛べたけど、5×2の10コマンドになるとそれも・・

図鑑は詳細画面からも飛べるので、1ページ目から見たいときはアイテムから・・とかでもまだいいが
作戦画面はどこかに置きたい・・スキル画面か設定画面から飛べるようにしても良さそうだけども・・
あ、パーティ画面から飛べるようにしたらいいかもしれない
スポンサーサイト

バケットモンタージュ経過

年明けてから全く書いてなかった。あけおめす。
12月くらいにデュエルリンクスにハマりちょいと停滞しつつも、パッシブとソーサリー(カスタマイズ要素的な装備)
の処理を一通り終わらせたのでテスプレ並行しつつイベント補強とデバッグしている段階・・。
テスプレといっても初のまともな通しプレイなのでバグやら物足りない部分やらが次々浮上してきて前途多難。
Elonaでいうとスキルやモンスター周りのデータはあるけど、ヴェルニースとかの街が最低限の施設と骨格しかないレベル。
あのゲームほんとシステムやテキスト、イベントが膨大で・・なかなか追いつける気がしない。

成長バランスなんかも完全に机上の空論でやってたので、実際やってみると思いのほかレベルの影響が大きすぎた!とかあり、
HPの上昇率を5分の1くらいに変更したり・・結構大きな変更だけど、
ツクールのデータベース上のHPで管理してないので、スクリプトの計算式を変えるだけで済む。 そこは良いところ

しかし経験値バランスが格上と戦うと大幅に入手経験値が増え、案外さくさくとレベルが上がってゆくがうーんこれでよいのか・・
今作は経験値計算式をデフォから一新して自作したので、狙い通りのバランスになれば良いのだけれど。

20170127143430.png
我ながらこの階差数列かなんか組み込んでたので、これいじりなおすのめんどくさし そして経験値のインフレが凄まじい。
本来こういうのは敵の取得経験値に補正をかけて入手量を減らし、経験値を%表示する方がスマートなんだろう・・
けどまあインフレするのも面白いかと思ってこんなんにしてるが・・もうちょい緩やかなインフレにしたい気持ちもある
そこらへんのバランスで毎度悩むうう

そしてテスプレしてて、いつだかの「技能の習得」が、合成システムと相性悪いことに気づく。
1モンスター1技能だと、2体合わせたときに1つ失われるから・・再度付け直しとかになると面倒。
技能習得条件をモンスターを持ってくることだけにして、モンスターに依存させない方がストレスフリーになりそうだ。

でも技能的役割として、パーティに採用するっていう要素も面白そうではある。
例えば火の地域に火が苦手な魔獣系モンスターを技能のために連れて行かないといけない・・
うまく属性を軽減できるやつを合成で作りだせないか・・ とか特殊な理由で攻略方法が生まれたりしそうだし
何の要素もないと、同じモンスターで埋め尽くすパーティが最適解になりかねないのが・・

装備欄扱いでなく、習得数制限なしのアビリティ枠みたいなのを作ってしまえばいいのかなあ

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

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


バケットモンタージュ #37 スキルマッチング強化

パッシブスキルの実装に燃えているこの頃。
そんな中、いろいろ試行錯誤してるうちに以前のスキルマッチングよりさらにいい方法に行き着いた!

20161031134750.png
それがこんなん
注目すべきはPriorityを設定した列で、ハッシュに優先度を分けて結果を代入していく形式にした。
以前のやり方だと、一番最初にマッチした結果を返すだけだったので、習得スキル数があまり決められなかった。
しかし、今回のやり方では候補スキルをあらかじめいくつか保持させておけるので、
習得スキルが少ない場合は増やしたり、多い場合は削ったりする余地ができた。

20161031134902.png
ちゃんとソートするとこんな感じでそのままスクリプトに貼っつけられる。
エクセルとスクリプトの合わせ技!

20161031134919.png
そして、0~4段階で優先度の高いスキルから覚えていく仕組みができた。
優先度の付け方は、
タグ指定が3つあるものor固有名指定があるもの → 0 (最優先)
タグ指定が2つで、2列目にタグ指定があるもの → 1 (種族タグ×2)
タグ指定が2つで、3列目にタグ指定があるもの → 2 (種族タグ+付加タグ系)
タグ指定が1つで、1列目にタグ指定があるもの → 3 (種族タグのみ)
タグ指定が1つで、1列目にタグ指定がないもの → 4 (付加タグ系のみ)

といった具合。
ようは複雑な指定があるほど、専門的な種族とみなして特有のスキルを覚えさせ、
指定がすくないやつは特徴が薄いので、汎用的なスキルを覚えさせる感じ。
大雑把にこれで決めておいて、場合によって固有名指定で追加していける。

エクセルのいいところはソートできる点で、このシートの場合、
条件タグ1,2,3でソートをかければ、種族毎にどんなものを作ったか一覧できるし、重複チェックもできる。
さらに分類でソートすれば、似た設定のスキルを抽出できる。
他にも制作促進用に、常時型/発動型/戦闘トリガー/敵にデバフ のフラグを作っておいたので、
これでソートすれば、実装のときに同じような処理をまとめて作成できるという算段。

パッシブの話は次回・・

Elonaに学ぶ、ゲームの意外性


最近ニコニコに上がってたこれをなぜか見て、Elonaの面白さを端的に表現した動画だなあと思った。
予測を裏切ることが次々に襲い掛かってきて、プレイヤーが翻弄されるラッシュ
・チュートリアルで肉をもらったぞ!→人肉やんけ
・腹が減る→食い物探して食ったら呪われてる
・ペットを連れまわしてたら→井戸に落ちて即死
・プチばっかで弱いぞ→こんにちはスライム
・なんか風が吹いてる→ほっといたら凄い勢いで病気が・・

プレイヤーが理解していけば、対処できることなのだけれど初見にとっては理不尽な罠
これは不親切と言い換えることもできるのだけど、こういう要素がプレイヤーの間では苦労談としてあるあるネタになったりする
ゲームは苦労があって、それを乗り越える挑戦があるから輝かしい思い出になるのかもしれない

~~~

自分のゲームを振り返ると、こういう要素がまだ足りてないかなーという気がした。
この手の仕掛けで最もインパクトがあるのは、やっぱり死・ゲームオーバーが絡むこと。
単純なものでは調べると死ぬイベント、いわゆる即死トラップ。これを設置しまくるのが死に覚えゲー。
ただあまりに単純すぎるものは理不尽すぎてくそげーになってしまう・・この感覚の違いはどこからくるのか・・

考えつく一つの要素は、プレイヤーの注意力次第で回避可能かどうか・・
プレイヤーの行動によって引き起こされる結果であるか、ということかもしれない
ようは制作者側からの意図の押し付けでなく、プレイヤーが選択した結果だと認識できるか否か

Elonaの井戸にペットボッシュートなんかはまるで予測不能だけれど、
ペットを井戸に乗せなければ回避できるのだし、情景をイメージすればなるほどそうなるのかと妙な納得感も生まれる
行動回避可能か&納得感 が大事なのかもしれない・・

納得感をもたらすには、ゲーム世界へのシンクロが必要になるのだろう
行動によって引き起こされることに、ゲーム節理としての統一感、そして想像力をもたせねば

常識を少し外れた意外性、そういうのがプレイのスパイスになりそうだ
わりと質素で落ち着いた作品になってきてる気がするので、驚きの要素も少し追加していきたいところ・・

バケットモンタージュ #36 戦闘インフォと状態異常

20161024020533.png

かつてのゲームは状態異常がわかりにくいということに定評があった私のゲームたちでした
これまでは、キャラ名の横とかにつくちっさいアイコンで判断するしかなかった状態異常・・
今作はついに、戦闘画面で敵・味方の状態を見れるコマンドを追加!
とりあえず現在は状態異常の説明だけだけども、他にもステータスや属性も見れてもいいかも
これで心置きなくステートをつけまくるゲームにできるな!

持続と書かれている部分は残りターン数と、解除確率
これはツクールのデフォ仕様で、状態異常それぞれに設定できる
5ターン、20%と設定した場合 5ターン持続したあと、20%確率で毎ターン解除判定が行われる模様
これ5ターン毎に20%で解除判定を行うのかとずっと勘違いしてた・・

■状態異常耐性で思ったこと
RPGの状態異常耐性って大概〇%確率で抵抗 とかなんすよね
でもこれって、90%耐性がある場合でも残り10%を引いてしまうと、実質的に耐性0%と同じ不利益を被ることになっちゃうんですよね
即死とか麻痺みたいな深刻な状態異常だと、そのリスクはけっこう大きい
結局のところ耐性100%にしないかぎり運ゲー要素は残ってしまう

だから今更ながら、状態異常耐性を単なる確率判定じゃなくて、
蓄積値とか持続ターンを減少させる効果みたいにしたら良かったかもなあと思いつつ

・スタンを50%確率で防ぐ
・蓄積値が100になったらスタンするが、その蓄積値を50%低下させる

この二つはたぶん効果の大きさとしては同程度なのだけれど、
前者の場合は、スタンするかしないかは運次第
後者の場合は、いつかスタンはしてしまうが、それを遅らせる
といった意味合いに変わる・・戦術的に思考を組み立てやすいのは後者だし、耐性に着実な効果がある点はよさそう

・毒を50%確率で防ぐ
・毒の持続ターンを50%減らす

とかね

重大な状態異常・・たとえば即死系に関しても、死の宣告みたいな蓄積値が一定に達すると即死する感じで表現できる
まあこれは気が向いたらそういう方向に組み替えていってもいいかなーと思っている
とりあえず戦闘インフォの表示ができるとこまでが重要だったので置いとこう・・

■展望
NPC設定、ダンジョン作成、スキルテスト・・まだまだやることがいっぱい・・
一通りできたら・・そろそろ通しプレイ確認やらないと・・ イベントテストは作ったとこだけやって通しでまったくやってないからなぁ
そこからバランス確認と見つかるであろう大量バグつぶし、各マップのブラッシュアップ、通しOKだったら打ちかけてた小ネタシステムを加えてって・・
本編完成したらEXダンジョンをつくりーの、最終通しプレイして・・ 全部OKになったら身内テストしてもらいーの・・

うーん、絵に例えるとラフが80%できたくらいかな!
これから線画と色塗りという名のゲームバランス取り・バグ修正&要素の追加が待っているう!
ラフに時間かけすぎぃ!下書き壮大にしすぎたな・・ほぼシステム面だけど
もう1年もかけたくはないのでそろそろ完成を見据えたい

バケットモンタージュ #35 さくせんコマンド

さくせんコマンドつくったったー
ドラ〇エでいうところの「ガンガンいこうぜ」とかのやつ
モンスターゲーだし命令だせるコマンドはやっぱりほしかった。

20161014000853.png
作戦はFF12のガンビット風に詳細設定可能に!
作ったルーチンはいくつも登録できて、メンバー毎にどの作戦を使用するかそれぞれ変更できる感じ

命令行は好きなだけ増やせる
変更箇所は「スキル選択」と「発動条件」の2項目、+各数値設定の2項目、合わせて4項目
設定例は・・
「範囲」「広域」 「敵の数」「>3」
とすれば、「敵の数>3」 のとき、 「範囲が広域」のスキルを使用する という感じの命令になる

20161013235653.png
とりあえずの動作確認、全項目試してないけども一応いい感じに動いてるみたいなのでOK!

これ作るのは結構苦労したものの、構造自体はわりと単純だったりする。

for文でコマンド行を回し・・
 コマンドx行目の発動条件チェック、falseなら次へ
  for文で習得済みスキルを回し・・
   コマンドx行目のスキル選択にマッチする場合、候補配列に追加
   ...
候補配列が空でない場合終了

スキル候補が複数ある場合は、ランダム使用
スキル候補が0の場合は、通常攻撃を行う


といった具合で、せいぜい2ループで説明できてしまう程度の内容
どちらかといえばデータの保持のさせ方や、ウィンドウ回りの設定が面倒だった・・

もっと後回しにするつもりだったシステムだけど、なにゆえこれに着手したかというと
戦闘&スキルバランスをそろそろいじれるようにしないとマズイ気がして、戦闘AIはそのバランスに関わってきそうだったため。
これにプリセットいくつか用意して敵にも適用させたり、作戦内容をランダムに設定とかもなんかできそう。

スキルデータはある程度、打ち込まれてるものはあるけれど、
パッシブスキルとかの特殊な設定を完全に放置してるので作業量がまだかなり残ってそうな部分。
どこにどんな敵がでる、どれが何を覚えるとかはぼちぼち設定されてるけども、実戦テストまったくやってないという。
敵の強さはある程度一括設定できるので、バランスは後からいくらか変えられるが・・

~~
スキル周りはあとアニメーション設定もまるで手をつけてない・・
アニメーションって見慣れるとオフでもいいやってなるようなものだけど、やっぱりないとないで味気ないのでほしい
しかし1個1個こだわって作り出すとやたら大変になってしまうというのがアニメーションという課題だったりする
アニメ設定も設定タグから自動生成みたいにしたいワー 
ファイアスラッシュ → 火+剣 → 火のアニメーション+剣のアニメーション くらいなら頑張って調べればできるかも・・

箱庭フロンティア

ScreenShot_2016_0921_19_56_24.png ScreenShot_2016_0916_15_52_28.png ScreenShot_2016_0922_16_58_56.png

息抜きがてら久しぶりにふりーむ!漁って「箱庭フロンティア」で遊んでました。
ウディタ製なのもあってか「片道勇者」風のゲームデザイン。
職業を選んで適度な時間でワンプレイでき、死んで覚える不思議なダンジョン風なゲーム。

結構シビアな難易度で、残り日数が0になると問答無用でゲームオーバー。
大風が起きる前にフロア移動すれば大丈夫とか、闇に呑まれるまで大丈夫とか、そういうのがない。
ラストまである程度計画立てて進む必要があり、基本的に<1行動が回復する手段のないリソースを消費して行う>ことになる。

▽ちょい攻略▽
すごろく風にサイコロを振って出目によって進めるマスが決まるので、運ゲーかと思いきやちょっとしたコツはある。
まず奇数目の場合、奇数マスにしか止まれない、偶数目の場合、偶数マスにしか止まれない法則がある。
けれど開けた地形ならぐるぐる回ったりして、出目よりも少ない距離のマスへ進むことができる。
なので行きたいマス目がある場合は、そこに隣接するようにすれば、1,3,5のどれがでてもいけるので1/2の確率にできる。
例:★現在地、■宝箱とした場合、3がでたとき、5がでたときのパターン
■□□     ■←□     ■←←
★□□     ★↑□     ★→↑
これに偶数マス進む靴があれば100%になるので、そういうことを考えていけば止まりたいマスに止まる確率は高められる。

~ステ振りと戦術~
どのステもけっこう重要。職業によって伸ばしやすさが変わる。
HP:振っても回復はしないので物理耐久面に限っては防御より優先度は劣る。
   回復手段があるなら防御と等しいかそれ以上の価値になる、実質的に魔法ダメージへの耐久も増えるので安定感が高まる。
攻撃:物理特技を使うならこれを振っていないと威力が全然伸びない。
   素早く敵を倒せればその分被弾も防げる、攻撃は最大の防御。
防御:序盤は特に重要、敵の攻撃はやたら痛いので振ってないとすぐ死ぬ、生存に直結するので基本多めに振りたいステ。
精神:序盤はいらないが、魔法を使う敵が出始めたら防御と同じ価値になってくる。
敏捷:敵より早く動く、より多く行動することも生存に大きく関わるので振れるだけ振りたい。効果量は他よりわかりにくいが影響は大きい。

どれも振るのがベストだけれど、戦術によっては振らないで進む方法も考えられる。
①防御魔法型:魔法が攻撃に依存しないことに着目して、攻撃を捨てて魔法や状態異常をメインに戦う戦法 鉄壁の耐久で安定感。
②攻撃特化型:攻撃と敏捷をひたすら振りまくり、相手に行動される前に倒す。攻撃と敏捷が十分にあれば可能。

騎士や魔法使いなら①、格闘家や盗賊なら②が相性の良い戦法になるはずだが、
実際には①は終盤火力不足に悩まされる、②は倒しきれないときに即死するリスクがこわい とか欠点も

ScreenShot_2016_0916_15_23_09.png
特性特化型なんてのも面白い。 これなんかかなり無敵感があった。

~特技について~
-物理
パワーナックル/アイアンフィスト:回数が多いので、攻撃を振ってるならかなり役立つ
居合斬り、鉄槌:両者とも威力は十分だが、回数が少ないのとウェイトが大きいのが欠点
影払い:ウェイトが短く、回数もそこそこで使い勝手がいいイメージ
せっかち斬り:即時発動なので相手の行動の手前で使えば連続攻撃できたりするのが利点
捨て身:威力、ウェイト、使用回数どれも優秀、倒しきれる相手ならばデメリットが気にならない
痺れ刃、パニックハント:単発で強敵を無力化する手段、単体相手にはかなり優秀
なぎ払い:全体攻撃できるのはいいが、攻撃がある程度ないと倒しきれず・・
ダンジョンで手に入る伝説級の特技:だいたいめっちゃ強いが回数が少なめだったりするのが欠点
-魔法
マナ系:使用回数が多い、特技の入れ替え機会が少ない旅のとき重宝する
フレア系:マナ系より威力が高め、使い勝手が良い
ウィンド系:ウェイトが短め、先手を取りやすいのが利点
ダーク系:威力がかなり高い。ある程度の敏捷があればこれでワンパンできることも多いので結構オススメ
フリーズ系:全体攻撃でバランスが良い
セント系:回数は少ないが、全体攻撃で出が早い いざというときあると強い
ライフェル系:HPを減らす戦術の場合は、ダーク系を超えるダメージを望め、出も早いのでかなり強力
フル系:回復できる ただし戦闘中のみなので相手の攻撃が激しい場合は追いつかないことも・・
リフール:持続回復 泥沼戦闘の場合はわりに活躍する
オフハンス/ディフハンス:強化のためにウェイトがかかるので少々扱い辛い
-状態系
スリープ:もっとも素早く無力化できるが、その分効果量が心もとない
サイレンス:魔法や特技を使う相手にはかなり効果的だが、それ以外に微妙なので汎用性で劣る
パニック:かければ1体無力化+運が良ければ倒せるのでかなり頼れる ただし効果時間が短いので過信は禁物
パラライズ:長めの時間無力化できるので、余裕を持ちやすく信頼度は高い
-特殊能力
毒の扱い:毒沼や王城で搦め手を選べば入手しやすい 発動率も高く効果も期待できる
      毒状態は敵が行動する度にダメージを与えるので、自分の防御上昇、回復などと相性がいい
眠れる帝王:たまに眠ってしまうデメリットはこわいものの、結構有用
先手必勝/背水の陣:状況を整えれば、ダメージをかなり伸ばせる
守り固め/警戒:ダメージを減らす手段 消極的な効果なためこれに1枠割くかが悩みどころ

~アイテムについて~
日数消費なしに行動できる点が非常に有用
逆に言えば、アイテムを取るために日数をかけてしまうと本末転倒
○マスの靴系:日数消費せずに確定ダイスをふれるようなもの、しかも安いのでなるべく買い込みたい
         偶数靴は偶数マスにしか止まれないが、奇数靴は偶奇をずらせるのが利点
堅実家の靴:○マス系の上位互換みたいなもの通路系のマップ、ダンジョンでは重宝する 温存しすぎるのが欠点
倍速の靴:使用回数が3でしかもダイスが増えるので、日数短縮+3以上の効果を見込める 場合によっては〇マス靴より有用
イカサマの靴:目押しはかなりゆっくりなので好きなところで止めれる ○マス靴の上位といっていい 
宝探しの翼:これ一つで宝箱2個分&移動短縮になるのでオススメ
寂しがりの翼:街に移動すれば道具屋でまたアイテムを買い込めるチャンス
祈りの翼:クリスタルはちょうどマスに止まる必要がないので、序盤は売ってもいい程度のアイテム
ぶっとびの翼:日数消費なしでランダムイベントを起こしたい用みたいなもの 他に移動系がないならほしい程度
ブックマークの翼:クリスタルのそばで始まった時に登録して戻ってくる用? 使いにくい
           登録した後に、フロア移動してから使うとマスのないところにいけたりする・・(バグ?)
回復薬系:戦闘時にも使えるので、HPを減らした状態をキープしているときなどは1つは持っておきたい
      頑丈や元気は戦闘が多そうなフロアで使い切り、
神頼み、神速の杖:強敵が現れた際の保険になる、戦闘に不安がある場合は持っておきたい
怒りの杖:特技との組み合わせでノーダメ勝利を目指せるが、単体ではそこまで使えない
経験の杖:EXPを増やせるで非常に有用だが、使うのを忘れがち
ギルドの書、VIPチケット:リサイクルが来たときに、特技を全部売り払ってこれを使うとおいしい
浄化の書、創世の書:使いどころが限られているので基本売る

※戦闘アイテム系は使用時にバフのターンも進むっぽいので、使うタイミングに注意 ・・リフールとはコンボできる

~地図の選択について~
個人的に面白いなーと思ったのは「旅商人の地図」。
このゲーム、特技やアイテムの使用回数が減っていても買い取り価格は同じというところがみそで、
強力な特技を使いつつ、使用回数が減ったものを下取りしてもらって新たに買いなおすことで損せず繋いでいくことができる。
HPをわざと減らしたり毒の沼に突っ込んだりして、パッシブ系のスキルを覚えては売ることもでき(買い取り額も高い)、
戦闘をしないでもどんどんEXPを生産できるのがまさに旅商人的で面白かった。
ScreenShot_2016_0918_14_09_42.png
全Sキャラも作れちゃう!

一方で超絶難易度で苦戦しているのが「名もなき物語の地図」。これ頭おかしいくらい難しい。
特技の枠が少ないために稼ぎプレイがし辛く、職ボーナスも地図ボーナスもなくステも伸ばしにくい。
ギリギリやりくりしてなんとか中層までいくも、ニワトリに突かれて何度昇天したことか・・
防御特化にしても耐久が追いつかず、敏捷振っても攻撃力不足。これの攻略が最後の難題になりそう。

▼総括▼
遊びやすくて取捨選択をいい具合に悩める楽しいゲームでした!
ある行動に応じて突然能力を覚えるところ、搦め手で窮地を乗り切ったり、道具をやりくりして状況を良くしていったりが特に面白かったです!
不満要素を挙げるならば・・
・日数不足のゲームオーバーがかなり悔しい点
 ゲーム始めた最初のころはとくに、日数調整の加減がわからずかなり焦らされる感もあり、
 もっと探索したかったのにー、とかあと数歩足りずで・・みたいなことがよくあった。
 まあそういうルールである以上当然なのだけど、戦力的に整えていった面が戦力的に崩される分には納得がいくが
 日数で終了するとなんとなく理不尽に終わらせられてしまうような気分になる。
 最初らへんならEXPを消費して神のご慈悲でエクストラデイを獲得!みたいな救済措置があってもいいかなと思った。
・ラストで全力を投じれない
 最後にする冒険者登録は特技の回数なども記録されるので、
 ラストの方はただただ温存して、クリスタルすぐ移動みたいな感じになる。
 なんとなく踏破した!というより逃げ延びた!みたいなクリアの印象になる・・
 なのでラスト移動時にボスマップでボス戦、ボス戦時使ったスキルは全回復してクリア時登録される みたいなのが良かったかも。
・探索パート作業ゲーすぐる
 初回挑むときは結構やりがいがあるけども、一度クリアできたら二度目以降はほぼ確実にクリアできるので・・
 地図がランダム入手なので何度か行きたくなるけど完全に作業ゲーになってしまう。
 一度クリアしたパーティは参加できない、とかいっそ自動化してほしかった勢い
・慣れてくるとステ振りがちょっと手間
 毎階層じゃなくても良かったんじゃないか、みたいな。
 たとえば5回層毎や、そういう施設のマスに止まった時のみ、とか。
・階層ごとに手に入るアイテムにバリエーションが欲しかったかも
 敵の種類や、地形は変わるけど手に入る特技やアイテムが変わらないのがなんとなく味気ない・・
・道具屋を上に持ってきてほしい
 街に止まった時にだいたい利用するのが道具屋で(宿屋って人もいるかもしれないけど)
 カーソル動かすのにたまに失敗して宿屋選んでしまうことが・・これもうただのワガママだけど
・隠し職みたいなのほしかった
 竜騎士とか・・俺Tueeみたいな職が最後にあっても良かった

こんなところだけど、もちろんゲームにハマったからこそでる要望点みたいなもの。
久々のプレイ感想日記でした。

不確定イベントの出現方法

ツクールでマップ上にキャラやシンボルを出現させるためには、俗にいう「イベント」を設定する。
そのマップで起きるイベントは、あらかじめ設定しておかなければならない。

しかし、ランダムな位置に出現させたり出たり出なかったりの不確定要素も加えたい!
そう思うことはよくあっただろう。
これを擬似的に表現する手段として一つの方法は・・

1.イベントページ1を並列処理にして、マップに入った瞬間に乱数を判定
2.判定OKならランダムな位置に移動させセルフスイッチAをON、NGならイベントの一時消去を行う
3.セルフスイッチAのページに本処理を書く


まずはこれでマップに入った時に、特定の出現率でランダムな位置に現れるような仕組みが作れる。
ただこれだと、次に入った時にセルフスイッチAが入ったままなので、再度現れることがなくなってしまう。

そこで、マップに入ったときにセルフスイッチAをOFFにする仕組みが必要になる。
リフレッシュ判定用のスイッチを一つ用意して、マップ移動時にONにしておき、
そのスイッチが入ってるとき各イベントで並列処理でAオフにさせていく、なんてやり方もある。

for i in 1..$game_map.events.values.size
next if $game_map.events[i] == nil
$game_self_switches[[@map_id, i, "A"]] = false
end


スクリプトでやるなら↑のようなものを実行して、一括でリフレッシュさせることもできる。

これで「マップに入る度に出現するイベント」のギミックができた。
けれど、敵シンボルなどは出入りする度に一定数現れるのでもいいけれど、
宝箱など、プレイヤーメリットになるものは出入りだけで単純に出現してしまうと、
今度は出入り口に陣とって行ったり来たりするのが効率の良い稼ぎ方になってしまう。
探索感が損なわれてしまうので、それは個人的にあまり望ましくない。

なのでさらに、一定ターンの行動数毎にリフレッシュフラグを立てるという仕組みに行き着いた。
これならばフラグが立っていない状態でマップ移動を行うと、宝箱の出現判定で減ることはあっても増えることがない。
ある程度探索してから次に進む方が効率の良い宝箱収集になる、という目論み。

前作はこんな感じの方法を駆使して作られていて、エディタ上では適当に置かれていた模様。
20160920173758.png



さて・・ここまでは、前作までの方法にすぎない。
なんと、イベント自体をスクリプトで追加することができるようになってしまった。

20160920181922.png
部分的にはこんな感じでできた。(もしかしたら何かしらまだ不具合はあるかもだが)
ヘルプのリファレンスを読み込んでいけば、大抵のことは実現可能なようだ。

こうなると何が嬉しいかというと・・
20160920182551.png
もうこのマップにタグ設定するだけで敵が湧く・・
各種設定はスクリプト側で一括修正すればいいので管理も楽!好きなタイミングや間隔も調整しやすくなった。
エンカウント欄をメモ代わりに使うのはちょっとオススメな方法だったりする。

文章自動生成

Elona制作者さまの新作『Elin』開発中だそうで、ひえーそんな大物がくるまえに自作完成させたいですね
グラフィック面めちゃくちゃクオリティあがってますけど、サウンドにElonaの片鱗が見えてニヤリ

今日はちょうどランダムクエストと、文章の自動生成について考えていたのでElonaに学ぶところがありました。
基本的に"ランダムに出現する何か"については、メッセージもランダムで作成したい!と思うところがあります。

ランダムメッセージにハマったきっかけ・・あれはそう・・RPGツクールGB・・(回想モード)
あれにはイベントコマンドにランダムメッセージというコマンドがありまして・・
それを設定しておくと、話しかける度にキャラグラフィックに応じてあらかじめ設定されたメッセージがランダムに変わるという。
なんだかそれにわくわくしたものでした。
いくつか定型文を用意して乱数で分岐すれば可能なので、ツクールとしては初歩的な処理でした。(GB乱数なかったかもしれないけど)

しかしPC版ツクールでは、より高度なことができます。
文字列の配列を用意して、その中からランダムで抜き出したり、文字同士を足したりもできるのです。

a = ["やぁ、","こんにちは、","ハロー"]
b = ["元気?","調子はどう?"]
$game_variables[1] = a[rand(a.size)] + b[rand(b.size)]


てなかんじでスクリプトを組んで、変数1に代入しておいて、文章表示で\v[1]とやれば・・
「やぁ、元気?」「こんにちは、元気?」「ハロー元気?」
「やぁ、調子はどう?」「こんにちは、調子はどう?」「ハロー調子はどう?」
これだけで3×2の6パターンの文章が自動生成できちゃうわけです。

これを利用して、前作FuhrungWeissでは
ライバル「URYEEEEEEEEE!私は魔法少女の下僕だよ。
     パンデモニウムを狩りにきたんだ。
     暇だから、ジハードする?」
みたいな文章を生成していたわけですね。

今作ではさらにこれを体系化して、もっと法則性をつけたり汎用的にできたらいいなと思ってます。
例えばクール属性を持ってるキャラなら、落ち着いた話し方や「……」がでやすかったり、
楽天的なキャラなら元気のいい感じになったり、みたいな。
人物を示すワードや、場所を示すワードなどのリストをあらかじめ作っておいて、使いまわすとか。

Elonaの掲示板依頼なんかは、そのへんスマートにやっているので参考になります・・
dataフォルダの中にboard.txtってのが入ってるんですよね
20160912233347.png
これを見ると、置き換えようのワードがまず最初にいくつか定義してあって、
{ある}はある、ありますのどちらかにランダムに振られるようになっているようです。

20160912233341.png
そして実際の依頼内容はこちら、定型文を主体に依頼対象や語尾などが埋め込みワードで変数化されてるわけですね
これは編集するときにも非常にわかりやすい書き方で、拡張性も高くていいですね!

Rubyでも式展開

x = "変数"
"文章中に#{x}を埋め込める" # => 文章中に変数を埋め込める


ってなことができるので、似たようなことはできます。

{ある}をある、あります に変換するような方法の場合は
a = ["ある","あります"] のような配列を作って、要素をランダムに抜き出すか・・
a = "ある,あります".split(/,/) のように区切り文字を決めてsplitを使って同様に配列化する方法がとりあえずのところ。
後者の方が編集は楽できそうだけれど、結局配列化するならsplitの分処理が増えてしまうので、負荷的には前者の方がいいかも。
splitの方法に気づかず、そもそも前者で作ってたのでまあこのままでいいかなって感じですが、
もっといい方法あれば知りたいなー なんてことを今日は考えていましたとさ。

バケットモンタージュ #34 技能の習得

新システムよー
モンスターゲーを作るにあたって是非にやりたいと思っていた要素
モンスターの能力を借りて、冒険の役に立てる技能を使うことができるシステム『技能習得』!

20160906214954.png
特定のマップにいき、技能を教わることで・・

20160906215000.png
能力を習得できる!
習得できる技能はモンスターによってそれぞれ適性がある。

これはポ〇モンでいうところのひでんマシン的なのがほしかったため
モンスターの特性を戦闘のみでなくマップ上でも反映させると、頼ってる感が増すのでやりたかった。
ただひでんマシンは個人的に嫌いな部分がある。
4枠しかない技のうちの一つを占有した上に、初代は忘れさせることができないところ。
これは習得技の自由度を狭める要素になってしまったと思う。

なので自分の場合は、スキルとは別枠に習得できる技能という扱いにしてある。
ついでにそこまで必須なわけでなく、サブ要素的なものに留めようと思っている。
〇〇の技能が必須 ・・という風になるとメンバー選択の楽しみが損なわれるからだ。

ちなみに現在ある技能ネタは・・
『跳躍』:離れた1マスを飛び越えることができる (魔獣系モンスターが習得可能)
『鍵開け』:施錠された宝箱を開錠する際に、中身が少し良質になる (凶賊系モンスターが習得可能)
『岩持ち』:進路を邪魔する岩をどけることができる (闘士系モンスターが習得可能)
『火付け』:たいまつに火をつけ、暗闇をわずかに照らすことができる (火炎系モンスターが習得可能)
『草刈り』:道端の草を刈れる (剣系モンスターが習得可能)
『土掘り』:その辺の土を掘れる (爪形モンスターが取得可能)
『採集』:その辺に生えてる草を採集できる (植物系モンスターが習得可能)
『噴射』:すごい勢いでダッシュする (機械系モンスターが習得可能)
『感知』:最も近くにいる敵の位置を知る、また敵の位置をミニマップに表示させる (鱗肌系モンスターが習得可能)
『発見』:隠し通路を発見する (精霊系モンスターが習得可能)
『潜伏』:存在感を薄くして、気づかれにくくする (霊気系モンスターが習得可能)
『誘い』:敵を引き寄せる (悪魔系モンスターが習得可能)
こんな感じ
天使系とか物体系、ドラゴン、水棲系、氷系、雷系、飛行系あたりがまだ決まってない まぁ全部に設定する必要はないんだけど
何か面白そうなネタあったらよろしくです

しかしそれでも同種パーティを組もうとすると習得できる技能に偏りが生まれてしまうので・・
不利益にはなってしまうのだが・・ その点は少し悩ましい


バケットモンタージュ #33 記憶の地図

20160829093902.png
そういえばこんなもんツクった

自由なタイミングで現在位置を記録して、そこに行き来できるというもの []内はx座標とy座標
マップがそれなりに色んな地域があるのでルーラ的なものはいずれ必要になるとは思っていたけど位置設定するの面倒だったし、
いっそのこと自分で設定できるようにしたった方が楽なんではないかと・・
テストプレイも捗りそうだったしなかなか良さそう
こういう変なサブアイテム作るのも結構面白いっすね
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。