見出し画像

憧~!Mortal検討画面の情報、スプレッドシートに書き込んどいて~!

 ありがとうございます。

 Mortalのレポート画面のデータを右クリックメニューからスプレッドシートに書き込んでくれるChrome拡張を作りました。
 最近話題の悪手率も書いてくれます。
 後半でMortalの活用そのものについても詳しく書いています。ぜひお読みください。

使い方

1. ChromeストアからMortal Conveniencerを追加

 ChromeストアでMortal ConveniencerをChromeに追加します。リンク先に飛んで「Chromeに追加」を押してください。

2. スプレッドシートの編集者に追加

 新しくスプレッドシートを作って、共有を押してmortalconveniencer@gmail.comを編集者に追加します。
 スペルミスしなければorコピペすればアイコンがデフォルトじゃないアカウントが出てきます。

通知とメッセージは特にいりません


3. スプレッドシートのurlを保存

 とりあえず上のアドレスバーのdocs.google.com/spreadsheet/うんぬんかんぬんをコピーします。
 パズルのピースみたいなところをクリックしてmortal conveniencerを押すとポップアップが出るので、さっきコピーしたURLを貼り付けて保存します。保存を押し忘れないようにご注意

拡張機能のアイコン、パズルのピース。分かるような分からないような
くりっく
ぽっぷあっぷ


4. レポート画面で右クリック

 準備できたのであとは適当な牌譜をMortalにかけて、レポート画面で右クリックにある"成績を書き込み"を押しましょう。
今のところ日本語のページにのみ対応しています。

押しましょう


5. できました

 できました

できました

 悪手はπτ​(a∣s)<0.05の選択の、準悪手はπτ​(a∣s)<0.1の選択の割合です。準悪手には悪手も含まれます。
あとは好きなようにご活用ください。とりあえずグラデーションつけるとMortalと意見が合わなかったところが見やすくておすすめです。

グラデーションをつけた

 せっかくのMortalのデータを適切に扱ってもらいたいので、ここからデータの見方の話をします。


振り返りのための活用

 評価が低い半荘を色付けしておくと後で見やすいです。
 すぐ横にMortal検討画面のURLもあるので後からでも簡単に振り返れます。

赤が濃いやつは𝓝𝓸𝓫𝓲𝓼𝓱𝓲𝓻𝓸かも

 ラスっても「お前はがんばった」って慰めてもらえたり、そもそも「Mortalに上手いって言ってもらえるようにがんばろう!」みたいなモチベーションが湧いたりするので、Mortalは今を生きる雀士たちの親みたいなもんですね。違うか。

 見返すときにどういった打牌を参考にすればいいかですが、自分が牌理を間違えてたものを見ましょう。後述します。
 非効率な部分は真似ずに、学ぶ価値のある部分から積極的に学びましょう。

★強さの指標としての活用★

 ここが本題です。
 
ここが本題です。

クイズ

 ここで問題です。
 プレイヤーAとプレイヤーBの牌譜をMortalにかけて、以下の結果が得られました。

ふぃぎゅあ

 どちらの方が強いでしょうか?

 Aの方が少し良いスコアですね。

 Aの方が強そうと思った方、まだ早いです。
 もしかしたらこの人は1半荘の結果をそのまま平均として出しているだけかもしれません。

 では半荘数もお教えしましょう、このデータはどちらも500半荘程度調べた結果です。

右のデータを取った方、左より几帳面ですね

 ならAの方が強そう? 本当にそうでしょうか?
 同じくらい? 慎重なのは良いことですね。
 Bの方が強い? おませさんですね。
 では答えを言うのでスクロールをお願いします。















 ご苦労様です。ご協力感謝します。
 
 どちらが強いかは分からないと思った方、あなたが正解です。
 答え合わせをしましょう。

LuckyJのデータは僕がとりました。
左も500に揃えるか迷ってやめました

 「右の方が(ほぼ確実に)強い」です。
 今をときめく? ときめいていた? LuckyJでした。
 天鳳の特上卓で1300戦ぐらい打って、1000戦以上安定段位ランキングぶっちぎりで一位のあのAIです。
 左の人は僕のお友達の一般雀聖3なあまあんさんです。集計ありがとうございます。O型らしいです。542。。
 
 さて、このくらいのMortal Ratingや悪手率のプレイヤーが一般的には大体どのくらいの強さなのか見てみましょうか。
 念のためそれぞれのデータの95%信頼区間を付記した表も貼っておきます。
 誤差はせいぜいRatingで±0.3、悪手率で±0.14程度しかないですよってことだけ分かれば大丈夫です。

麻雀の500戦は短期ですがMortalのデータは500戦でもだいぶ安定します


 こちらが段位別Ratingと比較した表になります。

参考: note RED『Mortalで見る雀魂のプレイヤーレベルまとめ

 段位別のデータは最近Mortal悪手率が人気になった火付け役のnote『Mortalで見る雀魂のプレイヤーレベルまとめ』から引用させていただきました。ありがとうございます。
 そもそもMortalの想定と全然違うルールで打っている人達や、サンプルサイズが小さいもの横には(参考)とつけています。

 二人とも玉の間の聖3や八段のスコアを優に越えていますね。(LuckyJの一致率が低い以外)
 MortalはLuckyJの実力をそこそこ適切に評価できているようにも見えます。
 でもあまあんさんのRatingがLuckyJと遜色ないからといって、ミスをしないAIと並ぶほど強いのでしょうか?多分違いますよね。
 Mortal Ratingは実力の評価基準としてはあまり適切ではありません。悪手率なども同様です。その原因について話します。

 

 ★★めっちゃめちゃ大事な追記★★


この節での結論は、上記の表と自分のMortalRatingを比較して、自分の実力がどのくらいの段位にいるのかを推測する、などという行為にほとんど意味は無い、ということです。
 この記事を読んでなおMortal悪手率などを過剰に気にしている方もいらっしゃったので、伝わりづらい書き方をしてしまったと反省しているため追記しております。
 MortalRatingや悪手率は、その半荘でMortalと意見が割れたかことが多かったかを見るための、そして不運な結果への慰めの機能であり、決して実力を測るための機能ではないと心に刻んでください。
 あとはリテラシーがある人同士で冗談で自虐を言うのに使うくらいはできます。


 ★★★★


麻雀AIのスコアが抱える致命的な欠陥

 現状の強い麻雀AIたちは、打牌を評価するときに期待値を考えません。
 AIの判断基準において評価が低い選択肢は、それが期待値で大差であれ微差であれ同様に減点されます。
 これはAIが「適切に第三者の実力を評価する」ためのものではなく、「よりよい麻雀を打つ」ためのものであるため仕方のないことです。

 あまあんさんは、比較的どうでもいい打牌でMortalと一致し、LuckyJは比較的どうでもいい打牌でMortalと一致しなかったせいで、両者のMortal Ratingが近づいてしまったのでしょう。
 これを見分けることはできないのでしょうか?

 簡単です。どんな打牌がMortalに悪手扱いされることが多いのかをチェックすればいいのです。

LuckyJのMortal的悪手

 先に申し上げると、LuckyJの悪手、準悪手はどちらも6割手組における攻守のバランスの相違によるものでした。これらは期待値ではかなりどうでもいいです。仮にこれらを除くとLuckyJのMortal的悪手率は選択全体の1%強しかないことになります。
 以下にその例を挙げていきます。

1928字の浮き牌比較。この辺は人間も減点されます。
準悪手以下になるのは意外とレアです


先切りして怒られ。


打点が落ちるターツと安牌の比較。


LuckJお得意のホンイツダッシュ。持ち点に関係なくこいつらはこの選択してます


LuckyJはチャンタも好きですが、Mortalは嫌い。


 他に多かったのはリーチ判断、副露ケアの手順、リーチを受けてオリている最中に手を崩すかの判断、点数状況込みの判断などですが、その辺りは期待値差が大きそうでした。
 AIごとの特徴については後で簡単に話します。
 重要なのは、守備が絡まない牌理においてMortalがLuckyJの選択を悪手、準悪手扱いしたことはほぼ皆無だったことです。

人間のMortal的悪手

 あまあんさんの悪手、準悪手の3~4割ほどが牌理を間違えて怒られているものでした。その多くはどれも普通の人間には難解ですが、期待値の損失が大きく、MortalやLuckyJとの差はここでついていると思われます。
 攻守のバランスで悪手や準悪手になっているものもありますが、悪手、準悪手の中の1~2割ほどしかありませんでした。LuckyJとはだいぶ違います。

 偉そうに講釈を垂れている一般聖3のだみーさん(僕)の悪手も載せます。
 僕の悪手率は3.1%程度でしたが、守備寄りの手組で減点される頻度が気持ち高い程度で、あまあんさんと悪手の内訳は大差ありませんでした。Mortalっぽい人間はだいたい同じ傾向にあると思われます。
 また例を挙げていきます。

イッツー含み。


タンヤオ赤あってドラを切らないとだいぶ遅くなる。


8p4枚使いでフリテン両面持ってきて脳がバグる。


9pが比較的安全なのもあって三色見切り。


ペン7mと心中するのはけっこう悪いらしい。


またペンチャンと心中しようとするあまあんさん。
先切りもいいが流石に56m引きが激痛


下家に親を流されるのが怖くなってしまったのか2mを残す。
アガらないと始まらない


僕の打牌。
打8mはマンズ以外の縦引きで全部大やけど


僕の打牌その2。
一盃口チートイ三暗刻全部消える、14mがない、打9pの方がマシなどの理由で打7pは789mを差し置いて一番下。
すいません。


僕の打牌その3。
愚形が嫌いなら愚形を先に埋めよう。


僕の打牌その4
2pが残っていても打43p。
3467は普通の両面より瞬間受け入れが1種減る代わりに5から埋まると三面待ちになる。
3344は瞬間2種減って、一手進んでも両面止まり。


 以上のような、守備が絡まない牌理に関してのMortalの悪手判定は、ほぼ間違いなく人間側が間違っていると思われます。なお、MortalがLuckyJに準悪手以下と判定したものがなかったというだけなので、Mortal最善の正確性については不明です。悪しからず。
 こんな簡単な牌理は実践でもミスりようがない、と思った人は強いです。他の選択も優秀なら、攻守のバランスを除いたMortal悪手率はLuckyJと同じように1~2%に落ち着くと思われます。悪手の内訳、数えてみてください。
 
 また、少し落ち着けば気付くだろうというようなポカで悪手になっているのも人間の特徴ですが、案外少ないです。
 少しだけあまあんさんの打牌例を見せます。

手牌見てなくてオタ風が出ていく。リア麻じゃないんですから、、
微差だけど


かなり安全な7p切れば1シャンテン。


 あとオマケで(Mortal的)CoolSoul鳴きもつけておきます。
 好きな人も多いと思うので。
 LuckyJはMortalに鳴き判断で悪手判定されることはほぼありませんでした。

鳴く人割といそう。
CoolSoul鳴き鑑定士のご意見をお待ちしております


 人間が悪手判定された他の打牌の分類は、LuckyJがされたものとさほど変わりませんでした。リーチ判断、鳴きケア手順などが多いです。
 まとめに入ります。

Mortalの参考にする所まとめ


 要するに、「牌理においてはMortalの悪手判定はかなり信用できるし、成績への影響も大きいからちゃんと見ろよ」ということでした。 

 あと、LuckyJも人間も悪手判定されることが少なかった部分、具体的に言うと押し引きは悪手までいくとまずいと思われます。

 じゃあ他は?というと、あなたが納得した部分は取り入れ、納得できなければ気にしないのが賢明です。
 仮に牌理で悪手判定もらっても、あなたが納得しないなら取り入れなければいいです。実はMortalが牌理ミスってると思われる場面もたまにあります。
 それでもよりMortalを参考にしやすいように、個人的なMortalとかへの所感を軽く述べて終わります。

Mortal、LuckyJ所感

 僕の実力がAIの打牌をきちんと評価できるレベルにないため、具体的な局面を貼ったりはせず、短い文を書くだけに止めます。これは一般人の戯言で、あー君はそう思うんだふーん程度に読んでください。あくまでも個々の判断にあなたが納得できるかが重要です。

・リーチ判断
 Mortalはリーチ判断において、πの分布が極端になる(Mortal最善で90とかになる)ことが多いです。また、恐らくリーチの評価が少し低いです。
 LuckyJのMortal的悪手の1割ほどがリーチ判断で、その多くはLuckyJ側がリーチ、Mortalがダマにしています。逆もたまにありました。
 悪手ではなく準悪手、と判定されたリーチ判断は人間もLuckyJもほぼありませんでした。
 リーチ判断については納得できなければあまり気にしない方がいいと思われます。

・鳴きケア手順
 鳴き手の危険牌をどの程度先切りするのか、どの程度回るのか、そもそもどの程度押すのかということです。LuckyJへの悪手判定は素人目にはよくわからないもの、少なくとも期待値差は少ないように見えるものが多かったです。
 人間側は、鳴きに対する他家の押し返しを見落とす、安牌見落とす等のポカが多いです。適切に画面の情報を処理するのは難しいですね。
 自分の手が良くないときの鳴きへの押しで悪手判定が出た時とかは判断基準を考え直してもいいかもしれません。

・対リーチ手順
 LuckyJはリーチを受けたとき、回し打ちせずに手牌を崩してMortalに悪手判定されていることがあります。
 期待値差は少ないでしょうが、個人的にはMortalが自然に見えました。
 だみー、あまあんが悪手判定されるのはベタオリ時の安全度の認識が違う時か、安牌見落とし、押し返し見落としがあった時くらいでした。
 個人的にはMortalはワンチャンスに信頼を置きすぎているような気がしましたが不明です。
 納得できた時は取り入れましょう。

・テンパイ料のための鳴きなど
 個人的にMortalで一番怪しいと思っているのはここです。
 鳴いても役アリの門前1シャンテンで3段目に入って鳴いたら悪手、とか
 終盤にターツ+安牌トイツ+トイツ+危険浮き牌の1シャンテンでターツ鳴いて安牌トイオトしたら悪手、とかがたまにあります。
 点数の入り方が特殊だったりそもそもレアケースだったりで適切に学習できていないものと思われます。
 LuckyJの方は見た限りはちゃんと鳴いてました。
 鳴いてMortalに悪手判定されても気にしない方がいいと思います。

・点数状況判断絡み
 LuckyJはかなり適当です。Mortalはかなりまともです。ただMortalも南4局の条件戦での厳密な条件チェックとかはできません。多分飛び寸もちゃんと認識していません。
 LuckyJは南3の2万点差ラス目から染まらない役赤1で序盤に役ポンして2000点アガりにいったり、南3の5万点以上持ちで持ち点少ない親に押し返したりと怪しいところがちらほらあり、Mortalに悪手認定されていました。
 極端な点数状況の南3とかに押し引き、鳴き判断などでMortalに悪手判定されたら、点数状況を整理してみることをお勧めします。

追記:
・河の情報
 Mortalは河をちゃんと見てません。
 残り筋本数が少ないときに明らかに押しすぎ
ていたり、牌理で残り枚数が少ない受けを明らかに過大評価していたりします。
 Mortalおかしいじゃんってバズるツイートの内のそこそこの割合を締めます。見かけたら人間のがつえーじゃんって思っといてください。

本題終わり!!!


Mortalについて

 こっからは大体雑談です。

Mortalの強さ

 LuckyJは特南1300戦安定10段だし、NAGAは昔打ってた奴との比較からどのタイプも安定9段は固そうだけど、Mortalって強いの?と思う方は多いと思います。Mortalは現在まで天鳳などの段位戦を打っていません。
 去年特南や玉南を打っていたAIのアカウントがいっぱいある(つのに無許可で!コラー!!!)ことをご存じでしょうか。
 そのアカウントたちの多くは特南数百戦打って安定十段以上出して消えていきました。玉南は聖7程度だったらしいです。それらのアカウントが使用していたAIのモデルが一種類なのか複数なのかはわかりませんが、特上安定十段程度の実力のAIは実は珍しくないようです。
 そして、現verのMortalはそのようなAIたちと数万戦打って全て勝ち越していたそうです。少なくともLuckyJと同程度か、多分それより強いのかもしれませんね。無許可で段位戦を打っていたAIが根拠になってしまうのが悲しいところですが、次のバージョンとかでいつか天鳳のID取得してパパっと十段まで打ってほしいものです。Mortalやっぱすげー!ってなりたい。Mortalキッズだから。

Mortal RatingとNAGA度

 Mortal RatingはLuckyJに89程度のスコアをつけ、八段平均より強いという評価を下すことには成功しました。
 一方のNAGA度(ニシキ)は、僕が見た少ない牌譜では90を上回るものはなく、悪手率も一桁後半程度でした。これはおよそ6~7段と同程度であり、LuckyJの実力の適切な評価には恐らく失敗しています。別タイプなら変わるかもしれません。
 これは多分MortalがニシキよりLuckyJに似ていて、あとMortalがニシキよりちょっと強かったから、それからMortalがどうでもいい打牌を減点することが気持ち少ないから、だと思われるのですが、このような実力とAIスコアの乖離は、MortalやNAGAが期待値ベースのAIではない以上常に起こりえます。現にMortalも先述のあまあんさん(聖3)とLuckyJの区別には失敗しました。MortalもNAGAも元々レビュー用のAIではないためこれはどうしようもありません。
 Mortal製作者のEquimさんは、Mortal Ratingが評価として不適切すぎてmjaiサイトから削除しようとしたけど考え直して高度な設定に入れました。
(実際に使いたいときに毎回チェック入れるのちょっと億劫だったので勝手にデフォルトにする機能作っちゃいました。すみません)

 僕は中国語は読めませんが、適当に翻訳かけて読みました。
 やっぱりマトモなこと言ったり変なこと言ったりするMortalは親に似てますね。

 ★追記★


 EDWARDHさん(後で紹介する制作陣の方)がAI類似度に関するツイートをしていました。ツリーになっています。

 ざっくり言うと、"AIの類似度"(NAGA度やMortalRating)という指標ができたせいで、AIを下手に真似してAI類似度は高いが実力は弱いプレイヤーが多くいる、ということを嘆いていらっしゃいます。
 当然のことですが、AIのどうでもいい部分、または間違っている部分を真似ても成績は上がりません。
 このEDWARDHさんの一連のツイートを読んで、内容に理解していなかった部分があったら、理解してからぜひもう一度この記事を読んでください。
 この記事は、MortalRatingが実力のたいした指標ではないということ、あとみなさんがMortalのどこを積極的に学べばいいのかということ、どこはどうでもいいのかということについて書きました。
 この記事を読んだ方が、適切なリテラシーを持って麻雀AIを使用してくれることを願っています。
★★


救世主

 ???:「そんなに期待値が知りたいなら、私を使えばいいじゃない!」
 そ、その声は…

Akochan!

 なんとAkochanは予測期待値を出力してくれます!
 pt EVが段位ポイント期待値、Deal-in(%)は瞬間放銃率、その右は放銃時と放銃しなかったときの段位ポイント期待値です。
 レビューがゆっくりなのが玉に瑕。

Akochanは僕の暴牌にも「最悪だけど2.5ptぐらいしか損してないよ」って言ってくれます。
2.5ptも損してる、が正しいか。
追記:放銃打点が極端に高いからみたいです。確かに!
読める女、Akochan。
(でもトビは知らない)


ちなみにMortal的には次善手。持ち点無いからね…
修正:Mortalの選択は期待値順に並んでいないので、「他の選択肢は明らかに南か7sの下位互換だけど期待値は知らんよ」ということだと思われます。失礼しました。

 Mortalほどは強くないのも玉に瑕に瑕。
 でも期待値のイメージは湧くので、どんな打牌がどの程度損なのかあんまり分からない方にはオススメです。
 Mortalに悪手って言われたのをAkochanに「これどのくらい損なの~?」って聞いてみるのはアリだと思います。

開発陣の方々紹介

 Mortalが置いてあるサイトの下の方に書いてありますが、よく知らない方も大勢いそうなので勝手にご紹介します。

Equimさん

 Mortal作った方。ありがとうございます。
 親の親ってことはおじいちゃん…?

 ここからおじいちゃんに投げ銭できます。しましょう


カクテル!


新篠ゆうさん

 Mortalが置いてあるサイトを作った方。ありがとうございます。
 昔ダジャレ魂天で鳴らしていたVtuberでもあります。

 最近はたまになんでもないツイートをTLで見かけてこれダジャレか…?って考えてもたぶんダジャレじゃないです。さみしいです。
 聖3からも落ちかけてしまっています…つよくいきて…

 最近日本に来てたEquimさん、あとkanachanのCryoliteさんと遊んでたみたいです。おいしそう。おなかすくいむ。
 ?

EDWARDHさん

 インフラ提供の方。ありがとうございます。
 ご存じ雀魂牌譜屋もEDWARDHさんのサーバーで動いています。
 
 面白いツイートをしてくれがち。

 noctuaのCPUクーラー(めっちゃいいやつ)が見えますね。ほんとに熱そう。そういえばグラボは3090(めっちゃいいやつ)っておっしゃってた気がします。熱そう。



細かい仕様やプライバシーについて

 Mortal Conveniencerの細かい仕様を書いておきます。

・Chrome拡張なのでスマホ版では使えません。

・スプレッドシートのセルA2が空のときは持ってきた値のタイトルをセルA2~J2に書き込みます。

・書き込む時は毎回スプレッドシートのセルA3~J3に新しくセルを追加し、そこにデータを書き込みます。行を追加しているわけではないので列K以降は影響されません。

・スプレッドシートに書き込まれるのは、
 利用したAI
 Mortal Tag
 Softmax温度
 手前の人の段位
 rating(非表示の場合は0)
 AI一致率
 悪手率(π<0.05の選択の割合)
 準悪手率(π<0.1の選択の割合、悪手も含む)
 レポート画面のURL
 レポートの生成日時
の10項目です。選択できるようにしたりする予定は今のところないです。
可能なら着順も記載したいところではありましたが、上手い方法が思いつきませんでした。欲しい方は手入力をお願いします。
 ちなみにSoftmax温度を変えるとπτ​(a∣s)を算出する式が変わります。Qハット^​π(s,a)やratingは変わりません。みんなデフォルトの0.1で見ていると思うので、同じ環境にするために0.1をお勧めしておきます。

・Chromeブラウザ内ではどのページでも右クリックメニューにMortal Conveniencerが常駐してしまいます。Mortalレポート画面だけで表示しようとすると、右クリック時、またはアクティブなタブの変更時に毎回現在のページのURLを取得する処理を行うことになるので動作が重くなる可能性があると判断してこの仕様になっています。ユーザーからすると気持ち悪いので気が向いたら設定できるようにするかもしれません。
 なお、当然ですが"成績を書き込み"はクリックした直後に現在のページのURLを取得し、Mortalレポート画面でなければ何もせずすぐに処理を終えます。

・Mortal Conveniencerはみなさんのスプレッドシートへのアクセス権を必要としますが、今回説明した機能以外のこと、例えばスプレッドシートのデータを収集するなどに使うことは一切ありません。過去にそういう事をされていた方がいらっしゃったようです…

あとがき

 このChrome拡張が完成した日にちょうど、Mortalレポート画面のURLを入力して悪手率を計算するアプリを作られた方の記事、『麻雀AI・Mortal牌譜検討から悪手を計算するアプリケーションを作ってみた』を拝見しました。やっぱりみんな似たようなこと考えますね…
 あちらはwebサイトなのでスマホでも動作すること、管理アプリがスプレッドシートに限定されないこと、特に権限を渡さなくていいことが良いところで、こちらはコピペの手間が省けることが良いところです。

 Mortal ConveniencerはChrome拡張としてMortalレポート画面内の情報をスクレイピングし、それをGoogle Apps Scriptで作ったAPIに送信してスプレッドシートへの書き込みを行います。
 ただこの方法はとある理由からセキュリティの観点からはかなり酷いです。スプレッドシートの中身が麻雀の成績データでしかないので、少しの利便性と開発の簡単さを優先しています。
 くれぐれもMortal Conveniencerに共有したスプレッドシート内に重要な情報は書かないようにお願いします。そんな人はいないと思いますが、、
 最初は自分用のつもりで作っていたのでこうなっていますが、始めから公開するつもりだったら先に紹介した方と同じようにwebサイト作ってそこにURLを入力する形にしていたと思います。
 もし何か問題が起きたらすぐに閉じる予定です。そうなったらすみません。

 それはそれとして、初めてのJavaScriptだったのでちゃんと形になってよかったです!プログラミングは完全に趣味でやってる日曜プログラマー?なので何か完成した時の嬉しさは大きいです。昇段した時より嬉しいです。
 日曜プログラマってどのくらい人口いるんでしょうか、、学校でもプログラミングの基礎の授業はやったりするのでちょっとがんばったら簡単なものを作れるような人はけっこういそうですよね。
 作りたいものを作れることに気付くのが日曜プログラマの一番大きなハードルな気がします。みんなも何か作ろう!日曜プログラマが増えたらネットに転がってる開発時に有用な情報が増えそうだから!



 だいぶ長くなってしまいましたが、この記事によってみなさんがMortalをよりよく活用できるようになれば幸いです。ありがとうございました。


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