Pluglog

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

Win10に移行して

1月のことですが長らく愛用してたWin7からWin10に移行したんですよね
サポート終了のすっごいギリギリまで使ってたんですが
制作環境とか変わるのいやだなーと思ってだいぶ渋っておりました
20200115151710.png
最後のデスクトップの様子(今もUI以外ほとんど変わってないけど)
結果的には使い心地はそこまで変わらず良かったなーと

まあそれでも移行したときに戸惑ったり設定したことのメモ
・CapsLockキーをCtrlキーに設定してたのがリセットされた
 まあこれはPC変えるたびにいつものこと…
 CapsLockキー押しやすい位置にあるのに基本使うことがないし
 間違って押すと面倒なだけなのでCtrlに変えてる

■UI関連
・スタートメニューでよく使うものを左上にでるようになってたけど
 それが右上に来る感じになった、まあこれは慣れか
 20200216195958.png
・スタートメニューの設定→プライバシーあたりで色々いらないやつがあったのでオフにしまくる
・高速スタートアップとかいうのも調べると微妙そうだったのでオフにしたりとか
・ウィンドウ透明化みたいなのもあったのでこれもオフ
・デスクトップのアイコンが前は下の隙間にいれれたのが無理になった
 アイコン幅をレジストリでいじれるけど変えてもあんまりうまくフィットしなかった
・スタートアップで起動したエクセルとかが下の方に隙間空いてやだった
⇒Windows10 ウィンドウ位置記憶するも開くと隙間が空く
https://blog.goo.ne.jp/wind0ws/e/ebf492ba48135f5a6bd799858e3d1ea4
これで直せたっぽい
・窓切り替えアニメーションオフにしたら非アクティブからアクティブしたとき黒塗りがちら見えしたりしてちょっと気になる
・ウィンドウが全体的に丸みがなくなり平坦で無機質な感じになった
 慣れだろうけどWin7のが落ち着いたなーと正直なところ
・通知ポップアップが以前より幅とってじゃまに感じる…、通知減らして対処

■起動関連
・インターネット接続のやつが自動起動してくれなかったので
rasdial.exeみたいなやつ作ってスタートアップ登録したった
・特定のアプリ起動するときUACとかいうのが挟まってボタンの手間増えた
 まあセキュリティのためだからしょうがない感じだけど
 よく起動するやつとか例外設定したくてやり方ありそうだけどめんどかったのでそのまま
・一部のやつは管理権限で起動しないと以前と同じ動作しなかったりとかもあった
・古い画像とかエクセルがアクセス権限なくなって開けないとかがあった
 コピペしたら直ったり

■エクスプローラ関連
・デフォの画像プレビューがフォトみたいなやつになってて
以前のWindowsフォトビューアーじゃなくなってたけどやっぱ元のが良かったのでそっちに戻した
画像を右クリックしたときにプレビューが表示されなくなってたのでこれを調べて追加
⇒Windows10で画像を右クリックしたときに「プレビュー」がないので追加する方法
https://usortblog.com/windows10-rightclick-preview/
画像編集とは別に簡易的にスライドで画像を見たい時があるのでこれはやっぱほしい機能だった

20200216201028.png
・エクスプローラの下側にWin7では画像の大きさとかが表示されてたのに
 これが詳細ウィンドウ開かないと見れなくなった
 しかもこの詳細ウィンドウが開くと右側を占拠するというスペースの取り方がじゃますぎるもので
 これほんと劣化だなあという感じだけどこれはどうしようもなかった…

・フォルダーの種類の自動判別がうまく機能しない?
画像の入ってるフォルダを開いたら大アイコン表示とかしてくれてたのがうまく認識してくれず
フォルダーの表示オプションでフォルダーに適用とかフォルダーをリセットとかしても思うようにならなくて
多くのフォルダを手動で設定しなおす羽目になりそうだった
フォルダのカスタマイズで種類を全般→ピクチャとかにしても全般に戻されたり
新しいフォルダーをリネームするとフォルダ設定がリセットされたりと…
⇒フォルダ表示を変更したい
https://www.sakura-pc.jp/pc/contents/vista/vista-folder.html
これに関しては上記サイトのでレジストリの
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell下にある
BagMRUとBagsを削除したら設定初期化できるようで、これで直った気がする
これはやってみたばっかりなので現在経過観察中

■その他
・IME、誤変換レポートとかいうのが急に出てきたりしてじゃまだったのでオフにしたりしたかも
・スタートアップ起動したSkypeが突然サインアウトすることがある? 謎

バケットモンタージュ #47 ゲームを俯瞰して

改めてやってるとやりたいこと盛りすぎててシステムは面白いんだけどまとまりがやばいなって印象
主にごちゃごちゃしてるのが…
・アーティファクト
 けっこう入手機会が多いせいでアイテム欄にがらくたが増えまくる
 しかも一点モノだからどれが不要かを選ぶのも一苦労
 これの対策で所持量が一定以上だと廃品業者が現れて引き取ってくれるとかいうシステムを前に作ったけど
 なんかちょっと情緒がない気もする
 ついでに説明欄も狭い空間に情報を詰め込もうとしてだいぶわかりにくいと思う
20200211173910.png
スペースを節約するためにパラメータをアルファベット2文字に短縮してるのだけど
これ初見じゃ絶対わからんだろうなあと、例によって取説には詳しく書いてあるのだけど…
あと装備可能か条件が区切りなしの漢字一文字、Req.と書かれている部分
Aキーを押すと現パーティで装備可能かが見れる画面が出現する仕組みも作ったけど
そもそもこの装備可能か条件が合成するたびに変わるので把握しきれんというのもある

・スキル
パッシブスキルをめちゃめちゃ頑張って作りまくった経緯があるけど
これ説明文を作ってからスキル設定を細かく組んでいたので、説明文がわりとガバな部分がある
たまに起きるとか、確率で発生するみたいな曖昧な文章が…
これ書きなおしたいがエクセルデータの読み込みがデータ色々上書きしちゃうので
また予期せぬ不具合起きてもこわい
データベースで書き直すのはけっこうめんどいし、エクセルと同期もめんどいから優先度が低い案件
エクセルベースで書いてスクリプトに手動コピペしてそこ参照するようにするのが一番無難な方法だったり…でも無駄も増える

・作戦コマンド
作戦自作できる!とかいうすごい仕組みをいれたはいいが
説明ないとたぶんこれは意味不明だと思う
しかも条件をわりと細かく設定しないといけないめんどくささがなんとも使いづらそう
でも一応動いてはいるからここに手をかけるのも優先度低いなーとそのままにされている部分

他にもいろいろごちゃごちゃしてる部分がある…

・ゲームバランス
他はおいといてもここはけっこう問題な気はする
要素幅が多すぎて難易度がけっこうわからないことになっている
たぶん壊れスキルとか強装備強モンスターいたらすごい簡単になりそう
めっちゃムズイのはやだけどめっちゃ簡単になってもやだなぁ
理論上バランスが取れるシステムを作ってきたつもりだけど
それが積み重なりすぎて把握しきれてない&実際のプレイでの状況設定が安定してない

良くも悪くもしばらく間をおいたことでプレイヤー観点は少し持てたかもしれない……
だが悩ましい部分ばかり

バケットモンタージュ #46 重複バグ進展

最近じわじわと制作リズムが戻りつつありテスプレが進んでおります
テスプレというよりテスプレしながらここほしいと思ったら追加するみたいな
旅作業という感じでいい感じに楽しみながらできてる

なんかせっかく作ったのに一部を修正したときにまるごとデータ書き換わってて
作ったもんが参照されてないみたいな事態もちらほら発見してひやひやもの
それからエターナりかけた元凶とも言える地獄のテスプレで悩まされた
ユニークアイテムの重複所持バグがちょっと解決の糸口を得た

20200211165546.png
■重複バグとは
今作ではユニーク(一点もの)のアイテムをランダム生成する仕組みを作った
そのままいくとID配列が膨れ上がるので、削除したデータのIDを再利用する仕組みを作った
アイテムの所持状況はIDで管理することに
このため、例えばID:345のアイテムを所持しているデータは一か所でなければならない
プレイヤーがID345のアイテムを持ち、お店にID345のアイテムがあるという状況が起きると
プレイヤーがID345のアイテムを削除した場合に、お店のアイテムも消えてしまう
これが重複バグ……最悪の場合エラーで落ちたり、所持アイテムがすり替わるとかバグのオンパレードに

■今までの注目点と新たな気づき
ユニークアイテムを生成する処理は必ずその処理を通るはずで
そこを通してる以上、空になっているユニークなIDが振られるはずと考えていて
色んな処理を高速実行しても再現ができなくて困っていた
(ふつうにプレイしてしばらくすると気づかぬうちにバグが起きてるみたいなパターンばかりで苦心)

そんな中、生成処理ではなく削除処理を無作為に実行するテストをしてみたら
同現象が起きうることに気づいた
「所持情報が残っているのにデータを破棄してしまったケースが考えられる」
例)クエ完了→報酬アイテムを即時売る→その後にクエ削除処理で報酬データ削除がかかった
クリア済フラグのあるクエを一括で消去する仕組みになっていた(そのときユニークアイテム情報も破棄)
プレイヤーが所持していた場合はクエ完了でアイテムを受け取っているということで判定していたが
アイテムを売った場合、所持情報がお店に移ったまま、条件をスルーして削除処理が入ってしまう
この状態でID345が再生成された場合、再生成場所+お店の両者で重複される現象が起きてしまう

いやーこの辺の作りがいかにガバガバだったかと…
これは本来クエ完了時に報酬データも同時に消すとかで整合性をとるべきだった感
つまり削除処理の方を見直せばバグ原因をかなり特定できるんじゃないかと希望がわいた感じ!
あまりに原因がわからなかったのですべての所持状況を調べる処理とかも作ったんだけども
これをいちいちアイテム入手や破棄のときに走らせると重くなるのでやだった
重複所持の場合でもその都度データを修正するという力技も考えたりしてたところだった
まあ最悪の場合この処理でデータを修正できるようにどっかに入れとくのはありかなーと

うわあ1年経ってる…

2018の1月くらいまではぼちぼち進んでた制作ですがその辺からかなり鈍足に
6~8月に活したものの2019がだいぶぼろぼろ……3月頃にもちょい復活したけども
生活リズムが不規則な頃も多かったせいか、体力低下と自律神経失調気味で体調改善の方に力を入れてるような状況
楽しく別ゲームしてたりもするけど創作系の繋がりがだいぶ途絶えてしまった感
生きてるけどツイッターとか呟くのもなんとなく負い目が、ほんとゲーム完成させてスッキリしたいのに

ゲームとしてはだいぶ出来上がってるものの、それを半端な状態で公開したくないという気持ちも引っぱり
バグを直さなきゃとかテストプレイをやり遂げなきゃみたいなものがちらついて進まん……
まあ製作期間伸びたらそんだけ飽きますわなっていうのもあるけど
FuhrungWeissの頃の掲示板ですごいやり込んでくれる人の感想とか呼んでた頃楽しかったなーって
見返すと面白いけど今あんな会話ができるだろうか、気力や情熱が落ちた感じある

でも諦めてるわけではなく調子いい時はテスプレして修正したり追加したりを志している
エンドコンテンツでめっちゃ面白くできる構想があったけどそこを作りきれる気がしない
こんな壮大にエターなるよりはもう妥協点で終わらせた方がいいのかもしれない

バケットモンタージュ #45 スキルリスト

また期間がだいぶあいてしまった
白状すると4か月くらいエルソの大型アプデが楽しくてハマっておった

でも制作自体はぼちぼちしとりました…
友人氏によるテスプレで挙がった修正箇所等のやることリストみたいなの作ってそれが打ちかけ状態で
以前のバグ再発しないかのチェックもできてないのでまた最初からテスプレすっかーというところで
補助系スキルの効果とかを全く埋めてなかった(スキルの形式だけあった)ことに気づき
どうせならこれを埋めてからにしよう・・ということに

そんなこんなでスキルデータ補完を一生懸命やっていた
その副産物的にスキルリスト画面でけた
20180622175927.png
これも図鑑要素にすればいいかな
このゲームは覚えるスキルはモンスターの種類によって決まっているので
モンスターコンプすればスキルリストもコンプされるはず
パーティ加入時に図鑑フラグ入れていけば良さそう

できればソート機能とかもつけれるようにしたい

スキルマッチングもかなーり大雑把だったため習得スキルもまばらだったが
そこでふと思いつきで習得数が規定数未満のやつをゲーム内で抽出するプログラム走らせてみたり
20180622181226.png
するとスキル数が少ないやつがリストアップされるので
そいつになんかしらのスキルをあてがったり新しいスキル作ったり
・・・という作業が思いのほか面白いのでだらだらやってた

あとパッシブスキルばっかり凝ってたけど
一部のアクティブ系スキルも特殊効果持ちをいくらか増やした
相手の持ってるスキルをコピーするスキルとか面白いのもありあす

まあスキル周りはようやくこれで一応は完成ということにしておこうかな
追加スキルとか作ってエクセルベースの作業してると場合によってソートによってID変えたくなって
ID変えるとセーブデータ引き継げないという問題あるんすよね

バケットモンタージュ #44 デストプレイ゙

新年あけおめーと言ってる余裕もなく
12月年末頃から未完部分もある状態だけど友人にテストプレイをしてもらっているのですが
うーんでるでるばぐでるでるばぐ

前作よりもさらに自作や改造部分が多くなったことで設計段階の未熟さも浮き彫りになったり
特にひどかったのは例えば・・
なにかの処理の前にツクールの変数を代用変数として使いまわしてたら
パーティ加入時のレベルを指定する変数に、入手アイテムのIDを保持させておくのが入ってて
レベル883みたいなのがいきなり加入するとかいうすごいバグがあったりした
テスト段階で見つかってヨカッタネ…

そんなのはまあバグとしては笑える方で
imgpsh_fullsize_distr.png

やっぱり一番こわいのはスクリプトエラー…
これがなかなかぽんぽん出る

たいていはちょっとしたうっかり記述ミスとかですぐ特定できるけど、再現性がなく偶発的に起きるやつが一番厄介で…
いま困っているのはゲーム内に1個しかないはずのランダムアーティファクトが複数出現していて
片方のデータが消えるともう一方のデータを参照したときにエラーでちゃう、みたいな問題

今作はランダムアイテムのシステムを無駄に凝りすぎたせいで
データベース上限を超えてアイテムを生成できるように改造してしまった

そのままだとID数がどんどん膨れ上がって、データ量が膨大なことになってしまうので(一度ID数増幅バグも起きたり…)
アイテムを捨てたりした場合に破棄されたアイテムIDを再利用できるようにIDリサイクルの処理を入れたりした
例えば…
ID101:大根ソード
ID102:ニンジンブレイド
ID103:チクワチャクラム

.とかあったとしてID102:ニンジンブレイドを削除したら
ID102を破棄済みナンバーとして記録して空きデータ扱いに、次にランダムアイテムが作成された場合は

ID101:大根ソード
ID102:爆熱ポテト砲
ID103:チクワチャクラム

のような感じで再利用されるみたいな
※アイテム名は適当です

この処理自体は問題なさそうで何か他の要因で偶発的に起きるバグっぽいけど
どういう状況で複製されてしまうのかが謎で調査中…という

~~~

バランスも難しい!
RPGのレベリングの楽しみは残しつつ、適正難易度で遊べるような調整をしたいのだけど
今作はその工夫として、「あるレベルに到達するためにはある程度のレベルの敵を倒さないと経験値がおいしくない」
というような計算式でどんくらいのレベルに到達できるかを調整しやすくした、というのがある
けれど1レベルの重みがけっこう大きいので難しくなったり簡単になったりがけっこう顕著にでてしまう

テストプレイで自由に遊んでもらったところ
固定レベルを決めずにこちらのレベルと連動するサブマップみたいなところがあって
メインクエストのダンジョンへ行く前にそこで効率狩りされたらメインが超絶ヌルゲーになるという大問題があったり

理想としてはレベリングしても適正レベルからせいぜい+2~3くらいまでしかあげれなくて
スキルやモンスターの組み合わせで攻略してほしい!という感じだけど
なかなか難しそう

まあフィードバックを得てモチベも高まり、序盤のわかりにくさとかも改善できてきてて良さそうです
一人で作ってると繰り返しテスプレのマンネリやらモチベ低下スパイラルでやばかったので再起動しつつ充実しております

バケットモンタージュ #43 ミニゲーム

8/13あたりにPCトラブルがあり戦々恐々としていたも
無事修理で戻ってきて事なきを得て本当に良かったー
(マザボの故障でデータに損害はなし、でもバックアップはちゃんとこまめに取ろう・・)

そして安堵と共に、今度こそ作り上げたいという気持ちも再確認する
しかし、なぜか急にやりたくなったミニゲームを作り出している始末

かつてWindowsLiveMessengerに付随してた「7ハンドポーカー」というトランプゲーム
個人的にトランプゲームですごく面白かったので、それをちょっとアレンジしたカードゲームを作り中
ミニゲームを何か用意したいなと思っていたのでまあよしとしよう!
20170823132944.png

ルールはシンプルにポーカーがベースなのだけれど
普通のポーカーと違って、場(フィールド)の概念があって、場のどこにだすかという選択ができる
お互いにカードを伏せあって、正面にお互いのカードが揃ったらそれをオープンして役の強さを比べる
勝利した場合は、その場のコインをもらえて、最終的にコインを多くとった方が勝ちというもの

つまりロイヤルフラッシュを揃えて一つの場で勝ったとしても、
ワンペアで二つの場所で負けたらトータルで負けになってしまうというわけ
ターン毎にカードを補充する機会が得られるので、いらないカードを捨てて後のチャンスを残す
とかいろいろ戦略が考えられるのが面白いところ

とりあえずCPU君はランダムにカードと場を選ばせるようにしたので今のところ戦略もなにもないのだけれど
そこそこ役を組んでくれる程度にはしたので対戦はできそうかも・・というとこまではこぎつけた
トランプの絵柄の代わりにゲームのモンスターグラフィックを使ってるので世界の演出に一役買ってくれる・・かも

だれてーる?

5月くらいまでめきめきと作っていたが
テスプレ→バグ発覚→セーブデータやり直しループでだいぶだれて
ちょっと息抜きにとやってたアクションゲーにドハマりして今に至る
気合い入れ直さねば・・

今年の時点でゲームの全体像はできてて各方面テストに着手したのが2月頃
一応の進行確認は終えて、あとはラストダンジョンを作成して味気ないとこを肉付けして
エクストラ要素を充実させて・・という展望は立っているのだけれど
なかなかラスダン制作が進まない、イベント組むのが相当だるいっすねえ・・
FuhrungWeissは演出でごまかしてた感あるけど、あんまし演出すら思い浮かばないこの頃

まあ別ゲーをやっててインスピレーションも湧いたりしたのだけれど(またシステム面だけど)
ゲームのリソース管理のことで、オーソドックスなRPGではダメージとMP効率のみを考えればいいところだけれど
ここにクールタイムの概念を混ぜるといい感じに三つ巴になる
そして、それをプレイヤーが操作できること・・

例えば

・ダメージを5%アップさせる
・消費MPを10%減らす
・クールタイムを10%減らす


みたいなオプションを用意すると、いい具合に悩める選択肢になる

MPが足りなくなりがちなら、MP消費減をとりまくったり
MPが潤沢にあるけどクールタイム待ちになることが多いならクールタイム減を取る
みたいなカスタマイズ性が生じる

装備オプションでこういうのも追加したいなあと思うところ
けど問題は装備説明欄が2行ベースで作っていたので表示領域に余裕がない・・
オプションを多様化させるならそこの改善の必要性もでてくるなあ

バケットモンタージュ #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でソートをかければ、種族毎にどんなものを作ったか一覧できるし、重複チェックもできる。
さらに分類でソートすれば、似た設定のスキルを抽出できる。
他にも制作促進用に、常時型/発動型/戦闘トリガー/敵にデバフ のフラグを作っておいたので、
これでソートすれば、実装のときに同じような処理をまとめて作成できるという算段。

パッシブの話は次回・・