カードヒーロー+ドミニオン2:カードの追加、特殊な操作のインターフェイス

前回からの2週間くらいでカード数を増やしつつ
それに伴ってカードの破棄とか並び替えとかを
操作できるようなUIを作ったりしたのでそのあたりについて

複数のカードの操作用UI

山札の上からX枚の内好きな枚数捨札にして残りを並び替えて戻す効果や
カードの追放(ゲーム上から取り除くことを追放と呼ぶことに)のためのUIを制作した。
今後追加される複数のカードを操作する処理にも
流用できるようなものを作ろうと考えた。
細長いウィンドウに手札などからドラッグ操作をできるようにすることで
複数のカードを選択するだけの処理は問題なく操作できるようになったと思う。
捨札にしつつ並び替えはドラッグできないカードのオブジェクト扱いの
仕切りを置くことでわかりやすくかつ、複雑ものを作ることなく
実現できた気がする。
左側に現在の特殊な操作の説明とできる場合はキャンセルボタン、実行ボタンを
備えたパネルを用意した。

カードの紹介

新しく作ったものを中心に8種についてあれこれ

①コスト[3] 遺跡荒らし:HP10(Exで13)
    アタック:錆びたロングソード (4→6→8→12) 範囲:隣接
    スキル1:探索 コスト:[1→2→3→0]ストーン  効果:[即時](1→2→3→2)枚ドローする
[即時]:1ターンに1回まで行動済みにならず使用できる
行動済みにならないドローを持ちつつ、戦闘面の性能は控えめな感じの前衛にした。
ドロー効果を持たせたユニットを作りたかったので作って満足した。

②コスト[6] 異邦の剣客:HP14(Exで17)
    アタック:刀 (7→9→11→15) 範囲:隣接
    スキル1:致命の一撃 (12→14→16→18) 範囲:隣接 コスト:[2→1→0→3]ストーン 効果:シールド、アーマーを持つキャラクターを対象にできない(Lv3以下時)
そこそこのダメージのアタックとマスター等は対象に取れない分ダメージがでるスキルで
コスト8のユニット程ではないものの決定力があるデザインにしたかった。

③コスト[2] 転移術師:HP4(Exで5)
    アタック:ナイフ (1) 範囲:隣接
    スキル1:テレポート 範囲:どこでも コスト:[2]ストーン 効果:対象のユニットを山札の上に移動させる(自分より高いレベルのユニットを対象に取れない、LvEx時山札へ移動する代わりに追放)
   スキル2:投射物の転移(3→4→5→7) 範囲:どこでも コスト:[1]ストーン
カードヒーローのルージュにバウンスをつけた感じ。
当初コスト3あたりにしようと思ったが、テストすると思ったより弱かったのでコスト2にした。

④コスト[4] 鑑定師:HP11(Exで13)
    アタック:メイス (4→5→6→8) 範囲:隣接
    スキル1:鑑定 効果:山札の上から(3→4→5→8)枚を公開し最もコストの高いアビリティ/ストーンのカードを手札に加え、残りを捨札にする
   スキル2:光源の形成 効果:コントロールする全てのユニットにアーマー(1→2→3→4)、予見[2]を行う
予見[X]:山札の上からX枚の内好きな枚数捨札にして残りを並び替えて山札の上に戻す
ダメージ手段やレベルアップは前衛でしかできないものの
後衛でも使える補助的なスキル2種をもたせて
前衛でも後衛でも使えるようなカードにした。

⑤コスト[3] グリーンウーズ:HP10(Exで13)
    アタック:体当たり (4→6→8→12) 範囲:隣接 効果:対象に脆弱刻印、アタックダウン刻印をそれぞれ[1→2→2→3]与える
    スキル1:自己修復 コスト:[1]ストーン 効果:[即時]自身のHPを(4→5→6→8)回復する
    パッシブ:隣接するユニットの行動で1以上のダメージを受けた時、そのユニットにアタックダウン刻印、脆弱刻印をそれぞれ[1→2→2→3]
脆弱刻印[X]:最大HPがX減少、ボードを離れるまで持続(マスターに付与されない)
アタックダウン刻印[X]:アタックのダメージがX減少、ボードを離れるまで持続(マスターに付与されない)
バフやデバフ、ダメージ受けた時の効果を行う処理などいろいろ作りながらデザインした。
デバフをばらまきつつ、回復でしぶとくボードに残る感じに。
いろいろと特殊な効果があるものの同じコスト[3]の遺跡荒らしと
同等かちょっと下くらいの強さになった気がする。

⑥コスト[2] ヴォーパルバニー:HP8(Exで11)
    アタック:切り裂き (8→9→10→15) 範囲:隣接 効果:シールド、アーマーを持つキャラクターを対象にできない
wizのヴォーパルバニーをイメージして制作。
RPGの即死・クリティカル的な表現としてシールド、アーマーを持つキャラクターを対象にできない高ダメージのアタックをもたせたが、
イメージ先行で作りすぎて面白みがないカードになってしまった気がする。

⑦コスト[2] 強制転送:エネルギー消費[1]  手札から2枚までのカードを追放
デッキを圧縮するカードを作りたかったのでドミニオンの礼拝堂風のものを制作。
礼拝堂の4枚まで廃棄できるのはさすがに派手すぎると思ったので2枚までにした。
獲得、ユニットの行動でストーン、レベルアップで捨札を要求するため
当初はドミニオンにおけるアクションカードみたいなカテゴリのカードは
リソースを消費せず使える様にしようと思っていた。
しかし、リソース消費がないとドローできるカードが強くなりすぎてデザインしづらい
と思ったので、エネルギーをコストとして使わせるものを入れることで
デザインしやすくした。
ドミニオンのアクション数+2→エネルギー+1
      アクション数+1→エネルギー消費なし
      アクション数+0→エネルギー消費[1]
みたいな方向性で制作しようと考えた。
カードの画像は気が向いたときに作ることにして
それまでは松明を流用することに。

⑧コスト[2] 松明:コントロールする全てのユニットはアーマー[2]を得る  予見[2]を行う
前に作ったカードを調整し直すたびに書いていては切りがないとは思いつつ
今回のカード操作のUI周りに関連しているので書いておくことに。
アーマー[2]だけだと物足りないが、ドローをしたり
リソースを出したりすると強すぎるので、山札を操作するものを追加した。

ゲームシステムの変更

・レベルアップのコスト増加
いままでのレベルアップ時の捨札の要求数は
Lv1
↓1枚
Lv2
↓1枚
Lv3
↓2枚
LvEx
という感じでLv1からLv3は2枚、Lv1からLvExは4枚だったので
テストしていて割と簡単にLv3やExになれてしまっていて、カードヒーローに比べ
レベルアップのコストが軽いと思ったので
Lv1
↓1枚
Lv2
↓2枚
Lv3
↓3枚
LvEx
のようにLv2以降のコストを増加した。
毎ターンの開始時の手札が5枚に対してLv1からLvExに必要な数が6枚なので
一度でのレベルアップは手札を増やす手段がないと行えなくなって
LvExになるには、Lv2,3を経由して複数のターンを使ってレベルアップすることに
基本的にはなるのでLvExにしづらくなってテストした感じだといい感じだった。

・マスターのターン終了時のエネルギー生産
アクションカード的なものにエネルギー消費をつけることにしたので
未行動のユニットだけでなく、未行動のマスターからも1エネルギー出すことにして
全てのユニットを動かした上で、マスターも攻撃等をさせない限りは
毎ターン1以上のエネルギーを得られるので
エネルギー消費のあるカードを使いやすくなったはず。

・ユニット獲得時に手札・捨札からユニット追放
ユニットを獲得する時に手札・捨札から1枚ユニットを追放できるようにして
デッキがユニットでかさばらないようにした。
序盤での低コストのユニットの獲得の価値が高まったと思う。

次にやりたい作業

・カードにマウスオーバーした時に情報を表示するパネル
カードの効果のテキストなど用意してはあるが、ゲーム上から参照できないので
そういったのを表示できるように。

・AIの改良
今のAIはMinMax法やαβ法みたいな感じで多少の枝切りしつつほぼ総当りしている
戦闘フェイズのAIと
ほぼランダムに手札を使用する通常フェイズ時のAI、
ほぼランダムにカードを獲得する獲得フェイズ時のAIが
それぞれそのフェイズに入ったときに動くようになっているので
ターンの最初にターンの最後までの状況をシミュレートさせて最も良い動きをさせたい。
今の戦闘フェイズの思考時間が
取れる行動の多いボードの状況だと、3~4秒かかることもあるため
ほぼ総当りの方法で1ターンまるごとシミュレートすると
10秒以上かかりそうなのであまり現実的でないと思った。
他の方法をネットを見つつ考えたところ
名前だけ聞いたことのあった、モンテカルロ木探索に行き着いた。
モンテカルロ木探索は局面の評価とその局面の先の局面の読み具合を考慮して
読み進む局面を決めていくことを繰り返すものらしい。
ほぼ総当りよりも効率的に良い動きを探せる上に
繰り返す回数を変えることでAIの強さを変えられて良さそうなので
モンテカルロ木探索な方法を取り入れたAIを作りたい。

・ペナルティ関連
カードヒーローみたいに相手に何もされない時にきあいだめでダメージが上がって
マスターにダメージが入る仕組みがないので
ユニットを出さずにカードの獲得だけし続けることができる事に気づいたので
なにかユニットを出させる必要のある仕組みを考えたところ
シンプルにターン終了時に自分のボード上の
ユニットを置ける4箇所が全て空いている時
ペナルティのダメージが発生するように。
あとは、カードヒーローとほぼ同様に
自分のターン中に自分のコントロールしているユニットのHPが0になったときにも
ペナルティのダメージが発生するようにしたい。

コメント