見出し画像

Unityでシャドウバースを作り好きなカードを実装して遊ぼう【#シャドバアドカレ2022】

はじめに

初めまして、みなづきと申します。
普段はフリーランスのクリエイターとして様々な案件を受けながら活動しています。シャドウバースは2020年まで競技勢として遊んでいました。
本記事はToby様主催のシャドバアドカレ2022の投稿記事として執筆致しました。是非最後までお付き合い下さい。

Unityとは?

アドカレ企画として公開したこの記事を読まれる方はやはりハッシュタグから来てくださるシャドバ界隈の方が多いはずで「そもそもUnityって何?」と思ってる方が多いかと思いますので簡単な説明を。
一言でいうと「ゲームエンジン」というもので、分かりやすいようにくだいた言い方をすると「ゲームを作れるアプリケーションのようなもの」だと思って下さい。あ、読み方はそのまま「ユニティ」です。
みなさんが遊んでいるShadowverseも実はこのUnityで制作されています。
Unityで制作された他の有名なゲームですと、

・プリンセスコネクトRe:Dive
・ウマ娘 プリティーダービー
・ポケモンGO
・Getting Over It
・原神
・Among Us
・Fall Guys
・ポケットモンスター ブリリアントダイアモンド/シャイニングパール

などがあります。
かなり有名なタイトルが並んでいるだけあってUnityは扱うのが難しいもので、残念ながら誰でもすぐにゲームを作れるものではありません。
プログラムの基礎知識、アルゴリズムとか勉強した上でC#を扱える必要があります。興味湧いた人は勉強してみて下さいね。
ちなみに筆者は過去にUnityで動画を作ったことがあります(ゲームエンジンとは)。

既存のゲームを独自開発する理由とは?

実際にシャドウバースは無料で誰でも遊べる完成されたゲームであるのに個人でそれの模倣品を作る理由を解説していきます。
一言で言ってしまえば、

「ルール」次第で「環境」なるものをいくらでも変化させることができるので、「ルール」をいじれるように自分で制作してやるぞ!

という話ですが、例え話を交えて説明します。

これはシャドウバースに限った話ではありませんが、「ルール」と「構築」要素のある対人戦ゲームには「環境」というものが生まれます。
シャドウバースで言えば、「ローテーション」「アンリミテッド」「クロスオーバー」「2Pick」など各「ルール」(フォーマット)に対してそれぞれの「環境」が存在します。例えばローテーションならばディスカドラゴン秘術ウィッチが強くそれに対応できるコントロールエルフがその下に存在したり…という一つの「環境」が存在しますね。同様アンリミテッドでもホズミエルフ回復ビショップ秘術ウィッチが群を抜いて強かったりという「環境」があります。
今年11月に発売され今すごい盛り上がりを見せているポケモンSVも同じ対人戦ゲームですが、こちらもシングルバトルのシーズン1において、準伝説、パラドックスポケモン、原種ウパーヌオーガラルニャースニャイキングが使用不可という「ルール」上でドラパルトサーフゴーサザンドラが採用率上位という「環境」を構成しています。
(引用:ポケソル「【ポケモンSV】シリーズ1初期 シングルバトル採用率」より)

各ゲームの各ルール(フォーマット)に対しての「環境」が存在する図

対戦ゲームのプレイヤーは与えられた「ルール」に則り、勝つために自分のデッキ、パーティを如何に「構築」して戦うかが問われます。プレイヤー同士は勝つために研究し、やがて「環境」が出来上がっていきます。
シャドバの最近の話で言えばクロスオーバーにて禁止制限がありましたね。
これによって環境Tier上位にいた人形ホズミディスカDVなどが弱体化し環境が変化、人形威光葬送カラミティリアニインペリアルセイント結晶パズズが上位に君臨する形となりました。
このように「ルール」を与えるのはゲームの製作者側です。

そうです、独自開発をすれば自らが「ルール」を設定できるのです。

読者のみなさんはシャドウバースの過去環境ではどの時代が好きでしたか?
自分はOOT期RAGEローテーション環境が好きでした。蝙蝠V、侮蔑疾走D、ミッドレンジR(アーサーとか8コスレイサムのやつ)の環境です。
現在のアンリミテッド環境で似たようなものは組めますが、完璧に同じものはできません。スカルリングが4コストになっていたり、ガルミーユフラウロスの効果自体にナーフが入っているので厳密に同じものは本家シャドウバースでは完全再現はできなくなっています。

…どうしてもあの環境でもう一度シャドウバースがしたい!というのなら「シャドウバースを1から自分で開発して当時と同じ環境を制作する」しかありません。
そんな想いから当プロジェクトは始まりました。

…ですがそんなちゃちなお遊びレベルの目標ではとどまりません。
どうせ制作するなら本家シャドウバースでできないことも実装しちゃえ!

という思惑から「他種TCGのカード使いたくない?」に発展していくのです。

制作の進捗

で、まだ未完成です。すいません。

近いうちに動画としてどのように動作するのかお見せできればな、と考えております。
以下興味がなければ読み飛ばして下さい。

・バトルの事前に山札にデッキを登録する
・ターンの概念・先後をランダムで決める
・デッキリストを参照し山札を生成
・山札をシャッフルし、シャドバ同様マリガンを行う
・ドローを実行するメソッド
・自分のターン中はクリックして手札のカードを持ち、場に出す(使用宣言)
・相手ターン中はカードを持てない
・(相手ターンは3秒立つと自動でこちらにターンを渡します)
・ドット絵で作成したオリジナルのカードフレーム(フォロワー、スペル、アミュレット)
・一部実装予定のキャラのドット絵

フィルレインのドット絵
かわいいでしょ?(見づらい)
使用予定のフレーム
制作時の雰囲気だけ味わってください(多分これじゃなんにもわからん)

今後の実装予定

こちらも読み飛ばして頂いて構いませんが予定は以下の通りです。

・対戦ゲームとしての樹立
・各種フォーマットの制作(過去環境、本家未実装カードを実装したルール、オリジナルカードを実装したルール など)
・攻撃するモーション
・リーダースキン、HPの表記等のイラスト制作
・90秒のターン制限
・手札に加えた時に相手に公開する、などの特殊モーション
・融合
・対戦ログ、状況データの確認ログ(本家基準)
・その他演出等

どんな機能・カードを実装したらおもしろいのか

ここからはカードゲーマーが好きそうなお話をしていきます。
プログラムの可能性は無限大です。
先程も述べた通り、きっかけは過去環境の完全再現でしたが、さらにオリジナルの要素を加えて楽しむといった遊び方もできます。
本家シャドウバースにはない要素を実装することが可能なのです。
実装前のカードを実装することもできますね。完成したら事前に次の環境で遊べるツールとしてみなさんで利用するという使い方も考えています。
紙のTCGではよくプロキシを作成して実装前のカードで遊ぶといったことをしますがシャドバでも可能になったら環境研究速度に貢献できるかなあと思ったり。

他のTCGにある要素をオマージュとして実装してみても良いでしょう。
同じマナコストという概念のあるデュエルマスターズからガチンコジャッジを実装してみたり、超次元ゾーンGRゾーンの実装とか。
ルールとして明確に定義するにはやや複雑にはなりそうですが、ポケカのベンチ、遊戯王の魔法/罠ゾーンなど用意してもいいかも?
別のカードゲームからシャドバに置き換えてみましょう。

引き裂かれし永劫、エムラクール

思いつきの一例ですが自分だったらこのカードを使ってみたいですね。
シャドウバースに変換すると以下のようなカードになるんじゃないかなあと。
ゲームの性質上15PPまで行かないけど庭園とかライオとか混沌の流儀でずるして使おう!なんなら10PP上限を撤廃することだってできますね。(果たしてそれはシャドウバースと呼べるのか…)

15/15/15 (進化17/17) ニュートラル・フォロワー
・このフォロワーは消滅しない
・このフォロワーは守護を無視して攻撃できる
・相手の能力によって選択できない
・ファンファーレ このターンの終了時、追加のターンを得る
・攻撃時 相手の場のカードをすべて破壊する。
・このカードがいずれかのゾーンから墓場に置かれた時、自分の墓場にあるカードをすべて自分の山札に加え、墓場の数を0にする。

ポケカより「ハイパーボール」をシャドウバースに実装してみたら面白いかも。0コス2ディスカ、流石にVとDに渡したくない性能だなあ…。

ハイパーボール

0コスト ニュートラル(仮)・スペル
自分の手札を2枚捨てる。山札からランダムなフォロワーを1枚手札に加える。

デュエマのカードはわりと簡単に互換を実装できそう。
もともとコストの概念があるタイプのTCGなので。
ツインパクトという性質がシャドバのアクセラレート、エンハンスにあたります。

魔導管理室 カリヤドネ/ハーミット・サークル

14/4/5 (進化6/7)ウィッチ・フォロワー
アクセラレート 3;相手のフォロワー1体は、相手のターン終了まで攻撃不能になる。
----------
スペルブースト コスト-1
ファンファーレ このゲーム中にプレイしたコスト3以下の名前の異なるスペルをランダムに3枚手札に加え、そのコストを0にする。

ちなみにですが、ルールの話。
アクセラレートのコスト>本体のコスト のときに本体をプレイできます。
これを解消して任意で好きな方をプレイできるようにしたかったらチョイスにしてしまえばいいと思います。スペブで下がったコストを払って本体をプレイ、もしくは3コス固定でハーミット・サークルとしてプレイするかをチョイスする、みたいな。

と、まあこんな感じでいろんなTCGからシャドバに置き換えて使ってみたいですね。カードゲーマーこういう話しで盛り上がれるしなんならみんな一度はこういう話したんじゃないかな?
話は少しずれますが似たような面白い話もあるので動画リンクを貼っておきます。
ポケカのレベルボールのサーチ先がHP90以下なので全てのフォロワーカードが体力が90以下のシャドバにおいては、すべてのフォロワーをサーチできるみたいな話は流石に笑った。
ヨシヒコさんのチャンネル架空環境解説シリーズは個人的におすすめです。

実際にルールとカードプールを設定してみる

オリジナルのルールを設ける時に大切なのはゲームバランスの調整です。
本家シャドウバースではよく一強環境になってしまったりするとナーフ、アッパーを施行していますね。
やはりカードゲームとして、環境で戦えるデッキに多様性があるほうが基本的には面白みが出るので、アクティブユーザーの増加やサービスの継続を図れます。あ、もちろん一強環境でもそれなりにミラーでのプレイングやらなんやらを突き詰めたりする楽しさもありますから一概に一強環境が悪いとは思ってません。
もし仮に上記に掲載させて頂いた動画の環境をそのまま実装して対戦を繰り返してみたら結論デッキというものができてしまいクソゲーと化してしまうことが予想されます(動画は架空環境なので実際に行うかは別の話であり動画として楽しんで下さい)。ユーザーみんなが楽しめる環境にするには能力調整、枚数制限、裁定の変更等は必須と考えています。
上記動画は他種TCGのカードをそのまま利用していますが当記事で制作するゲームは他種TCGのカードを参考にしバランスを取って「似て非なるもの」を実装する予定です。落とし込めそうなものはテキストを「シャドバでも動きそうなもの」に変更しつつ、環境を破壊しないレベルの楽しめるカードにリメイクしていきます。

以下ルール設定ですが前提として非公式用語を使います。カードゲーマーの皆さんには伝わる用語だと思うのでご理解下さい。

~基本ルール~
・基本的にはシャドウバースのルールを遵守。
(リーダーの初期体力20点にダメージを与えて0点にする、など。)
・盤面にカードは5枚までおけます。
・手札は9枚が上限、それ以上は墓場に置かれます。

~構築ルールに関して~
・同名カードは3枚まで。
・個別のカードに制限を設けたり、能力変更をする場合があります。
・クラスという概念はそのまま。デッキ作成時に8クラスから選択し、そのクラスのカードとニュートラルカードから40枚のデッキを組めます。

~その他のルール(以下はあくまで採用する場合の話)~
・ポケカより状態異常に関するルールを一部変更して引き継ぎます。
混乱状態なら攻撃を宣言するとき1/2のランダムで攻撃か、攻撃せずに自身に「2点」を与える。「どく」「やけど」と重複しますが「ねむり」「マヒ」は新たに受けたほうに上書きされます。
どく状態は各ターン終了時に自身に「1点」与えます。
やけど状態は各ターン終了時に「2点」与え、1/2のランダムで回復する。
ねむり状態は攻撃できず、各ターン終了時に1/2のランダムで回復する。「マヒ」「こんらん」は新たに受けたほうに上書きされます。
マヒ状態は攻撃ができず、自分のターン終了時に回復します。「どく」「やけど」と重複します。「ねむり」「こんらん」は新たに受けたほうに上書きされます。
「きぜつ」したフォロワーは破壊されます。
(ランダム要素はヘイトが高いのでこれを実際に実装するかは別の話で、実装するならこのように置き換えます、という話)

・DMより、超次元ゾーンを採用します。
デッキ構築段階で同種4枚、計8枚までデッキに入れることができ、ゲーム開始時に山札の横に表向きで置きます。
超次元ゾーンを参照する効果が発動したときのみ使用します。
最初から超次元ゾーンに存在できるカードを「サイキック・フォロワー」、「ドラグハート」と定義します。これらが超次元ゾーンか場以外のゾーンに移動した時、超次元ゾーンに強制で戻します。

他種TCGからの落とし込み方の基準については下記を御覧ください。
難しくて分かんない人は読み飛ばして下さい。

~他のTCGから参照するテキストの置き換え~
・ポケモンカード由来の用語「ポケモン」や、遊戯王由来の用語「モンスター」、デュエルマスターズ/MTG由来の用語「クリーチャー」は一律として「フォロワー」と定義します。

・同様に「呪文(DM)」「魔法(遊戯王)」「グッズ(ポケカ)」を「スペル」として扱います。「サポート(ポケカ)」はターン1制限のある「タイプ:サポート・スペル(仮案)」として扱います。

・「スタジアム(ポケカ)」「フィールド(DM)」「クロスギア(DM)」「エンチャント(MTG)」は「アミュレット」として扱います。お互いの場に1枚制限はルールとして存在せず、カードによってはテキストに記載されているものもあります。各種盤面を1つ埋めます。クロスギアはクロスすることでフォロワーと合わせて1面のカードとします。

・上記他種TCG用語はカードとして実装するときにシャドバのテキストとして読めるものに置き換えますので知らなくても大丈夫です。

・シャドバにおいて場にあるカードの任意タイミングの発動効果は自分のターン中の「攻撃時」しか存在しない(「融合」は手札から)ため、他種カードから置き換える場合は基本的には「攻撃時」などに置き換えます。攻撃対象を選択したときに発動する「攻撃時」効果により、「他の要素を選択する(例.『攻撃時、相手のフォロワー1体を選択して破壊する』)」というものはシャドバに存在せず、全て強制で行われる為です。

・他種カードから類似する効果を実装するときは、対象をランダムにしたり、確定要素(ドロー、AOEなど)に置き換えます。山札を見てカードを選ぶ効果も前者同様ランダムとします。
例1).『このクリーチャーが攻撃する時、相手のクリーチャーを1体選び破壊する。』→『攻撃時、ランダムな相手のフォロワーを1体破壊する。』
例2).『このカードを手札からベンチに出したとき、1回使える。自分の山札からサポートを1枚選び、相手に見せて、手札に加える。そして山札を切る。』→『ファンファーレ 自分の山札からタイプ:サポートを持つスペルをランダムで1枚手札に加える。』

・何かしらのアクションに付随するタイミング効果の任意選択(…△△時、○○をしてもよい)も上記同様選択効果に分類しますので強制効果として選択対象をランダムにしたり全体にしたりして実装します。

~注意点等~
・完全な無限ループは存在しないようにする。やばそうなものには回数制限を設ける。

・相手に何かの選択を強制させる効果は実装できません。本家にないので。
意図としてはターンの時間制限のあるゲームなので自分のターン中に相手の選択を待つ、というフェイズを作らない方針だから、でしょうか。
本家シャドウバースには相手のターン中に自分が選択を迫られる事ってないですよね
例).DMより、「ジェスター・ブレイン」、MTGより「嘘か真か/Fact or Fiction」など

と、上記に羅列して書き出してみましたが、思いつき次第付け足したり、カードごとに裁定を正しく決めたりする必要がどんどん出ていくと思います。

カードプールについてですが、本当は決めたかったんですけど、記事の投稿時間までに決められなかったので割愛します。すいません。
そのカードプールを見てみんなで「こんなデッキおもしろそうじゃね?」みたいにワイワイしたかった…。

カードプールが完成したらツイッターで告知しようかなと思います。
フォローしてね。(Twitter@mi7tk)
できたら画像としてこの記事に貼り付けておきます。

ごめんて

最後に

ここまでお付き合い頂きありがとうございました。
「実際に遊べるのかな?」という期待を抱いてここまで見てくださった方には大変申し訳無いと思っています。未完成の空想論を並べた記事で本当に申し訳ない…。
当プロジェクトはプログラム、設計、ルール設定、環境構築、デザイン等すべて自分ひとりで行っています。馬鹿みたいに時間かかってます。完全に趣味でやってます。仕事もしてるしそこそこ忙しいです。完成までに相当な時間を要します。あまり高望みはしないでほしいです…(正直嬉しいですが)。
一応遊べる状態まで完成したらUnityRoomで公開しようかなと考えています。
記事の評価が多く付けば制作日記のような続報をどんどん上げていっても良いのかなあとも考えています。

まあ、こんなこと考えてる奴と同じ時代に生まれたんだなとでも思って下さい。それでは。

次回のアドカレ企画記事は、綾鷹|LGTさんの「なぜ強いデッキを過小評価してしまうのか」です!本日19時投稿予定らしいので、お楽しみに。


この記事が気に入ったらサポートをしてみませんか?