アンドリューの徒然日記

SDIN-デュエルオブレジェンドの記事をメインに書いています

遊戯王MDのイベントを手札誘発ヌメロンで走ったよ/DUELIST CUP 2024 MAR

皆さんこんにちは、アンドリューです。

 

先日、遊戯王マスターデュエル(MD)のイベント

DUELIST CUP 2024 MAR」の1stステージをクリアしました。

 

2ndステージから本格的なランキング形式で、

世界大会への参加権がかかっているイベントですが、

 

今回はとりあえず、久しぶりの遊戯王MDイベントの

雑感を書きつつ、主に使用したデッキについて

紹介していこうと思います。

 

デッキ紹介

手札誘発ヌメロン

イベントでの体感勝率は5割いっているかどうか・・・。

各攻略サイトの現環境ティア表でも

ヌメロンは低く見積もられているため、

 

勝率を目指すならば、

あまりふさわしいデッキではない

というのが正直な感想になります。

 

実際、このデッキを使いながら

1度イベントを諦めていますし・・・。

 

長所としては、

①後攻を引いて戦うこと。

②勝ち筋が単純なため、頭をあまり使わなくていいこと

③試合の決着が早いので周回向き

があげられます。

 

個人的には、コイントスで勝敗が決まってしまう

(というか負けた言い訳にしてしまう)ことが、

かなりのストレスだったので、

 

先行で戦うデッキが多い中で

安定して後攻を引いて戦うことができることは、

とても重要な部分だったのかなと感じています。

 

 

対戦紹介

勝った試合

vsルーン

youtu.be

 

vsスネークアイ

youtu.be

 

vsラビュリンス(一滴はミス)

youtu.be

 

負けた試合

vsティアラメンツ

youtu.be

 

vsマナドゥム

youtu.be

 

vs斬鬼

youtu.be

カードの役割

カードの役割について

大きく3つに分けることができます。

 

①手札誘発

②除去

③ヌメロン

 

①手札誘発では、相手の展開をある程度抑えるために

ヴェーラ増GPSYフレームうららわらし を採用。

 

増Gうららは脳死で3積。

 

 

ヴェーラ3積が個人的に珍しく感じていますが、

うららと違い、相剣大師-赤霄やティアラメンツ・キトカロスの

無効タイミングを逃さないのは良い部分として感じました。

 

PSYフレームγは場を開けるヌメロンとの相性が良いですし、

一滴もあれば、無駄なく相手を妨害できるので重宝します。

 

 

わらしは、体感として2枚目のうらら、

または墓穴対策として使用しました。

 

 

②除去では、展開されている妨害カードを取り除くために

壊獣、パンクラ羽箒ライスト一滴リブート を採用。

 

壊獣は、バロネスをはじめとした妨害モンスターの

除去をチェーン発生させずにできる点が優秀。

 

パンクラは、バロネスだけでなく、

バック除去と様子見ができる点、

デッキ内でのヌメロン以外の火力としても使用しました。

 

羽箒ライストは言わずもがなバック除去。

 

 

一滴は壊獣やパンクラで除去できなかったモンスターの処理、

モンスターゾーンを空けてヌメロンの発動条件を整えること、

一定数いた結界象ビートへの対策として使用しました。

 

リブートは、元々ヌメロンとの相性は良いですが、

特にラビュリンス対策として最高のカードとなっていました。

 

 

③ヌメロンでは、メインの動きのダイレクトを決めるために

ウォール惑星探査車ネットワークダイレクト を採用。

 

ウォールは、ネットワークを持ってくるだけでなく、

相手の直接攻撃を止める効果も使っていました。

 

惑星探査車は、通常召喚権を使いますが

このデッキでは特に問題なく、

うららを使われても場に残らないのでヌメロンの邪魔をせず、

クシャトリアなどでも一部採用されていたので、

自然に使うことができました。

 

ネットワークは、このデッキのメインで、

1枚で完結するカードのため3積。

 

ダイレクトは、手札に来ると鬱陶しいので2積。

数回ダイレクトの玉切れが起こったので、

手札に来て鬱陶しくない人であれば3積も視野に。

 

採用候補だったカード

ディメンション・アトラクター

ティアラメンツや烙印の対策として有効。

発動後はヴェーラー、増G、一滴

そしてヌメロンが使用できなくなるのが致命的。

 

無限泡影

4枚目のヴェーラーとして採用できる。

体感として手札誘発は十分だったので、採用せず。

 

DDクロウ

うらら、増Gに比べてカードパワーが低い。

刺さりそうなテーマも特に思いつかない。

 

二ビル

二ビル自体がヌメロン出すために邪魔。

 

ロンギヌス

ふわんだりぃずも数を減らし、

(と思ったら2ndステージでめっちゃあたりました)

相手ターンにしか発動できないので使いどころがあまりない。

墓穴対策ではわらしの方が優秀。

 

ピリ・レイス/スモールワールド

 

純ヌメロンでよく採用されている。

使ったことがなかった+構築をシンプルにしたかった

ので採用しなかった。検討の余地あり。

 

閉ザサレシ世界ノ冥神

ジェムが足りないので入れれなかった。

EXのトロイメア枠は正直いらないので、

持っていたらぜひ採用したい。

 

サンダーボルト

相手にモンスター1体残さないと

ヌメロンでOTKできないため採用せず。

守備モンスター邪魔だなと思うときが

何回もあったので、採用もありかも。

 

墓穴

うららも増Gも特に怖くなかったので採用せず。

手札誘発たくさん入っているから抹殺は使うかなと

採用しているけど正直いらなかったので、

わらしあたりに替えるのが良いかと。

 

参考にならない対環境

vsスネークアイ

純正なら初動が止めやすいので、

環境デッキの中では勝てる方。

賜炎の咎姫が出てきたら大体終わり。

 

vsラビュリンス

リブート+ヌメロンが手元にあればほぼ勝ち確定。

(ロールバックで巻き返された試合1回)

羽箒ライストだけだと決めきれないこと多々。

 

vsクシャトリア

結構きつい。

モンスターも放置できないし、

クシャトリラバースもやばすぎる。

 

vsティアラメンツ

対面した時点でほぼ負け。

入っている手札誘発では止まらない。

対策も諦めた。

 

vs烙印ビーステッド

超融合でぐちゃぐちゃにされる。

妨害展開共に多いので、止めきれない。

 

vsレッドデーモン

相手の妨害も限られるので、手札次第でいける。

 

vs結界象ビート

4回くらい当たった気がする。

ほぼ勝ってるはず。

 

vsルーン

あまり居なかった。

 

 

総評

メンタル的に優しく、1試合が2ターン程度で終わるので、

イベント周回に向いているデッキ。

勝率は良いわけではなく、展開に幅がないので

勝ちたい対戦には向かないデッキかも。

 

(一回負けて萎えた時にルーンを使ってましたが、

 さすがにルーンよりはイベント周回向いてると思いました。)

 

個人的には久しぶりにやった遊戯王で

イベントを一応走り抜けたので満足です。

 

 

という感じで今回はこの辺で!

 

DOLにレート戦を実装したいpart⑤~運用と問題編~

はじめに

こちらの記事は「DOLにレート戦を実装したい

のpart5の記事で最終回となります。

 

part1では、なぜ「DOLレート戦」を作りたいのか

part2では、どのような仕組みになっているのか

part3では、ボタンで解決するためのマクロの実装

part4では、「DOLレート戦」の使い方

についてお話しました。

 

各パートごとにある程度に話を完結させているので、

見なくても問題はありません。

 

こちらのパートでは、

「DOLレート戦」の運用と問題について

お話したいと思います。

 

 

DOLレート戦の運用

システム構築にマクロの実装も終えたので、

次は運用の段階に入ります。

当初の目的通り、皆に使ってもらい

レートが強さの指標となるのかを確かめていきます。

 

しかし、この段階で問題点が3つ浮き出てきました。

・GASの承認の壁

・性善説に頼った運用方法

・DOL界隈の受け入れ

 

それぞれ見ていきます。

 

GASの承認の壁

ボタンを押すと、登録しているマクロが実行されます。

 

その際、初めてボタンを押すと

次のような表示が出ます。

これについてはpart④でも話していますが、

プラグロムがあなたのGoogle関連の

あなたの情報の一部にアクセスする

というセキュリティの警告になります。

 

大抵の場合は問題にならないのですが、

素人が開発したシステムになりますので、

警戒するのは当然のことでしょう。

 

DOLレート戦を使用するハードルを上げている

ことは間違いないでしょう

 

 

性善説に頼った運用方法

「DOLレート戦」はGoogleスプレッドシート

利用して作成および運用しています。

www.google.com

Googleスプレッドシートは、オンライン上でも

共同で編集できる計算、記録ソフトという認識ですが、

これが運用するにあたって仇となります。

 

共同編集できるということは、

僕が構築したシステムも第三者によって編集ができる

ということになります。

つまり、荒らし行為に対して耐性がない

ということです。

 

現状のDOL界隈はそういった問題行動を起こす人は

いないと認識していますので、

この現状で運用することは問題ないと思っていますが、

 

できるだけ手放しで運用したい以上、

荒らし行為に耐性のないまま公開することは

性善説に頼った運用となり、

別の言葉で言えば無責任になってしまいます。

 

これらの対策として

Googleスプレッドシートには、

閲覧のみ許可する方法

セルまたはページをロックする方法

2種類の第三者に編集させない方法があります。

 

が、共にマクロが使用できなくなるため

解決策にはなりえませんでした。

 

 

DOL界隈の受け入れ

「DOLレート戦」はレートを強さの指標として

表すシステムになります。

これはつまり、

強さが可視化されるということですが、

 

現状のDOL界隈ではこれが

あまり望ましいものではないという考えが

少なくないと感じています。

 

これについて話せば長くなりますが、

一言で表すなら、

過疎化しているゲームで強さを意識して

排他性を帯びたら人口増がさらに困難になるから

ということでしょうか。

 

具体的にそういったことを

言われたわけではないですが、

 

試作段階で直接的に使用を拒否されたり、

コミュニティに設置しても利用されていないことが

現状のDOL界隈で求められていないことを

表していると受け取りました。

 

元々の作成理由が個人的なものであることと、

人口増のために界隈全体で強さ<楽しさを優先すること

言い出したのは自分なので、

 

必要になるまでは公開は控えよう

という考えに至ったわけです。

 

 

まとめ

界隈の受け入れについては

僕はどうすることもできませんし、

仕方のないこととして

受け取っているので良いですが、

 

GAS承認荒らし対策については

考える余地があるのかなと思っています。

 

例えばログインIDを作成し、

Webサービスのような形で公開し管理を

することができればこれらの問題点については

解決しそうな気がしますが、

やるにはまた勉強をしないといけないので

かなり遠い話かなと思っています。

 

 

ということで、長きにわたり

お付き合いありがとうございました。

 

DOLレート戦については

一旦ここで話を区切りたいと思います。

 

 

という感じで今回はこの辺で!

DOLにレート戦を実装したいpart④~使い方編~

はじめに

こちらの記事は「DOLにレート戦を実装したい

のpart4の記事となります。

 

part1では、なぜ「DOLレート戦」を作りたいのか

part2では、どのような仕組みになっているのか

part3では、ボタンで解決するためのマクロの実装

についてお話しました。

 

各パートごとにある程度に話を完結させているので、

見なくても問題はありません。

 

こちらのパートでは、

「DOLレート戦」の使い方について

お話したいと思います。

 

 

「DOLレート戦」の使い方

「DOLレート戦」の使い方は次のようになります。

 

・プレイヤー名の登録

・対戦表の使い方

・説明書

・その他(最新情報、フリーシート)

 

 

プレイヤー名の登録

「DOLレート戦」を使用するためにはまず

プレイヤー名を登録する必要があります。

 

まずシートの「プレイヤー表」を開きます。

次にプレイヤー登録のボタンの下にある

注意事項を読んだうえでボタンを押します。

ボタンを押すとマクロが起動するのですが、

初めて起動すると次のような表示がでます。

これはマクロで使用しているGASから

Googleのアプリケーションを操作しようとするときに

承認が必要になるからです。

 

操作については、

登録ボタンの右側で説明しています。

これらの表示は

プラグロムがあなたのGoogle関連の

あなたの情報の一部にアクセスする

というセキュリティの警告になります。

 

普通のやりとりではそこまで重要な問題に

ならないとされています。

best-cloud.jp

心配ある方は調べてから承認してください。

 

対戦表の使い方

まず席登録で対戦するプレイヤー名を

座っている席に対応した数字にそれぞれ登録します。

対戦を開始し、

縦、横、斜めの順番で対戦をおこない、

各試合結果を勝敗記録のボタンで入力します。

試合結果入力後、

試合結果と入力されている内容が

あっているかを確認したのち、

レート適応のボタンを押し、

対戦後のレートをプレイヤー表に適応します。

2周目の試合を行う場合は

対戦開始からレート適応までの操作を

繰り返し行います。

 

試合を終了する場合は、

席登録をクリアして終了します。

 

説明書

左側ではDOLレート戦の使い方が説明しています。

今まで説明した一連の操作や、

DOLレート戦の仕様について説明しています。

右側では対戦レギュレーションについて

まとめています。

 

と言っても、現状「DOLレート戦」では、

対戦者の同意があれば、

どのようなレギュレーションで

行っても良しとしています。

 

なので、大会などで

どのようなレギュレーションで

行えばいいか困ったときに参考にできるよう

設置しています。

 

将来的にはDOLのスタンダードレギュレーションを

決定できればと考えています。

 

その他(最新情報、フリーシート)

「DOLレート戦」にあまり関係ありませんが、

DOL関連コンテンツの最新情報

自由に記述してもよいフリーシートを設置しています。

 

最新情報では

各コンテンツの最新情報を自動で表示しています。

 

フリーシートでは

特に使用用途がきまっていないので、

とりあえずしりとりしています。

 

 

次回予告

ということで「DOLレート戦」の使い方

について話していきました。

 

次回は最終回、

DOLレート戦の運用と問題点について

話していきます。

 

特になぜDOLレート戦が公開されていないのか

について言及する予定です。

 

ここまでお付き合いくださりありがとうございました。

 

 

という感じで今回はこの辺で!

DOLにレート戦を実装したいpart③~マクロの実装編~

はじめに

こちらの記事は「DOLにレート戦を実装したい

のpart3の記事となります。

 

part1では、なぜ「DOLレート戦」を作りたいのか

part2では、どのような仕組みになっているのか

についてお話しました。

 

各パートごとにある程度に話を完結させているので、

見なくても問題はありません。

 

こちらのパートでは、ボタン1つで解決するための

マクロの実装についてお話したいと思います。

 

こちらのお話も前回パートのシステム構築と同様に

知らなくても使う分には特に問題はないため、

それでも良いという方はこのパートを飛ばしてください。

 

 

マクロとは

マクロというのは一連の動作を

自動化するためのツールとなります。

 

Excel内でのデータ処理や書類作成、メール送信などを

自動化できるという優れものです。

 

優れものですが、使うためには

コードをかかなければなりません。

 

こちらに僕が書いた単純なコードがあります。

Sub」は始まり、「End Sub」は終わりを表し、

Range」はセル位置の取得を、

ClearContents」はセルのクリアを表します。

 

つまり、上のコードは

C68のセルに”〇”を書き込み、

 C70のセルをクリア。

 

 L70のセルに”〇”を書き込み、

 L69のセルをクリア。

 L71のセルに”1”を書き込む。

 

 F63とF64のセルに”〇”を書き込み、

 F65とF66のセルをクリアする

 

という意味になります。

 

プログラム初挑戦の僕にとって

コードを書くのは難しいですが、

 

他のセルに干渉できない関数と違い、

セルに文字を入れたり消したりできますし、

それをボタン1つでできるようになるのは

かなり魅力的です。

 

 

作成したマクロ

作成したマクロ(ボタン)は次の通りです。

 

・勝敗記録(1試合~3試合)

・席登録(Ⅰ~Ⅳ)

・プレイヤー登録

・レート適応

・各種クリア

 

各種クリア」はボタン操作をミスしたとき用に

用意したものなので、それ以外の話をしていきます。

 

 

勝敗記録

それぞれの試合の勝利判定を記録するボタンです。

 

試合の結果に応じて勝ったチームのボタンを

押してもらうことで、

各試合の結果をシートに反映させることができます。

具体的には、

記録表シートの各試合ごとの「勝敗記号」に

Aが勝ったら」を、Bが勝ったら」を

記述します。

 

これにより、IF関数Aが勝った場合

またはBが勝った場合にシートに勝利判定の反映が

できるようになっています。

 

 

席登録

席に座っているプレイヤーをシートに登録し、

各プレイヤーのレートを呼び出すボタンです。

ボタンを押すと

まず入力ボックスが表示されます。

 

プレイヤー名を入力すると

プレイヤー表に記載されている

「プレイヤー名」をマクロで自動検索します。

プレイヤー名が見つかれば、

プレイヤー名が対戦表に記入され、

共にレートが呼び出されます

プレイヤー名が見つからない場合は

見つからない旨のダイアログが表示されます。

 

つまり、プレイヤー表に登録しなければ

席登録はできないようになっている

ということです。

 

 

プレイヤー登録

プレイヤー表にプレイヤー名を登録するための

ボタンになります。

ボタンを押すと

まず入力ボックスが表示されます。

プレイヤー名を入力すると、

プレイヤー名が「プレイヤー表」に記入され、

レート1000、階級の振り分けが行われます

DOLで使用している名前を登録してほしいので、

プレイヤー名が3文字以上、7文字以下の場合

ダイアログを表示して、登録を無効にしています。

また、登録するプレイヤー名と一致する

登録済みのプレイヤー名をマクロで自動検索し、

一致する名前があったらダイアログを表示して、

登録を無効にしています。

 

 

レート適応

対戦後に変化したレートを

プレイヤー表のレートに反映させるボタンです。

 

今回のマクロの実装で

最もやることが多い部分になります。

レート適応では、試合数と対戦プレイヤーの

プレイヤー名対戦後レート連勝数勝利数

取得します。

 

取得したプレイヤー名を基に「プレイヤー表」で

検索し、そのプレイヤー名のを取得。

その列に取得した対戦後レートや連勝数を

項目ごとに反映させています。

 

これを4名のプレイヤー全てに行っています。

補足

試合数と勝利数も記録され、

それを基に勝率の計算を裏でしています。

ただ、勝率はプライバシーにかかわる情報だと考えているので、

公開情報として扱っていません。

 

裏話

そちらの方面にお詳しいふぇんりるさんに相談したところ

なんとコードを書いてくれました。

本当にありがとうございます。

 

しかし、ここにきて驚くべき事実ですが、

実は「DOLレート戦」の実装はExcelではなく

皆に使ってもらうためにGoogleスプレッドシート

行いました。

 

相談段階ではExcelで行っていたため、

ExcelのマクロコードのVBA言語で

書いていただきましたが、

 

(Excelで使用されるVBAとGoogleスプレッドシート使用されるGAS)

Googleスプレッドシートのマクロは

VBAではなくGoogle Apps ScriptGAS)で

記述されているため、

頂いたコードをそのまま使うことは

できませんでした。

 

なので、頂いたコードを翻訳し、

それをGASで記述するということで

なんとか実装をすることができたいう裏話でした。

 

ちなみに、実装の後にこの話をふぇんりるさんにしたところ

「言ってくれればやったのに~」と言ってくれました。

やさしい;;

自分的にはふぇんりるさんにお手を煩わせたくなかったので、

脳筋で翻訳しましたが、結果的に勉強になったのでOKです。

 

 

次回予告

ということで「DOLレート戦」のマクロの実装

について話していきました。

 

次回はついに、DOLレート戦の使い方について

話していきます。

 

ここまでお付き合いくださりありがとうございました。

 

 

という感じで今回はこの辺で!

DOLにレート戦を実装したいpart②~システム構築編~

はじめに

こちらの記事は「DOLにレート戦を実装したい

のpart2の記事となります。

 

part1では、なぜ「DOLレート戦」を作りたいのか

の”構想”について話していますが、

各パートごとにある程度に話を完結させているので、

見なくても問題はありません。

 

こちらのパートでは、DOLレート戦の心臓である

システム構築について話していきます。

分かりやすく書いてみたつもりではありますが、

情報量が非常に多く、専門性も伴う内容となってしまったため

・DOLレートのシステムに興味がある方

・DOLレートのシステムに疑問がある方

・DOLレートのシステムを参考にしたい方

 

のみ、このパートの閲覧を推奨させていただきたいと思います。

 

仕組みは分からなくても、使う分には特に問題はないため、

それでも良いという方はこのパートを飛ばしてください。

 

問題点の解決

前回、DOLにレート戦のシステムを導入する際には

プログラムをある程度組まなければいけないこと」と

DOLが2vs2であること」の2つの問題点がある

ということについてお話しました。

 

1つ目は頑張るしかないので、考える必要は特にないですが、

2つ目はシステム面で解決する必要があります。

 

どのように解決したのか。

結論から言えば、「同じチームの人のレートを1つ」にしました。

 

例えば、席にと座っているとして、

で対戦を始めたとき、ⅠとⅡⅢとⅣがペアになります。

そうした時にペアになった者同士のレートを足して

1つにすることによって、疑似的に2vs2を1vs1にした

ということです。

 

これによって、イロレーティングのシステムを

DOL対戦でも使用できるようになりました。

 

 

システムの構築

実際のシステムは以下のように構築しました。

・合計レートの算出

・変動レートの算出

・補正ボーナスの算出

・連勝記録の管理

・レート反映

 

それぞれ見ていきます。

 

 

合計レートの算出

こちらは変動レートの基となる

チームの「合計レート」を算出する項目です。

 

対戦者レートの列で、対戦者の対戦前のレートを表示。

 

1試合目の列での対戦(Ⅰ+Ⅱ、Ⅲ+Ⅳ)

2試合目の列での対戦(Ⅰ+Ⅳ、Ⅱ+Ⅲ)

3試合目の列で斜めの対戦(Ⅰ+Ⅲ、Ⅱ+Ⅳ)

で各試合ごとのチームのレートの合計を算出します。

 

 

変動レートの算出

こちらでは、「合計レート」と勝敗を基に

変動レート」を決定します。

 

変動レートの計算式は次のようになっています。

=(64/(10^((RA-RB)/800)+1))/2

 

RA = Aチームの「合計レート」RB Bチームの「合計レート」

となります。

 

AチームBチームレート差を出し、

なんやかんやして数値を割り出すものです。

 

Aチームが勝った場合は

=(64/(10^((RA-RB)/800)+1))/2」を参照

Bチームが勝った場合は

=(64/(10^((RB-RA)/800)+1))/2」を参照します。

 

なので、

勝敗記号でAが勝ったら「」、Bが勝ったら「」と記録。

それを基に「採用レート」のIF関数で参照する計算式を決定し、

変動レート」を算出します。

補足

補足ですが、元のイロレーティングの計算式は

「K/(10^((RA-RB)/400)+1」(K= 定数)となっており、

実装で採用している「=(64/(10^((RA-RB)/800)+1))/2」と

少し違いますが、

これは合計レートを基に算出しているために

RAとRBの差もプレイヤーレートに比べて倍近い数値が出るため、

他の数字を倍にすることで調整をしているからです。

 

 

補正ボーナスの算出

補正ボーナス」では、勝ったプレイヤーに対して

「変動レート」に加えて与えるボーナスレートを算出します。

 

DOLレート戦では全体のレートが上がりやすくするため

かつ、実力をレートに反映しやすくするため

2つの補正ボーナスを採用しています。

 

1つは「卓内平均ボーナス

もう1つは「連勝ボーナス」です。

 

まず、「卓内平均ボーナス」についてですが、

まず対戦者全員の「平均(Average)レート」を算出します。

その「平均レート」と対戦者レートをそれぞれ比較し、

「補正ボーナス」を算出します。

 

計算式は以下を採用しています。

=(32/(10^(((対戦者レート*3)-(平均レート*3))/800)+1))/((対戦者レート+2000)/1000)

 

=(32/(10^(((対戦者レート*3)-(平均レート*3))/800)+1))の部分で

仮として「平均レート」と対戦者を対戦させ、

対戦者が勝った場合の仮の「変動レート」を算出。

 

/((対戦者レート+2000)/1000)」の部分で

対戦者レートの数値を使用しつつ、

仮の「変動レート」を割っています。

 

つまり、ここではレートが高ければ高いほど、

卓内平均ボーナス」が低くなるように設定しています。

 

次に「連勝ボーナス」についてですが、

次で説明する「連勝記録」を基に算出される「現連勝数」を基に

卓内平均ボーナス」を追加で付与するというものです。

 

詳しく説明しますと、

計算式は以下を採用しています。

=IF( 現連勝数 > 0,( 現連勝数 -1 ) * 卓内平均ボーナス ,0)

 

連勝数が0なら「連勝ボーナス」は0。

連勝数が1以上なら「連勝ボーナス」は

連勝数から1引いた数*「卓内平均ボーナス」となる。

 

ということです。

 

つまり、2連勝目から「卓内平均ボーナス」を基とした

連勝ボーナス」が試合ごとに発生するということです。

 

この2つの「補正ボーナス」としてレートを調整しています。

補足

ちなみに「勝敗記録表」と「試合数」もこの項目に記載していますが、

これはプレイヤー表への記録用なので、

補正ボーナスとは現状関係ありません。

(これに関わるボーナスを実装予定だったのでこの位置にあります)

 

 

連勝数の管理

各プレイヤーの現連勝数をリアルタイムで算出する項目です。

 

勝ったら連勝数に+1

負けたら連勝数を0にリセット

とできれば非常に楽ですが、

 

スプレッドシートでは他のセルに干渉することができないので

かなり複雑な構築になってしまいました。

 

計算式は

=IF(最後の試合=負け,0を表示,IF(最後の試合=まだ,もとの連勝数+勝っている数(まるのかず),IF(1試合目が負け,勝っている数(まるのかず),IF(2試合目が負け,1,それ以外は0))))

となっています。

 

下の段で再構築を試みようとしましたが、

1試合前の連勝数は記録できても、

リアルタイムでの現連勝数を記録できなかったので、

結局残しています。

補足

ちなみに下の段も、プレイヤー表への記録用として残しています。

 

レート反映

これまで算出した数値を基に

対戦者レートへ反映させます。

 

計算式は次のようになっています。

=IF(勝った場合,元レート+変動レート+卓内平均値ボーナス+連勝ボーナス,IF(AND(負けた場合,対戦者レートが変動レートより低い場合),0,IF(AND(負けた場合,対戦者レートが変動レートより高い場合),対戦者レート-変動レート,"")))

 

勝った場合はレートが加算されるので

元々のレートに、「変動レート」の数値と

「補正ボーナス」の2つの数値を足す処理をします。

 

負けた場合は2パターン

1つ目が元々のレートが「変動レート」より低かった場合

これは”0”になるようにしています。

 

2つ目は元々のレートが変動レートより高かった場合

こちらは通常通り元々のレートから

「変動レート」の数値分引く処理をしています。

補足

なぜ、元々のレートが「変動レート」より低かった場合に

”0”になるようにしているかというと

レートにマイナスの数値を出させないようにしているからです。

 

次回予告

ということで「DOLレート戦」のシステム構築

について話していきました。

 

次回は実装に向けて、ボタン1つで操作できるよう

マクロの実装について話していきます。

 

ここまでお付き合いくださりありがとうございました。

 

 

という感じで今回はこの辺で!

DOLにレート戦を実装したいpart①~構想編~

はじめに

皆さんこんにちは、アンドリューです。

 

こちらの記事は「DOLにレート戦を実装したい

のpart1の記事となります。

全部書こうとしたら、1万字くらいいきそうだったので、

ある程度の区切りでパート分けしたいと思います。

ご了承ください。

 

こちらのパートでは

「DOLレート戦」をなぜ作りたいのか

構想についてお話をさせていただきます。

 

「DOLレート戦」を作成するにあたって

(DOL配信風景)
DOLで配信をしたり、動画を作るときに

いつも思っていることがありました。

 

DOL界隈での自分の立ち位置が微妙すぎる」と。

 

なぜ立場を気にするかというと、

 

ここ数年はDOLを知らない人向けにも

ターゲットを向けていましたので、

自分がDOL界隈でどういう立ち位置にいるか

わかりやすく伝えた方が話が早くなるからです。

 

しかし、実績を作る場があまりなかったので、

結局「DOL歴10年~」という

当たり障りのない形になっていました。

 

近頃では、jokerさんやノートさんにより

大会がある程度の頻度で開催されるようになりましたので、

実績を作ることができる場」というのは

用意されるようにはなってきましたが、

(大会の主目的はそうではないかもしれませんが)

 

他の対戦ゲームでは勝率ランクレートによって

強さの指標を計ることができますが、

DOLにはそういうものはありません。

補足

補足ですが、DOLでも勝率は記録されています。

しかし、他者のデータを移行する際に勝率も共に移行されることや

訓練デッキを使用することで勝率に影響されない試合を意図的に行うことができるので、

明確な強さの指標をしめすものとしては使用することができませんでした。

 

なので、そういった明確な強さを示すシステムが欲しいなと

常々思っていました。

 

そこで、チェスやサッカー、ポケモンやぷよぷよで

使用されてきたイロレーティングのシステムを

DOL用に構築してみよう。

 

というのが今回の話の発端となります。

 

イロレーティングの仕組み

イロレーティングとは、簡単に言えば

強さを数値で表したものになります。

レートの数値が高ければ高い程強いプレイヤーですし、

低ければその反対という風になります。

 

どのようにして数値として表すかといえば、

 

はじめに各プレイヤーに数字 = n を振り分けます。

ここでは 「n = 1000」としましょう。

 

例えばこの時にプレイヤーAとプレイヤーBが対戦を始めたら

A(レート1000) vs B(レート1000)となり、

この時のそれぞれの勝率は50%になるはずです。

 

なので、プレイヤーAかBのどちらが勝っても

「変動する数値」は同じになります。

ここではプレイヤーAが勝ったとします。

A(レート1000 + 16 ) vs B(レート1000 - 16

 

すると、レートで勝ったプレイヤーは数値がプラスされ、

負けたプレイヤーは数値がマイナスされます。

 

これを繰り返していけば、

強さを表せるようになると一瞬思いますが、

「変動する数値」が固定(ずっと±16)ですと

レートが高くなるほど有利なだけのシステムになります。

 

 

なので、レートの差によって「勝率」を割り出し、

それをもとに「変動する数値」を算出する必要があります。

 

例えば、プレイヤーAのレートが1200

プレイヤーBのレートが1000だった時、

 

Aの方がレートが高いですので、

AはBに対しての勝率は高く、逆にBの勝率は低くなるはずです。

 

なので、Aが勝った時の「変動レート」を低くし、

Bが勝った時の「変動レート」を高くすることによって、

勝率をレートに反映させることができます

 

Aが勝った場合

A(レート1200 + 8 ) vs B(レート1000 - 8

Bが勝った場合

A(レート1200 - 24 ) vs B(レート1000 + 24

 

こうすれば、レートが高くなるほど上げるのが難しくなり、

レートが低くなるほど上げるのが易くなります。

 

これがイロレーティングの主な仕組みとなります。

 

これにより、ある程度の対戦数を繰り返し、

特定のレート帯に落ち着くことで、

レートを「強さの指標」として扱うことができる

ようになります。

補足

ちなみに、勝率を反映した変動レートを算出するための計算式は

K/(10^((RA-RB)/400)+1」(K= 定数、RA=Aのレート、RB=Bのレート)となり、

K= 32、RA=1200、RB=1000 を代入すると、Aが勝った場合の変動数「8」が、

RAとRBを入れ替えた「K/(10^((RB-RA)/400)+1」の式で計算すると

Bが勝った場合の変動数「24」が求められます。これに関しては次回の記事で主に扱います。

 

 

実装にむけての問題点

チェスやサッカーなどでも

使用されているレーティングシステムですが、

DOLレート戦を実装するに向けて

いくつか問題点があります。

 

 

1つは「プログラムをある程度組まなければいけないこと

もう1つは「DOLが2vs2であること」です。

 

 

プログラムをある程度組まなければいけないこと

(Excelで色々試している風景)

システムの構築自体は、実はExcelの関数だけでできます。

(というかできました)

 

ただ、自分が使うだけでなく

実装のためには皆に使ってもらう必要があるため

わかりやすく、ボタン1つで出来るように

マクロのコードを書かなければなりません。

 

他にもシステムの管理や維持をするために

それらの経験や知識も必要になります。

 

僕はそのような経験がないので、

1から学ぶ必要がありました。

 

 

DOLが2vs2であること

(2vs2で遊ぶDOLプレイヤーたち)

実はイロレーティングは1vs1のためのシステムなので、

3人以上の対戦ゲームには使えないという問題点がありました。

 

2vs2の対戦がメインで行われているDOLでは

当然そのままイロレーティングを採用することはできません。

 

システム面で工夫する必要があります。

 

 

次回予告

ということでここまで「DOLレート戦」をなぜ作りたいのか

について話していきました。

 

次回は今回あげた問題点も解決しつつ、

DOLレート戦の心臓である

システム構築について話していきます。

 

ここまでお付き合いくださりありがとうございました。

 

 

という感じで今回はこの辺で!

アニメーションに初めて挑戦した話

皆さんこんにちは、アンドリューです。

 

配信で使用するOPムービー(待機モーション)を作成しました。

(開始~2分まで)

www.youtube.com

アニメーションに初めて挑戦しましたが、

そこそこの出来になったと思います。

 

ということで今回は、

自分用に記録するためということも含めて、

OPムービーの制作過程をまとめていこうと思います。

 

 

コンセプトの決定

さて、0から何かを創る作業は

非常に骨が折れますので、

まずはコンセプトを決めます。

 

結論から言いますが、

コンセプトは「ポケモンのトレーナー戦」です。

決めた理由は

ポケモンに思い入れがあること。

モーションが短いので描く枚数が少ない。

そして良いフリーBGMを見つけたことがあげられます。

 

見つけた良いフリーBGMは

表裏 hyouriさんの「戦闘曲」です。

www.youtube.com

曲の構成がポケモンの戦闘BGMと似ており、

非常に僕好みです。

 

作品制作している間も、制作物の確認も兼ねて

このBGMを何十回も聞きましたが

聞くたびにモチベーションがあがったので、

アニメーションが完成できたのも

この曲のおかげかもしれません。

 

さて、コンセプトと使用曲が決まったところで

早速制作していきましょう。

 

 

制作過程

制作過程は主に5つに分けれます。

・トレーナーモーションの作成

・登場アニメーション

・背景の作成

・VSモーションの作成

・その他調整

 

トレーナーモーションの作成

まずはトレーナーモーションです。

なにも無いところからこの動きを作るのは

さすがに無理だったため、

 

ポケモンBW2のPWTのダイゴ戦モーションを参考に

トレスし、キャラクターを置き換えて作成しました。

 

髪揺れのみも含めて20枚用意しましたが、

この絵の制作は思ったよりは大変ではありませんでした。

 

(クリスタでの作成風景の再現)

 

参考となる元モーションをよく見てみると

右手左手足先で分かれており

大きなアクションをするとき以外は

1枚ずつ描くのではなく、

基本的にそれらのレイヤーをズラして動きを付けていました

 

なので実質描いたのは、最初の立ちポーズと

大きく動いた腕と表情のみで済みました。

 

ただ、気付いたのが少し遅かったので、

パーツごとにレイヤー分けが出来ず、

動いた箇所を投げ縄ツールで選択し

動かすことになってしまいましたが・・・。

 

これはやってみないと気付かなかったことだと思います。

 

 

登場アニメーション

背景アップから定位置にカメラがズレるアニメーションです。

これはかなり強引な方法で作成しました。

 

参考画像を動くフレーム毎にトレースし、

そのトレースに合わせて

トレーナーと背景を動かしました。

 

トレーナーモーションはどう動かしていたかは

分かりましたが、これに関しては

元の参考画像であるゲームの方で

どのように作成していたかがわかりませんでした。

 

今回は無理やりな方法で作成したため、

もっとも荒くなってしまった部分になります。

 

 

背景の作成

 

ただの白い背景でやろうかなとも思いましたが、

明らかに手抜きですし、

せっかく作成したトレーナーモーションが

もったいないので背景画像も作成しました。

 

コンセプトはポケモンですが、

作りたいのはポケモンの画面ではなく、

ポケモン風の僕の画面なので、

メインで活動をしているDOLの対戦画面を元に

背景を作成しました。

 

床は対戦画面を参考画像を基にパースをかけ、

それをトレスし、描写。

  

背景はDOLが使用している素材サイトから素材をDL、

床と壁に見えるように配置し作成しました。

 

 

VSモーションの作成

登場アニメーションの前に表示されるモーションで、

参考にしたのはポケモンBWの四天王戦開始画面です。

 

構図を参考に素材を描こうとしましたが、

この時点で体力が底をつきそうだったので、

元々持っていた画像とフリー素材のアニメーションを組み合わせ、

動画編集ソフトで加工したり、動かしたりして作成しました。

 

個人的に手を抜いたつもりではありましたが、

ここはとてもよくできたと思います。

 

 

その他調整

モーションを音に合わせて動かしたり、

見てて飽きないようにムービーの構成を考えたり、

画面がコンセプト通りに見えるよう

図形や文字を配置したり、

トランジションをエフェクトに利用したり

 

というような感じです。

 

今回はトレーナーモーションから制作に入ったので、

ムービー構成が後まわしになってしまいましたが、

本来、先に決めるべきことだと思います。

(構成によって使用する素材がかなり変わるため)

 

 

僕は「考えること」と「作業」は別にしたい人間なので、

「作業の合間に構成を考えること」はかなり面倒でしたが、

ある程度のストーリになるように心掛けました。

 

文字のフォントも世界観に合うようなものを探したり、

音ハメも鬱陶しくなりすぎないよう心掛けました。

 

これらの調整が最も難しく、

かつ最も地味な作業だったと思います。

 

 

完成

ということで無事完成し、

配信でお披露目することができたわけですが、

 

僕の感想としては、なんとか見せれるものにはなったかなと。

 

ただ、

反省点も多く、とても100点とは言えないのが正直なところです。

 

特に、先ほども言った通り、

登場アニメーションを強引に作成したことによって出た雑さが

作成した本人である自分は見逃せませんでした。

 

あらじめ難しそうなところは分けて

計画的に取り組めば、ある程度は改善するのかなと思います。

(ただ、参考元がどのようにやっているかがわからないですが)

 

 

まとめ

ということで、OPムービーの制作過程をまとめました。

やることを分け、賢く作業したつもりでしたが、

そこそこな出来のものしか作成できませんでした。

 

やはり、世に出回っている作品たちは

えげつないものばかりだということに改めて気づきました。

 

とは言え、作ってみて新しい発見もままありましたし、

楽しかったので良いこととしましょう。

 

 

という感じで今回はこの辺で!

最後までお付き合いいただきありがとうございました。



 

 

 

 

使用素材

[背景画像]

MGS技研 様:Mutation Genes Simulation 技術開発研究所

[使用BGM]

表裏 Hyouri 様:[オリジナルBGM] 戦闘曲 [フリー] - YouTube

[その他素材]

たけふじ 様:ニコニ・コモンズ-カラフルな星のワイプ

VideoBase 様:   VideoBase|VTuberや配信者のための配信素材置場

動画AC 様: 電気ショック(5色)の動画|無料の動画素材サイト「動画AC」

 

キャラの方針が定まらないので、自己紹介をします

皆さんこんにちは、アンドリューです。

 

今自分の扱っているコンテンツ整理を行っているのですが、

どうやらYoutubeチャンネルを開設してから5年半経過しているようです。

 

結構経ちましたね。

 

さて、そんなYoutubeでの活動ですが、

ひとつ悩みがあります。

 

それは、キャラの方針が定まっていないことです。

 

やり始めた当初は、そういうものはやっていったら

勝手に形成されていくものだろう。と思っていましたが、

 

5年経っても定まっていないので、

どうやらちゃんと決めないといけないようです。

(もはやキャラが定まらないキャラの可能性)

 

ということで今回は、ブログも一新したことも兼ねて

キャラを定めつつ、自己紹介の記事を書いていこうと思います。

 

 

プロフィール

名前  :アンドリュー

性別  :♂

年齢  :20才くらい

誕生日 :2月14日

 

さて、まずはオーソドックスな項目からです。

 

名前は「アンドリュー」で、性別は「」です。

名前は元々、色々な名義でやっていたのですが、

現実との整合性を兼ねるため、「アンドリュー」に落ち着きました。

 

年齢は「20才くらい」で、誕生日は「2月14日」です。

なんならこの記事の公開日バレンタインデーです。

(Googleにも祝われてました。)

 

キャラ付けをしようとしたから

バレンタインデーという訳ではなく、

普通に本当の誕生日がこれというだけなので、

恐らく僕はこの設定を持て余していますね。

 

 

活動内容

メイン :デュエルオブレジェンドを中心に活動

趣味  :ぷよぷよ、絵を描くこと、動画を編集・配信すること

目標  :DOLプレイヤーの人口を増やすこと!

 

こちらは活動に関係する項目です。

色々なゲームで活動をしようと思いましたが、

結局「デュエルオブレジェンド」に落ち着きました。

(リンク:デュエル・オブ・レジェンド | SDIN無料ゲーム

 

趣味は「ぷよぷよ、絵、動画編集・配信」です。

ぷよぷよ」は、最高15連鎖を組めるくらい。

つまり、ままやってます。

 

」や「動画編集・配信」は基本的に

自分でやっています。技術はまだまだです。

 

(作ったサムネイル)

 

目標は「DOLプレイヤーの人口を増やすこと!

メインで活動しているDOL(デュエルオブレジェンド)

プレイヤー人口を増やし、活気づかせることです。

 

理想は高い方が良いと思っているので、

ゆっくりとやっていきたいと思います。

 

 

キャラ設定

チャーム

ポイント:紫の髪、パッツンヘアー、赤いはちまきと瞳

一人称 :ブログ → 僕、配信 → 俺、真面目 → 私

口癖  :「しまスゥゥゥゥゥ」

 

こちらはキャラ設定です。

詰め切れていない部分もまだありますが、

とりあえず決まっているものをあげましょう。

 

チャームポイントはそれぞれ、

使用しているアバターの特徴になります。

基本的にはこれを抑えれば

何でもいいという気持ちだったのですが、

自分で絵を描くときに絵柄がブレにブレたので、

基準となるキャラ絵を作成しました。

かわいい

 

このキャラ絵を基に絵を描いて

定着させていこうと思います。

 

(キャラ絵を基に描いたアニメーションの一部)

 

一人称も統一したかったので、使いやすいように

文章だと「」、喋りだと「」、真面目だと「」にします。

 

口癖は語尾の「す」がよく「th」になることです。

配信でよく見られます。

 

 

その他

その他:ブログ、動画投稿、配信など不定期でやっています。

 

定期更新・配信は向いていなかったので、

不定期にやろうと思います。

 

配信は、土曜日の20時を中心にやっていくので

暇があれば覗きにきてください。

www.youtube.com

 

 

まとめ

名前  :アンドリュー

性別  :♂

年齢  :20才くらい

誕生日 :2月14日

メイン :デュエルオブレジェンドで活動

趣味  :ぷよぷよ、絵を描くこと、動画を編集・配信すること

目標  :DOLプレイヤーの人口を増やすこと!

チャーム

ポイント:紫の髪、パッツンヘアー、赤いはちまきと瞳

一人称 :ブログ → 僕、配信 → 俺、真面目 → 私

口癖  :「しまスゥゥゥゥゥ」

その他 :ブログ、動画投稿、配信など不定期でやっています。

 

ということで、無事プロフィールが完成しました。

今後はこの設定を基本に活動していこうと思います。

 

決めただけで終わらないように

ゆる~くやっていこうと思いますので、

今後ともよろしくお願いします。

 

 

 

という感じで今回はこの辺で!