C# 最適化による読み込み速度向上実験

ゲーム 監督たちの甲子園(仮)で、オーダー設定を作っています。
ただ、動作がクソ重いので最適化でどれくらい重いのか、最適化するとどうなるのか比較したいと思います。

動作イメージは下記の通りです。

動画の通りPCでも少しフリーズします。少し古いスマホだとちょっとイラっとするくらい待機時間が入ります。

実験はオーダー設定の3種類の時間をカウントします。
DisplayOrderFirst:オーダー(スタメン、控え、ベンチ外)の表示
ChangeOrder:メンバー変更
ChangeBench:ベンチメンバー設定

読み込み速度測定利用するデバイスは、よくあるノートPCです。

全く最適化をしていないので重いのかな;つД`)

最適化方法はUnity 最適化メモに準じます。

結果

DisplayOrderFirst:53%減
ChangeOrder:75%減
ChangeBench:69%減

大きく削減効果が見られました。
とてもスムーズに動作するように感じます!

最も効果があったのは、Instantiate()、Destroy()回数の最適化でした。
選手表示用のGameObjectの生成を何度も行うことをやめ、必要なタイミングだけInstantiateを行うようにしました。
オブジェクトプールは元々同じようなものが導入されており、より読み込み回数が少なくなるように変更しました。

その他はLinq削除、Debug.Log削除、Start, Awake, OnEnable で負荷の重い処理をしないを行いました。
上記のInstantiate()に関して、Start, Awake, OnEnable で負荷の重い処理をしないと組み合わせて・・・ChangeOrder用とChangeBench用のGameObject生成にはプリロード関数を作っておき、負荷がかかりにくいタイミングでupdate(フラグ管理)で読み込みをします。

負荷が気にならない部分に読み込みを分散するのは、体感に大きな影響を与えそうですね!

最適化前

DisplayOrderFirst:256ms
ChangeOrder:121ms
ChangeBench:129ms


クリック時の引っかかり感がどうしても気になる…。PCでこれはキツい。

最適化後

DisplayOrderFirst:120ms(ロード80ms、表示40ms)
ChangeOrder:30ms
ChangeBench:40ms


クリック時の引っかかり感がなくなりました。

コメント

クリック時の待機時間がかなり気にならなくなりました。
いずれかの選手を交代すると複数のデータを再設定する必要があるのですが、今回は生成部分を大きくカットした仕様となります。

より最適化するのであれば、交代に関与していない選手の再ロードは必要ないので、削減が考えられます。
とはいえ再ロードを含めた表示速度が30~40msのため、それほど改善の余地はないでしょう。

Meisyo3(前作)では、野球の試合中になぜか重い・・・続けていると落ちることが多くありました。orz
今回はこちらを利用しつつ、体感良く作れるようにします!

確かにInstantiate()の調整やオブジェクトプールの積極的な利用、プリロードの最適化もしてなかったな。。。

ゲーム 監督たちの甲子園(仮) 制作開始

弱小高校の監督となり、「数多の強敵を倒す」「逆境を跳ね返す」指揮(戦略・戦術)を楽しむ3Dストラテジーゲームの開発を開始します。

これまで同様の背景を持った名将と呼ばれた者達(Meisyo)シリーズを開発・運営しています。本作はその背景を引き継ぎますが、ゲームシステムを刷新し、モバイル(スマホ、Web等)で遊べるようにする予定です。

クローズドなテストプレイに参加したい方は下記で連絡いたしますので、ぜひ参加してみてください。
Discord:監督たちの甲子園(仮)

更新情報はTwitter:れいで発信しています。
現在は、育成のユーザーインターフェースを作っています。

作成工程(フェーズ)は、育成系と試合、最終調整と3フェーズに分けて実装していきます。
1月2日現在、育成フェーズが80%程度進捗しています。もう少々お待ちください。

育成画面イメージ↓

トップページ
練習風景1
練習風景2

※キャラクターは現在1キャラのみですが、最終調整時に追加します。

試合キャラクターイメージ(UIなし)↓

※今はモックアップのためほぼ何もありません。試合フェーズできちんと作ります。

画面は縦持ちスマホベースのため、現在はこちらでリリース予定です。
ある程度の反響をいただけた場合、PC版を別UI(横長版)でリリースします。

ゲームタイトル

監督たちの甲子園~世紀の逆転劇~
英:Koshien: Reversal Baseball

タイトルは、「監督」「甲子園(高校野球)」「指揮ゲー」「逆転できる要素」であることを直感的に分かるように変更しています。
「逆転できる要素」は、選手采配のタイミングとスキルの組み合わせですね。それらの要素をすぐに体験できるようなチュートリアル(かゲームの基本導線)を作りたいところ。
※有名ゲームでもないのでMeisyoのナンバリングやめました。

セールスポイント

弱小高校の監督となり、「数多の強敵を倒す」「逆境を跳ね返す」指揮(戦略・戦術)を楽しむ3Dストラテジーゲームという一文に集約されています。

遊び方としては、メインは「ノーマルモードで甲子園優勝を目指す!」です。
もう少し遊びたい人は「1か月に1回あるユーザー大会(現在の公式戦)で勝負!」って感じになると思います。

楽しんでほしいポイントはいくつもありまして、今までのMeisyoシリーズとは大きく異なる点があります。

ポイント1. 選手の存在感、試合の臨場感

すべての始まりは、この画像からです。

「このキャラクターたちを(自作のゲーム上で)モバイルで動かせるの?」という驚きと、投手の速球をプロレベル(150~160km/h)に上げた時の「凄ぇ・・・打てっこない」という畏怖、つまり、モバイル上でも選手の存在感や、試合の臨場感を出せるということに魅了されましたね。

皆がゲームをプレイしたいのは、もちろん暇つぶしもあるんやろうけど、ある感情が欲しくてプレイしてるんちゃうかなと・・・。(いきなりの関西弁)

いろいろなモバイルアプリを仕事上でも、趣味でもプレイしていて、なんか物足りないというか・・・そういう不足感を感じていました。ゲームシステムも単純で、レベルや装備(または課金)で強さを上げて、ちょろっと組み合わせを変えて物理で殴るようなゲームしかないのもあったでしょう。

たとえば、全般的に達成感が薄い。
野球ゲームに限らず、負けても再戦できるし、工夫※もそんなにできないし、何よりキャラクターたちの実在感がそこまでない。そういうことが積み重なって、そこまで思い入れがない。だから悔しくもなんともない・・・から達成感がないんやろなと。
よくある野球ゲームだと、なんか知らんうちに結果が決まって、選手たちが出荷されていく感。
※工夫というのは、「ゲームのストーリーに則れば考えうることができる準備」ですね。野球で例えるなら、監督なら「試合で選手をどう動かしたいか、あらかじめ考えとくよね?」ということですね。しかしほとんどのゲームでは、自動操作時の動きを一ミリも設定できない⇒何か知らんけどバカやって負けてる⇒何やこれツライみたいな感じです。

モバイルゲームはもちろんライトなプレイが求められているのはわかっているのですが、これで納得できるんか?と。

最近出た栄冠ナイン クロスロードも物足りないですね・・・というか育成に時間がめっちゃかかる割に、工夫の余地が少なすぎへん?と。
映像を見せられてる感がある。強くする方法をはじめとして、確かに「何をすべきか」がわかりやすいけど。
「え?それを調べるのもゲームちゃうん?」という昔ながらのおじさんの考え方もあり。

対して、この画像のように、直感的に、感性にグッとくるような、モバイルゲームが作れるということを知ってしまった。
これらを知るきっかけとなったインディーゲームたち、その製作者たちはすごいよねと。一般的に有名なタイトルでは最近だと、ウマ娘や原神みたいにスマホゲーでもやればできるやんと。(なお予算)

というわけで、選手たちの存在感と、試合の臨場感を楽しめるようにしたいですね。
もっと根源的な話で言うなら、試合会場のネット越し・テレビ越しで見る「高校野球」と、よくある高校野球のゲームがあまりにも違い過ぎて・・・どうにかしたいし、できそうや~という個人的な偏執・確信ですかね。

ポイント2. かんたん・さくさくプレイ

Meisyo3では、(使用している技術の問題で)Androidまたは一部のPCやデバイスのみしかプレイできませんでした。
このゲームでは、すべてのデバイスに対応できるように技術選定から一新します。

問い合わせでよくあった(プレイヤーさん)「プレイしたい」→(プレイヤーさん)「できない…」→(ワイ)「対応できないorz」がとてもつらかった・・・;つД`)

加えて、オフラインでのプレイを前提とします。どこでもダウンロードしたデバイスさえあれば、プレイできるようにします。
ロードなどの通信上の問題を少しも気にせずに、さくさくプレイできようにしたいですね~。

なお、オンラインでの対戦も想定していまして、そのメインは対人戦を想定しています。
・「ユーザー大会」・・・現在の公式戦と同じルール(1か月1回、全員本戦から開始)を想定。人が十分いるなら都道府県予選から実施したいなあ…。
・「ランク戦」・・・勝敗によりレート上下。レートによって報酬がもらえる。
・「甲子園大会」・・・ユーザーチームを相手にしたリアル系甲子園大会。地方大会から4~7回戦(レートや総合力で判定)を勝ち抜いて、優勝を目指すモードです。
※リアルタイムバトルではなく、NPCの代わりにユーザーチームと対戦するイメージです。

なお、モバイルゲームをベースとしており、かんたん・さくさくなプレイ体験を提供したいと思います。
見た目(インターフェース)や触り心地について、他にいくつかモバイルアプリを作っており、作者が作った従来のアレなものより少しずつ改善していっています。
Meisyo3は見切り発車な部分が大きかったのですが、今回は作者自身が納得いくまで正式リリースしません。(という心意気を持って開発したいですね)
「初心者が直感的に触れられる」初期UIを採用し、設定変更で「熟練者も満足できるくらい細かく設定できる」追加UIを提供する予定です。

それらの体験を向上させるためにユーザーテストを何度か行う予定ですので、興味のある方はご協力をお願いします。

ポイント3. さくさくゲームシステム

これまでの放置ゲーではなくなり、(不老不死の監督になって)1週間ごとに練習を指示していくゲームシステムにします。
ストーリーはありません。(プレイヤーが多くなったり、要望が出たら作るかも程度ですね)

ポイント4. 選手たちとのつながり

学校と、選手たち(&コーチたち)とのつながりでゲームが進みます。
(MeisyoやMeisyo+と違い、)選手たちが卒業します。卒業後は、プロ野球に進むことができればOB登録でき、自校のコーチとして選べるようになります。
コーチはランダムで各練習に顔を出し、コーチの能力に応じて練習効率を上げてくれます。

ポイント5. 甲子園

選手たちは1回きり、3年しかない高校野球生活で、甲子園出場・優勝を目標にしてゲームが進みます。
これまでになかった都道府県設定、都道府県ごとの特徴やスカウトシステムが出てきます。

これまで都道府県システムを入れるの忘れてたのは申し訳ない…orz
やっぱり地元って強いですよねえ…。

ポイント6. 指揮

Meisyo3で推していた「指揮」や「スキル」のタイミング・使いどころ。これらの要素によって、より大きく試合運びが変わるバランスにします。

MeisyoやMeisyo+では試合が全自動で進行するため、スキルは自動発動でした。
対して、このゲームでは「発動タイミングを選べる」「自動発動」など種類を増やし、戦術を組み立てるうえでどのようなチームにしたいかを実現できるようにします。

それを織り込むので、大きな視点でのチームとしての相性、小さな視点での選手としての相性など、さまざまな戦略的な要素が生きるように・・・したいですね。
先行逃げ切り型で、強い中継ぎ→抑えで逃げ切るチームや・・・後半巻き返しをする(序盤耐え、後半で能力が上がってくる)ようなチームですね。

さまざまな要素で楽しめるサービスを作っていきたいと思います。
それでは、よろしくお願いいたします。

作者コメント

Meisyo4の制作を色々と準備していましたが、ゲームコンセプトがほぼ固まり、開発工程がある程度見えたので発表することにしました。

開発方法はMeisyo3とは違い、先にUIを作って、ユーザーテストでプレイのおおざっぱな体感を確かめてから作りこみをしていきたいと思います。
なぜなら、Meisyo3は「とりあえず作ってリリースする!」「いまどのレベルくらい作れるか市場で試す!」(今思うと、Unity一作目で本気か!?)という挑戦的な面がありましたし、人に未完成のモノを見せるのも恥ずかしいかなーという感情がありました。

ですが、Meisyo3をリリースしてから何度か知人に実地ユーザーテストをさせてもらい、改善を反映した結果体感が全くの別ゲーになったので、、絶対採用した方がええやんと。

そこで得た知見として、試合(3D)は見た目・キャラクターモーション/音声などを除き、中身は改修すべきポイントは所々にあるもののMeisyo3で問題なさそうでした。工数も大幅に削減でき、いかにさくさく・かんたんさを初期の段階で詰め切れるかが勝負かなと~。
(試合中の特定タイミング(アルゴリズム上のすぐ対応できない不具合)でメモリ不足になって落ちる不具合は早急に対応せねばですが。。)

絵やサウンドについては、これまで使ってこなかったCanvaやFigma、生成AIなどを使ってより魅力的なものを提供していきたいですね。
↓記事の画像が、それらのツールを使って自作した球場の一枚絵です。かなりリアルにできた気がする。

画像を高明細度で細かく見るとグラウンドに何人選手がいるんだ!?ってなりますが、画像サイズが小さいとそこまで気にならないわね。

(;^^)まずはUI作ってテストプレイしていこ~
( ^^)ノよろしくー

Xcode13以降で起こる「info.plistが見えない」「作成できない」不具合に対応する

なぜかinfo.plistが見えない問題があるので、備忘として書き残しておく。

(1)プロジェクトのxcodeprojectファイルをXcodeで開く
(2)該当Project選択
(3)TARGET選択
(4)Infoタブ選択
この手順でInfo.plistが自動的に生成される。

続いて、
(5)xcodeをいったん閉じる
(6)プロジェクトのworkspaceファイルをXcodeで開く
(7)Project > Target > Infoタブで開くと見えるようになる。

原因としては、
「プロジェクトのworkspaceファイルをXcodeで開く」で始めることだった。
なぜか「info.plistが生成されてないよ!(意訳)」となる。再現しねえ・・・と思ったら、上記のxcodeprojectファイルから開くようにするとうまく行った。

Androidばっかりやっていると、iOSの仕様わからんよなあ・・・
特に、UnityやFlutterみたいなクロスプラットフォームができるモノを使っていて、かつ初めてiOSのリリースとなると( ^ω^)・・・ツライ
Androidが簡単すぎんのよな

それではまた。。

English Ver.
The problem that info.plist is not visible or cannot be created, which occurs in Xcode 13 or later…
I have a problem that I can’t see the info.plist for some reason, so I’m leaving this as a reminder.

(1) Open the xcodeproject file of the project with Xcode.
(2) Select the appropriate Project
(3)Select TARGET
(4)Select the Info tab
Info.plist is automatically generated by this procedure.

Continue,
(5)Close xcode once
(6) Open the project workspace file in Xcode.
(7) Open the file in Project > Target > Info tab. (Is This File Generated? Yes…Complete!)

The cause,
It was to start with “Open the project’s workspace file in Xcode”.
For some reason, “info.plist is not generated! (translation)”. I thought “I can’t reproduce this…”, but when I tried to open it from the above xcodeproject file, it worked.

I am glad if I could help!

Xcode icon by Icons8

「1人で遊べる最もシンプルな脳活ゲーム NEXT CARD」制作しました

皆さま、お疲れ様です( ^o^)
だいぶ更新間隔が空きましたが、いかがお過ごしでしょうか。

ゲーム紹介

今回はMeisyoとは異なる別の制作物を作っていました。
珍しくトランプカードゲームです。

1人で遊べる最もシンプルな脳活ゲーム NEXT CARD
ルールは簡単、5枚の手札から次のカードを選ぶだけ。
オフラインで遊べて、スキマ時間にサクッとプレイ。次のカード、あなたはどれを選ぶ?

下記で遊べます!
1プレイ数秒で終わることもある死にゲーに仕上がっています。

新しく取り組んだこととしては・・・以下の6点です。
・2Dゲー
・デザインの事前設計
・UIの手触り感の向上
・画像素材作成
・カード演出
・ローカライズ

これまでのゲームとは大きく違うのは、はじめて演出に注力したことでしょうか。
気持ちよいカードの動きや音となるように、ちょっと工夫を凝らしました。
1プレイでもどうぞ。

プレイ・ダウンロード

・Web
・Google Play
・Apple App Store

その他感想

(1)Google PlayとApp Storeのチーム名(パブリッシャー名)は同じにしよう。審査がめっちゃややこしい。
Google PlayをRei-Farmsでリリース後、App Storeを個人名でリリースしようとしたら、、「このアプリと見た目同じやからCopycatに該当するんやけど、利用許可あるなら見せて?」と。結局リリースまで3週間かかりました。

上記の文面を引き出すのに2週間+App Storeの方との電話。orz
以下流れ

審査「Copycatやで~」
ワイ「わかった、変更した。このアプリのどこがどう悪い?」
審査「Copycatやで~」
ワイ「怪しそうなところ変更した。それで、このアプリのどこがどう悪い?具体的に教えて」
審査「Copycatやで~」
ワイ(あっ・・・電話対応してもらおかな・・・)
電話「CopycatはGoogle Playで出てるこのアプリと同じやろ?あなたのアプリというなら利用許可もらって」
ワイ「どう証明すればよい?」
電話「詳しくはわからん」
ワイ「」
ワイ「・・・このスクショ」
審査「ん-これじゃだめですねー」
ワイ「おう・・・じゃあこれでどうですか。」
審査「ん-これじゃだめですねー」
ワイ「おう・・・じゃあこれでどうですか。どういう情報が欲しいか教えてくれや。」
審査「ん-これじゃだめですねー。対象アプリのパブリッシャーから、利用者名が許可もらってることを証明できる書類ください。」
ワイ「Web(Rei-Farms)ブログで出せばええかな。ブログを編集できるのはRei-Farmsだけやし。。(どういう形式か指定してくれんのか…)」
審査「これでOK~あ、iPadでダメだからもう1回審査ね」
ワイ「やったぜ」

(2)野球ゲームMeisyoシリーズ、演出全くねえやん
・・・;つД`)3Dにするにはちょっと早すぎた気がシマシタ。Meisyo3とか。
何をどうすれば売れそうなのか、何となく見えてきたようです。orz

このゲームのメインユーザーとしては、高年齢層を想定しています。
「簡単で取っつきやすいゲームならしてもいいかな」
「でもあまりにも簡単すぎてもつまらない」
果たして・・・どれくらいプレイされるのでしょうか?

ただ、ユーザーを獲得したいのであればソリティア等の売れているゲームを題材とすべきでした。反省。
検索ボリュームもそうですし、既存ゲーの「新作」は売れますしね。
かつ、ユーザーは「ソリティアがしたい」のであって、新しいゲームをプレイしたいわけじゃないはずです。
特に高年齢層は、ソリティア+αなら対応したいと思うと想定しますが、完全に新しいものはどうでしょうか・・・。

モバイルゲーム市場の統計データとしては、パズルゲームやカードゲームがよりプレイされているようっです。
ただし、40代以降の壮年~高齢層、特に男性のプレイ率が著しく下がるんですよね。
Meisyoにおいても、ユーザー動向を気にして制作していきたいですね。
また、ゲーム開発のお作法についてもちょっと気を付けねばならないかなと。
ソリティアを題材としたゲームなら、ソリティアらしさを考えてね、と。

なお、新作としてMeisyo4(仮)を構想していますが、タイトルからはMeisyoの名前がなくなるかと思います。「有名になってからシリーズ名乗ろうね」という当たり前のツッコミを受け…。ゲームのメインが高校野球+甲子園なので、、売れるために、タイトルをもっとわかりやすくしたいんですよね。

上記で話題に出したお作法についても、よく考えて出したいです。
「高校野球」「甲子園」と来れば、野球のルールを守るのは当然として、地域(都道府県)や球場(甲子園)に根差した重要な「らしさ」があるので、開発時はそこに注意したいところ。
ユニフォーム、敵チーム名、ルール(開催時期含む)・・・「高校野球らしさとは何か?」ですね。

上記のように新しいゲームを作ることで視点が増えました。やったぜ。

Twitterでは、ほぼゲーム制作のことしか書いていませんが、、、ウラではいろいろなことに手を出しています。
では、また何かあれば書きます~( ^o^)/~

【Unity(C#)】メインカメラの挙動に合わせて、サブカメラもアスペクト比に合わせて伸縮させる

メインカメラの挙動は以下参考にしました。ありがとうございました!
Unityの画面のアスペクト比と解像度を自動変換 全スマホ・複数解像度に対応させる

使い方

メインカメラとサブカメラを作成。

メインカメラにAspectKeeper.csとAspectKeeperSub.csをアタッチ。
AspectKeeperSub.csのSubCameraObjにサブカメラのゲームオブジェクトをアタッチ。
SetRectを好きな値に設定。

AspectKeeper.cs内のaspectVecを好きな大きさに変更・保存。
※AspectKeeper.csは任意のカメラにアタッチすることで、自動でaspectVecのアスペクト比に調整してくれます。
※各カメラにアスペクト比の値を一つ一つ入れるのが面倒だったので、一括で変更するようにしました。
AspectKeeperSub.csは変更点なし。

動作確認すると以下の通りになります。

工夫点

画面の大きさが変わった時にのみ再読み込みするようにして、参照サイトより読み込み負荷を減らしています。

作者コメント

何か不備があれば教えてください。

コード

AspectKeeper.cs
[C#]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[ExecuteAlways]
public class AspectKeeper : MonoBehaviour
{
private Camera targetCamera;
private Vector2 aspectVec = new Vector2(800f, 440f);
private Vector2 saveScreen = Vector2.zero;

void Start()
{
targetCamera = this.GetComponent();
}

void Update()
{
SetRect();
}

void SaveScreen()
{
saveScreen = new Vector2(Screen.width, Screen.height);
}

void SetRect()
{
if(saveScreen == new Vector2(Screen.width, Screen.height))
{
return;
}
// 保存
SaveScreen();

// データ取得
var screenAspect = Screen.width / (float)Screen.height; //画面のアスペクト比
var targetAspect = aspectVec.x / aspectVec.y; //目的のアスペクト比
var magRate = targetAspect / screenAspect; //目的アスペクト比にするための倍率
var viewportRect = new Rect(0, 0, 1, 1); //Viewport初期値でRectを作成

// 変換
if (magRate < 1) { viewportRect.width = magRate; //使用する横幅を変更 viewportRect.x = 0.5f - viewportRect.width * 0.5f;//中央寄せ } else { viewportRect.height = 1 / magRate; //使用する縦幅を変更 viewportRect.y = 0.5f - viewportRect.height * 0.5f;//中央寄せ } // set targetCamera.rect = viewportRect; //カメラのViewportに適用 Debug.Log("SetRect"); } } [/C#] AspectKeeperSub.cs [C#] using System.Collections; using System.Collections.Generic; using UnityEngine; [ExecuteAlways] public class AspectKeeperSub : MonoBehaviour { public GameObject subCameraObj; public Rect setRect = new Rect(0, 0, 1, 1); private Camera targetCamera; private Camera subCamera; private Rect saveRect = Rect.zero; void Start() { targetCamera = this.GetComponent();
subCamera = subCameraObj.GetComponent();
}

void Update()
{
SetRect();
}

void SaveScreen()
{
saveRect = targetCamera.rect;
}

void SetRect()
{
if(saveRect == targetCamera.rect)
{
return;
}
// 保存
SaveScreen();

// データ取得
Rect targetRect = targetCamera.rect;
Rect subRect = subCamera.rect;

// X
float baseX = setRect.x – 0.5f;
float corX = targetRect.width / 1f;
subRect.x = baseX * corX + 0.5f;
subRect.width = setRect.width * corX;

// Y
float baseY = setRect.y – 0.5f;
float corY = targetRect.height / 1f;
subRect.y = baseY * corY + 0.5f;
subRect.height = setRect.height * corY;

// set
subCamera.rect = subRect;
Debug.Log(“SetRectSub”);
}
}
[/C#]

ゲームアプリ運営の分析ノウハウ vol.2 新規登録者編

はじめに

アプリ開発者によくある悩み・・・登録者がゲームを続けてくれません!!。
続けてくれないをより細かく言うと、(1)コンテンツを一通りプレイしてもらいたいのか、(2)毎日プレイしてほしいのかによって分析方法が変わります。

どちらかというと(2)の方が難しいので、そちらを新規登録を増やすという観点から解説していきます。
この記事はゲームアプリ運営の分析ノウハウ vol.1 概要編の続きです。

おまけ:(1)コンテンツを一通りプレイしてもらいたいの分析方法

分析するゲームのコンテンツを「一本道のストーリーとする」と、分析をイメージしやすいと思いますのでそちらで解説します。

前提として、ストーリー1~5まで一本道でゲームが進むとします。
分析すべきは、以下の3です。
1・ストーリー1のプレイ人数
2・ストーリー2のプレイ人数
3・ストーリー1→2の移行割合(=分析2の人数/分析1の人数)

ストーリー1~5まで、移行割合が低くなるポイントはどこか?を特定することが重要です。

ちなみに、例えばストーリー3の移行割合が低かったとしても、ストーリー3自体が悪いとは限らないことに注意してください。

想像してみてください。
「つまんねーなコレ」ってなってすぐに離脱します(ゲームやめます)か?

買い切りゲーだと特に、ちょっと違和感があっても買った手前勿体ないので続けるでしょうし、それをやめるような区切りを感じさせたポイントがストーリー3の可能性があります。原因ではないかもしれません。

そのように、離脱ポイントがわかってもすぐに結論に至れず、対策を打ちづらいことが分析の難しさを顕著に表しているでしょう。
そもそも買い切りゲーを分析して意味があるのか議論はあると思います。
アップデートができるならいいですし、次回作が決まっているなら参考になりますね。参考になるって言っても、買い切りゲーは前作とシステムやUIが全く同じでは出しづらい(売れない、目新しさがない)のでなかなか難しかったりする…。某連番ゲームの分析結果を見ましたが、結果は出たものの中身にはなかなか反映されずとかも…。

(2)毎日プレイしてくれません!!

「毎日プレイしてくれません」・・・確かに言いたいことはわかります。ただ、ユーザーがプレイを続けるようになるまでのステップを考えてみましょう。はじめはそうですね・・・アプリストアで見つけるところから始めてみましょうか。

アプリストアで見つける
→インストール(するか迷う。見た目で楽しそうか、競合アプリはどうか、容量との戦いは・・・。)
→新規登録(登録画面がないアプリも多いですね)
→チュートリアル開始(ないアプリも多いですね)
→チュートリアル終了
(高い壁)
→続けたい理由を見つける
(高い壁)
→プレイを続ける

vol.1にソーシャルゲームなら新規登録からの1日後継続率が25%を超えると書きましたが、この(めっちゃ多い)ステップを通して25%・・・?嘘やろって思います。分析するのは、このそれぞれのステップから離脱せず、かつ毎日続けたいようなコンテンツとなっているかどうかです。なんか文字で書くとめっちゃ厳しそう・・・

この目標値を超えてるアプリはすごいと思います。特に、広告経由のユーザーの継続率は酷いものです。
なぜなら、広告で移るようなユーザー≒広告媒体でアプリを探す(が、定着せず移行し続けていることが多い)ユーザーなので、目新しい高品質のゲームを探しています。ゲームを求めているのに、流動している・・・つまり定着しづらい。飽きっぽい人とかが多いイメージです。

そのため、継続率のカウントを行うユーザーは精査した方が良いと思います。検索経由で来た人とユーザー層が本当に大きく違いますので。
分析するユーザー層を定義する・・・とても重要なことです。
ちなみに、運営しているMeisyo+では検索経由ユーザーの1日後継続率は20~40%程度です。広告ユーザーになると10%を切ったりします。アドフラウド(偽広告、広告クリックBot)的なものもあるだろうけどつらい。

では、具体的な分析指標を羅列していきます。
・N日後継続率
・各コンテンツプレイ率(1日目にどのコンテンツをプレイしてなければならないか?)
・プレイ時間別UU数(1日目にどのくらいプレイしていないとならないか?)
・
・
・

ここで情報を整理します。まとめると、ここで考えるべきは4W2Hです。誰が(WHO)何を(WHAT)いつ(WHEN)どのように(HOW)どれくらい(HOW MUCH)・・・と。
どこで(WHERE)はアプリの想定利用用途によっては重要になる場合がありますが、スマートフォンゲームでは・・・そこまでかなと。データを取りにくいので。

そのように、どのようなプレイをされているかを把握する準備をしましょう。
なぜ準備するかって・・・?準備だけでいいです。もっと重要なことがあるので。

ゲーム内を分析する前にやりたいこと

プレイヤーを増やすために重要なのは、アプリストアで見つけられる、認知されることです。ゲーム内容をブラッシュアップするよりも大事です。

結局、インストール人数=認知人数×インストール確率です

インストール確率を上げる努力をするよりも、認知する人数を増やす方が効果的なことが多いです。アプリ制作者が普通に出したアプリは、本当に認知されていないので・・・。

ここも分析の考え方(A/Bテスト)を使います。
アプリストアに訪問するユーザーに見つけてもらうために、キーワードや各種画像をいろいろなパターンで試します。期間を分けて出し分けて、どのパターンが良いのか記録します。

ちなみに、(1)アプリ検索で見つけてもらいやすくするには文字情報が重要で、その検索の中で(2)(競合の中から)選んでもらうには画像や動画が重要です。

(1)は検索はいまだに文字情報が重要です。
最新AIモデルであっても画像を読み取って正しく解釈することにしのぎを削っています。検索内容に反映はまだ難しいのではないでしょうか。
※2025年になりましたが、直近の生成AI(画像等対応)でもゲームバナーのような整理されていない情報では意味のある読み取りはほとんどできません。請求書のような整理された情報ならかなり精度が高くなりましたが、整理されてないとまだまだ厳しいですね…。

(2)は私のこれまでの経験からです。
画像を変えるだけでコンバージョン率(見た人のうち、インストールする人の割合)が変わる≒(インストールを)選ぶかどうかは画像に影響を受ける≒競合アプリとの比較もする人はするだろうから、競合アプリの中からインストールされるには画像は意味があるはずである、という話の流れです。
ただ注意したいことは、説明画像は置けばいいってものじゃないですし、読まれるのはごく一部だと思ってください。説明画像をGoogle Playで最高8枚並べられるのですが、最初しか見てもらえないと思った方が良いと思います。検索が1ページ目の上位3つくらいしか見られない事実のように、ユーザーはサクッと意思決定しちゃいます。そのため、売り文句は1枚目に入れましょう。

そのように、インストールまでの各ステップで落とし穴になりそうなところをくまなく分析・改善していきます。
ざっくり書いてもインストールまででこの文量・・・;つД`)

結局何が重要かというと、ステップのはじめの方を対策しましょうってことです。ゲーム内よりインストール時点、その前・・・。

ゲーム内を分析する際にやりたいこと

ここもはじめの方を対策しましょう

特に新規登録は離脱ポイントになります。
・新規登録しないで良いゲームは新規登録させない
・新規登録ページを作らない(ワンクリック登録で済ませる)
・多くのデバイスでプレイすべきであるゲームはガンバレ…(メールアドレス登録、外部サイト連携)
ユーザー候補は面倒なことがあれば離脱します。

新規登録をした後はデータが取得可能になるため、細かいステップで分析できるようになります。

(ゲーム制作をしている中では数は少ないですが)事前ダウンロードが必要なゲームは、事前ダウンロードが離脱ポイントになりやすいので以下の対応を検討します。
・離脱率は許容できる値か
・許容できない場合は、下記対応ができるか
 ・チュートリアルを進めることができるようにする(のウラでダウンロード)
 ・PVを流す
 ・説明動画を流す

チュートリアルは上記の「おまけ:(1)コンテンツを一通りプレイしてもらいたいの分析方法」と同じように分析可能です。
チュートリアルは基本一本道ですし、移行割合(離脱率)も出せます。
ちなみによく聞かれるのはチュートリアル離脱ユーザーへの対策です。基本無理です。初日にそこでプレイ離脱するようなユーザーは何日待っても戻ってきませんし、毎日プレイするユーザーにはなりえませんでした…。

上記の通り、分析すべき所と打ち手は無数にあります。
そのため、分析しようと思えば何年でも分析し続けることが可能なので、ある程度やることを絞って重要なポイントだけ分析していきたいですね。

以降はよく使う考え方を紹介します。

汎用的な考え方

ファネル分析

「おまけ:(1)コンテンツを一通りプレイしてもらいたいの分析方法」の通り、ユーザーはステップを追うごとにどんどん離脱していきます。
この考え方をファネル分析・・・上流が大きくて下流が小さくなるファネルを参考にした分析方法です。イメージはググってみてください。

この考え方で、アプリ分析でやりたいことはだいたいが可能です。この考え方で対応が不可能なものは、できることが複数パターンあるなかで、どれが一番効果があるかです。それは次の決定木分析で分析できます。

決定木分析

決定木分析は、できることが複数パターンあるなかで、どれが一番効果があるかを分析する手法です。

継続率が高くなるユーザーはどのような行動をしているのかなんてことを分析してくれます。
・・・コンセプトはすごいんですよ?数理的にもしっかりできている。

否定的に書いている理由としては、そういうことを専門にしているコンサル(ワイも含む)がですね・・・継続率が高くなるユーザーはログインを良くしているみたいな当たり前の結果を示唆と言ったり、継続率が高くなるユーザーは課金額が多いなんてことも言われたことがあります。ワイはそ奴らに「課金をガッツリするような人間がすぐ離脱するわけないやろーが。無課金と比べんな」というツッコミを送ります。

そのように、決定木分析は当たり前の結果や異常値なユーザーを取ってきやすい分析です。それは要因でも何でもありません。
モデルや計算ロジックは悪くないんです。使い方がおかしいだけです。

使い方を正しくするには、仮説を持つ必要があります。
育成カードゲームであれば、「カード獲得」→「カード強化」や「装備獲得」→「装備強化」のようにどちらもプレイしておいてほしいコンテンツの流れがあると思います。それらが要因に出てくる必要がありますし、装備強化をノーマル武器からレアまでするなら5回必要みたいなレベルデザインが機能していることも決定木で確認できます。細かい手法はググってね。

そういえば分析記事(決定木分析)を書いてた→決定木分析(Python CHAID)を解釈する

そのように、少し高度な分析になると使い方がめっちゃ難しいので、基礎的な分析で対応した方が良いです…ホンマ(‘A`)
ちなみに、上記で出した例は決定木分析を使わずとも、「新規登録者のうちカード獲得枚数別の継続率」のような形で分析することが可能です。

なお、私の決定木分析の結果の読み方は、「最低限(要因A)を〇回プレイしていないと、ここまでしか継続率が上がらないのか…」です。決定木分析(継続要因分析)の要因は継続要因というより、離脱要因としてとらえています。最低限しきい値とでも言いましょうか。そうしないと希望的観測で語る人がいるので。

おわりに

今回は、毎日プレイするユーザーが増えないよというお悩みに、新規登録の面から解説を行いました。
疑問点や質問、リクエストがあればコメント等いただけるとありがたいです。

ゲームアプリ運営の分析ノウハウ vol.1 概要編

はじめに

以前から、Twitterなどでこんな悩みを見聞きしていました。
「ゲームアプリを運営する際に、どのような視点で、どのような指標を分析すべきかわからない」というものです。今回はそちらのお悩みに対して、仕事で使っている分析ノウハウをお伝えできればと思います。

確かに、指標だけでもたくさんあるし、専門用語もよくわからない。
私も初めて見た時思いました。「わけわかんねぇ・・・」と。
KGI、KPI、新規継続率、既存継続率・・・

初めて見る方ははじめまして。
総合コンサルティング会社でデータ分析を担当しているれいです。新卒から製薬企業品質管理、データコンサル、総合コンサル(分析メイン)など、データサイエンティスト、プロジェクトマネージャーなど職種の違いはありますが、データ分析メインでやってきました。

ゲームはソーシャルゲーム中心に受け持ちましたが、コンシューマーやプラットフォーム系、筐体系の分析も経験があります。それらの経験のエッセンスを抽出してお伝えできればと思います。

今回は、ゲームアプリ(特にソーシャルゲーム)でよく使っていた分析とその考え方をお伝えします。そのため、買い切りアプリなどには適用できない考え方も多くあると思います。

1. 基礎的な考え方

まずは、大きな視点からロジックツリーを使い、問題になっていそうな指標を発見します。コンサルティングの現場ではよくありますが、全体観がない状況で分析して目標数値を最適化も、結局全体でみると何も変わらなかったみたいなことになりがちです。

そのため、大きい視点からまず分析していきます。

以下のように、売上から見ることが多いです。
売上 → プレイ人数 × 一人あたり売上

出てきた指標をさらに分解します。
プレイ人数 → 新規ユーザー + 既存ユーザー
一人あたり売上 → 広告売上 + 課金売上

そして、時間軸を設定します。
(月別)売上 → (月別)プレイ人数 × (月別)一人あたり売上
(日別)売上 → (日別)プレイ人数 × (日別)一人あたり売上

あなたのアプリはどこに問題がありそうでしょうか?
売上がそこまで多くないアプリでは、プレイ人数、一人当たりの売上どちらも低いです。

そもそも売上がゼロ(0)!という方は登録ユーザー、プレイユーザーを増やしましょう。

これまで私が経験したソーシャルゲームを指標とすると、プレイ人数は数万~数百万の単位です。少なくとも1万人はいないとサービス終了ラインに入ってくると思います。
課金額は、新規ユーザーに限定すると、開始30日以内の一人当たり課金売上が1,000円あると「まあいけるかな」という感じです。

既存ユーザーの課金額はゲームやイベントによってかなり大きく変化します。課金者一人当たり1か月の課金売上で1万5,000円程度はあるアプリが多かったですね。

・・・自分のアプリとスケールが違いすぎる・・・!と思われた方も多いかもしれません。
そのため、次のステップでは、いかに1円でも収益を増やすかを考えるための視点を提示します。

2. 小さく始めるための視点(ユーザー増加)

色々な指標はありますが、まずはユーザー(プレイ人数)を増やすことが重要です。

プレイ人数は下記のように分解できます。
プレイ人数 → 新規ユーザー + 既存ユーザー

かつ、新規ユーザーが既存ユーザーになるので、まずは新規をきちんと取れるか(既存ユーザーに移行させられるか)ということを考えましょう。

ここで定義の確認です。
新規:登録初日のユーザー
既存:登録初日ではないユーザー
ちなみに初心者は定義をおろそかにしがちですが、定義を固めないと正しい事後比較ができません。思ってたんと違う・・・みたいな指標を分析していたりします。

登録初日から次の日以降に、いかにプレイしてもらうかが重要になってきます。
そのため、指標は新規ユーザーの新規登録1日後継続率を見ます。

新規登録1日後継続率とは読んで字の通りですが、1日と継続の定義を加味すると、
「登録の次の日(1日後)にログイン(継続)しているかどうか」を判定します。
計算式は、新規ユーザー1日後継続ユーザー数 ÷ 新規ユーザー総数です。

1日後・・・新規登録の24-48時間の中にログインしていた人とします。

ソーシャルゲームでは最低25%、良いゲームだと50%を超えます。
それ以下になるとユーザーが定着しづらいゲームとなるので、一人当たり課金額がかなり高くないとサービス終了秒読みになります。

そのため、目標値は最低30%としましょう。

指標が決まったら、カスタマージャーニーマップや、ユーザーの遷移図を使って問題点を発見→対処していきます。
そういったものがなければ、自分で新しくゲーム内アカウントを作って、新規登録1日以内に触れられそうな部分をリストアップし、イケてなさそうな部分を改修していきます。

ここで重要なのは、最初に触れるものが一番大事というファネル思考です。
ユーザーはゲーム内のコンテンツに触れるたびに、「もういいかな」となって離脱していきます。
そのため、初期のコンテンツであればあるほどユーザーの離脱に影響します。

そこ辺りを注意して問題点に対処していってください。

新規1日後継続率が改善したとしましょう。
次は3日後継続率、7日後、14日後・・・と少しずつ確認のポイントを後ろにずらして、離脱していないことを確認します。

前提としてソーシャルゲームは毎日プレイしてもらうことを想定しているため、そのような日数で判定しています。
もう少しタイムスパンが長いようなゲームだと、月間プレイ人数で分析することが多かったです。

継続ユーザーについては、月間ユーザーの次の月の継続率が8割を下回らなければ問題ないです。
下回っているようであれば、下記のような観点で分析します。
・継続しなかったユーザーはそれ以降復帰していないか?
・ログインしてもコンテンツをプレイしない人はどれくらいいるか?(ログボ勢)
・いつ、どれくらいの人数がログインしているか?減っているタイミングはないか?
・毎日のプレイ回数は想定より少なくないか?少なくなっていないか?

単純に人数が減っているように見えても、理由によっては対応可能です。
・飽きてプレイしない → 離脱
・その他

飽きてプレイしないのが一番対応しづらいので、プレイ回数がどんどん減っているなどがあれば対応が必要でしょう。

3. 小さく始めるための視点(一人当たり売上増加)

続いて重要な視点は、一人当たりの売上を増やすことです。

一人あたり売上 → 広告売上 + 課金売上

広告売上については、下記のように分解しましょう。
広告売上 → 広告単価 × エンゲージメント回数

エンゲージメント回数(表示、クリック等を達成した回数)を増やすか、広告単価を増やすかが考えられます。

エンゲージメント回数を増やすには、以下のように分解するとよいでしょう。
エンゲージメント回数 → 広告表示回数 × エンゲージメント確率

確率は増やせませんが、表示回数は増減することができます。

広告の表示回数を増やしたらユーザーが離脱しそう・・・?大丈夫です。
とある実験では、表示回数を現実的な範囲内で増減する場合は、継続率は変わらなかったそうです。
実体験でも、広告を減らしたところで継続率変わらず、収益だけ減ったという・・・orz
人の行動は意外と直感的ではないのです。

課金売上では、分析するポイントは複数あります。
・商品軸:売上 → 商品単価 × 購入数
・人軸:売上 → 課金額 × 課金者数

施策で注意してほしい点は少ないです。
・商品数を増やしても、売上が上がるとは限らない
(ユーザーは欲しいものしか買わない…別視点では選択肢が増えすぎると、逆に売上が下がるようなことも起こり得ます)
・安売りをすると、後々売り上げが下がる
(利益の先食いになってしまうようです…)
・限定商品はマジで売れる
(きちんと他商品と差別化していれば、不思議と売れます)

おわりに

今回は「ゲームアプリを運営する際に、どのような視点で、どのような指標を分析すべきかわからない」について、ざっと確認しました。
ざっと確認というテイでブログを書いてみましたが、凄く・・・長いですね。

まずは、一つでも分析してみると、温度感や難易度が分かってくるかと思います。
ぜひお試しください(^^)/~

○○をどう分析すればいいかわからない、もっと深い分析(要因分析、需要予測など)がしたいなどがあれば、Twitter Rei_FarmsにDMいただければと思います。
お仕事の依頼も受け付けていますので、お気軽にお問い合わせください。

Meisyo3 説明書

監督視点の野球ゲームMeisyo3(公式サイト, Google Play)の説明書です。
随時更新していきます。

目次

このゲームの遊び方
シーズン1~3年目を通しての遊び方を紹介しています。
試合仕様
試合仕様について簡単に触れています。
ステータス仕様
各ステータスについて詳細に記載しています。
その他
その他、皆様が気になるであろうポイントをお伝えします。

このゲームの遊び方


シーズン制を採用した、1シーズン3か月(ゲーム内3年)のゲームサイクルがあります。
シーズンを意識してプレイするとMeisyo3の戦略や戦術の面白さが分かりやすくなると思います。シーズン更新はシーズン3年目に実施しますので告知をご覧ください。

ゲームの大きな目標は、毎月月末の公式戦(サーバー内トーナメント戦)に優勝することです。甲子園と違い、春の大会や地方大会がなく、1試合目からどんな学校とも対戦する可能性があります。
とくに3年目の大会での優勝はかなり難しいです。ただ、戦略を持って取り組めば上位入賞は可能でしょう。公式戦は試合のルールも独特なのでぜひお楽しみください。

「強くなったらどんな感じでプレイできるの?」という疑問は、エキシビジョンマッチでプレイしてみてください。
NPCチーム、特に高円高校が強いので参考になると思われます。

1年目

1年目は勝ったり負けたり・・・毎日の選手招待(ガチャ)と練習試合、課外活動で選手を集めるとよいでしょう。
練習試合は初心者ブースト期間(1週間)で、12時間ごとに5回実行が可能です。負けても名将ポイントが勝利時と同様もらえるので、選手獲得ならガチャに使っていくか、レベルアップ優先なら資金調達(ポイント消費)で、得た資金を練習施設強化に使いましょう。試合観戦(スキップ)モードで放置しながら進めてもよいかもしれません。
課外活動ではクリアできない試合は無視して、勝てる試合でレベルを上げていきます。

仕様的に強い敵に、かつ勝った方が経験値を多くもらえるので、クリアが容易なシナリオや時短で挑戦を使うとよいと思います。

選手はランクアップまたは覚醒でさらに能力を伸ばすことができます。
1次覚醒(レベル10)で育成ポイント振り分けを可能にし、かつ第2変化球を入手できます。
2次覚醒(レベル30)で継承スキル(第2スキル)と第3変化球を取得しましょう。

覚醒は同レアリティの選手が必要になるため、最初は難易度が低いノーマルレアリティの選手を使うとよいでしょう。
レアリティの高い選手は特徴的なスキルを持ち、特定条件下ではかなり強力です。ただし使いどころが難しいのでノーマル選手の方が使いやすかったりも・・・。
ランクアップ(いわゆる凸)は同じベースIDの選手が複数必要なため、ノーマルレアリティの選手が強化しやすいです。

同じベースIDの選手とは、ベースIDと呼ばれる選手のタイプが似た選手たちを識別するIDです。Meisyo3のストーリーとしては、「同じ人(主人公)が別の場所で生まれたら・・・」というIFの意味がある選手たちです。ステータスは固有スキル(第1スキル)は同じものの、各能力値は少しずつ違うため選手一人一人の能力値はそれぞれ異なり、同一選手は(理論上ほぼ)存在しません。

資金は練習施設強化に使うようにし、主要な練習の効率を上げ選手のレベルアップを優先しましょう。
練習は投手と野手でそれぞれ1つか2つ・・・例えば、野手は適正に合わせて打撃と守備、速球投手には速球練習、制球or変化球投手には制球練習と設定するとよいと思います。
できる練習の数を増やしすぎると、練習施設強化用の資金が不足してレベルアップが遅れる原因となります。色々手段があると楽しいけどね。

2年目

2年目はだいたいレベル35~40くらいになっていると思うので、ほとんどの課外活動に勝てるようになってくるかと思います。新戦力を獲得・育成しつつ、練習試合で対人戦の練習をするとよいでしょう。

余った選手で継承スキルを所持していない選手は、選手個人画面からスキル継承に使っちゃいましょう。
色々なスキルを持っておくと、どんな相手が出てきても対応が可能になります。

優勝したい本番の大会を3年目の夏とすると、強そうな敵高校と当たっておくことをお勧めします。練習試合はポイントを使って再マッチングできますが、勝てた方が経験値は多いものの、強い相手を避けるのはちょっと自信がついてきたらやめておきましょう。
強い相手との戦いで小技(バント・盗塁・ランエンドヒット)やスキルの使用タイミングを理解しておくことで、大会時は格下相手にほとんど負けない戦いができるようになると思います。

この頃になると、練習施設強化に時間がかかるようになり、資金が余ってくると思います。
その際は、エースやスタメン野手のスキルレベルを上げていきましょう。
スキルレベルを上げるにはスキルポイントが必要で、スキルポイントは資金を消費するか、練習でたまに手に入るスキルポイントBOXで入手可能です。
スキルレベルはスキルを忘却(リセット)するとそのまま(100%)スキルポイントに戻るので、何回でも試せます。

試合に余裕が出てきたら、強い選手を選抜するために、さまざまな選手を試合に出場させて成績を取得します。
ステータスより打つ/打たない選手やチャンスには強い選手など、思わぬ特徴があったりします。

3年目

課外活動ではほとんどの挑戦・シナリオに勝てる素地が整います。勝ってSレア選手を獲得しておきましょう。
ちなみに、シーズン更新によって課外活動の進捗状況はリセットされるため、獲得した選手も再度獲得が可能になります。

練習試合では、1点を取りたいタイミングで取る練習など、さまざまな場面を想定した指揮練習をするとよいと思います。
公式戦の独特なルールもありますので、1点でも多くとれるような力が欲しいですね。

・・・3年目の大会、勝てるでしょうか?

試合仕様


監督視点の試合のため、選手の操作はできません。指示のみ可能です。

投球・打撃・走塁・守備のAIは全てのプレイヤー共通です。NPCプレイヤーだから強いor弱いAIが入っているというわけではありません。
守備AIは、貧弱なので、たまに外野への打球を後ろに大きくそらしたりなど思わぬ行動をしますが、ご了承ください。
走塁AIは、アプリが重くなったり、打球がフェンスなどに引っかかると変な挙動をします。走塁すべき場所から明らかに離れる(アウトになる要件)こともありますが、アウトにはしません。
(随時改善中です。)

試合は両チームの読み込みが完了すると、以降読み込み通信をしないため通信状態がよくない所でもプレイが可能です。また、自動で試合の進捗を保存するため、不意にアプリを落としたり、アプリが不意に落ちたり、画面を切るなどをしても、その場面(打撃中なら打球が飛び始めるところから)から試合が再開できます。

ステータス仕様

全般

身長・体重

身長により投球・送球のリリースポイントや守備可能範囲が変わります。
体重により少し特殊能力があります。

調子

現在はありません。(実装予定)

利き腕

利き腕により投球・送球のリリースポイントが変わります。

打席(左右)

走塁開始時の位置が打席位置になるため、左打者の方が1塁までの移動は少し有利です。
そのため右打者に少し打撃補正を入れています。

打席位置

現在は表示・能力に違いはありません。(実装予定)

スタミナ(HP)

投球や打撃などで減少し、各種ステータスが減少していきます。

体力

総スタミナ量を決定するステータスです。多いほどより多くの球数を投げ、打ち、走ることができます。

根性

スタミナの減りを緩和するステータスです。

各種スキン

見た目の変更のみで、試合への効果はありません。
※ストーリー上には、「スキンは選手個人の意思により選択できる」「特訓では参加している選手・高校が識別できないよう全員同じにしている」等小話があります。

性別

選手名によって識別できますが、試合への効果はありません。

投手

投球モーション

現在は1種類のみです。(追加実装予定あり)
リリースポイントが変わります。

速球

投球の速度が上がり、速球(ストレート)が打ちづらくなります。少しだけ変化球も打ちづらくなります。
打者ステータスの反応で対応可能です。

制球

投球のコントロールが良くなります。
仕様として、厳しいコースであるほど打ちづらくなります。そのため、制球の良い投手ほど安定して厳しいコースに投げ切ることができるので、打ちづらくなります。

キレ

球種のキレが増え、打ちづらくなります。
変化球はキレが増加するほど球速が増加し、より打者の近くで変化するようになります。
打者ステータスの反応で対応可能です。

変化量

変化球の変化量が増え、打ちづらくなります。
打者ステータスのミートで対応可能です。

変化球種

ベースID選手で固有の変化球種(最大3種)を持っています。

球種ごとに軌道は同じです。選手Aだとドロップカーブ気味で、選手Bだとふつうのカーブということはありません。
カーブやスローカーブ、フォークとスプリットなどはキレにより表現されます。

野手

打撃モーション

現在は1種類のみです。(追加実装予定あり)
スイング角度やバットの巻き込み方が変わります。

走塁モーション

現在は1種類のみです。

送球モーション

現在は2種類(中距離・遠距離)です。遠距離になると予備動作の時間が長くなります。

守備モーション

現在は1種類のみです。(捕手用の追加実装予定あり)

ミート

投球を正確にミートする力です。ステータスが上がるほど変化球に対応しやすくなります。

反応

速球や球のキレに対応する力です。ステータスが上がるほど速球やキレの良い球に対応しやすくなります。

パワー

スイングスピードです。ステータスが上がるほどより打球が早く、遠くに飛ぶようになります。

走力

走塁時の移動速度です。ステータスが上がるほど走塁が早くなります。一定数値を超えると内野安打を量産しはじめます。

肩力

送球時の送球速度です。ステータスが上がるほど送球スピードがかなり上がります。

守備力

守備時の移動速度です。ステータスが上がるほど変化がわかるレベルの速度で打球を追います。

その他:ゲーム挙動について


ゲーム挙動とMeisyo3のストーリーは密接に関係してきます。
本編ではほぼ割愛されていますが、サブストーリー(開発中)で読めるできるようにしたいところ。

試合時、選手たちの座標が被る理由(選手同士がぶつからない)

Meisyo3は近未来の、今でいうメタバース空間で野球をしています。
それは選手をケガなどから保護するためです。

従来のシステムでは、野球はそのような防ぐことができる事柄で天才を、才能を失ってきました。
とある人がそれを変えようとした・・・というのがMeisyo3(の元となるMeisyoやMeisyo+)「野球連盟システム」の発端です。

試合時、フェンスと選手がぶつからない理由

同上です。
「怪我するのもよくないよね」ということで、フェンスとの当たり判定を切っています。

そこで気になるのはホームランボールを取れるかですが、
仕様上、フェンス以遠の飛球はとれないはず・・・取れたら教えてください。修正します。

ステータスバランスについての方針

あまりにも強すぎるステータスがある場合は、上方修正・下方修正どちらもします。
練習内容についても同様です。
スキルについても同様に、上方修正・下方修正する場合があります。

「戦略」と「戦術」を楽しむゲームなので、「このスキルがあったらXXには勝てる!」は無くていいです。

タイミングに合った選手・スキルを使えば、打てる/守れる確率は確かに上がります。
が、確実に勝てるのは野球ではありません。(と作者は思っています。ゲームであってもそれは変わりません。)

・・・ということも、ストーリーに織り込まれています。
「強さを求め続けるとどうなるのか」がMeisyo、「平等が行き過ぎるとどうなるか」がMeisyo3の1つの命題です。

名将と呼ばれた者達3 正式サービス開始(終了済み)

Meisyo3のサービス終了、監督たちの甲子園(Meisyo4)への注力というわけで、サービス終了しました。

ゲーム説明

”考える野球”を楽しもう。
あなたが考えた戦略・戦術を駆使して戦う高校野球監督シミュレーションゲーム。
1シーズン3か月の中で、監督として選手・資源・時間をどのように使うべきだろうか?
試合(戦術)では選手交代、作戦、スキルを使うべきかタイミングを見極めよう!
育成(戦略)ではどの選手を、どのポジションで、どの育成方針で育てるかを試行錯誤!
放置中に選手が少しずつ成長!時間がない人も遊べる放置ゲー。

戦略面では、選手入手→育成→実戦のループが重要で、戦術面では、選手の起用法や指揮などの采配が重要です。

選手入手は、ほとんどの選手をゲームプレイ中に入手することが可能です。選手で差が付くのはリアルでは当たり前なのですが、Meisyo3では手札をほぼ均等にしたいと考えています。「手札は同じ、ではあなたは何を選ぶ?」

選手育成は、育成方針の選択が最も重要です。育成方針は10個程度あり、育成方針によって選手の能力値が大幅に変わってきます。「どの選手をどう育てるか?」を考えつつ、育成方針にもレベルがあり、あまりに低いとシーズン中に選手レベルが最大にならないので「どの育成方針を強くするか」も考えたいところ。

実戦(試合)では、選手の起用タイミングが重要です。「この場面でどの戦術行くか」「どの選手を使うべきか」を実行しつつ、「どんな結果だったか」「次も使うべきか」を体感や指標で判断するイメージです。

戦術は、代打・代走・守備固めなど選手の起用タイミングももちろん重要ですが、配球(狙い球)や盗塁・犠打など、試合を自分の好む形に変えていきたいですね。

・・・そのような「考える野球を楽しもう」の要素がメインです。

仕様などの説明書はこちら。

ゲーム本体

スマートフォン版

Android

高校野球シミュレーション 名将と呼ばれた者達3
Google Playからインストールして遊べます。適宜アップデートされます。

PC版(Windows)

Meisyo3 20230930-161
ダウンロード後、解凍してください。Meisyo3.exeをクリックして起動します。アップデートは定期的に本ページを確認してください。
※正常にプレイできなかった部分を修正しました。(08/06)
※Windowsでのみ動作を確認しています。その他のデバイスでは動作するかわかりません。

もし動かない場合は、下記2点を順にお試しください。
①ダウンロード版を設置するパスには日本語を含まないようにしてください。
②Unity Hubをインストールください。
正常な画面では、下記のように「アカウント作成」ボタンが白くなりますが、

正常でない場合はボタンが灰色でかつクリックができない状態となります。

お手数をおかけしますが、よろしくお願いいたします。

開発資料

開発内容に興味がある方はこちら。開発進捗はアップデート予定も載っています。

Meisyo3 ゲームコンセプト
Meisyo3 開発進捗

プレイ画面

初期バージョン

開発中画面

<試合:スキップモード>

<試合:指揮モード>

<育成画面>
開発中

正式サービス開始以降の運営方針について

今後の方針を箇条書きで簡単にまとめ、各々の意図を後述します。

1・差別化要素を明確化する
 Meisyo3は「いつ」「どこで」「何(誰)を」使うかを考えることを楽しむゲームです。
 試合中では、選手のスキルをはじめとして、どのタイミングで、どのポジションで、どの選手を使うべきかを考えます。
 例えば、スキルは回数制限・効果範囲が限定的なため、いつ発動しても試合の結果に影響を与えることができるスキルはほぼありません。
 試合外では、試合の望ましいタイミングで、想定のポジションに対し、攻撃力/守備力など特徴ある選手を有効に使うために育成があります。そのために、ゲーム内ポイントで選手を、資金で練習資材やスキルポイントなどを用意していきます。

 それは、すべてはただ1つの勝利のために。1%でも多く勝ちを、1点を拾えるように・・・ですね。

2・初見からわかりやすく使いやすいUI、楽しそうな見た目と雰囲気に。
「かわいいキャラクターが野球をしている」
「そのキャラに指示してチームを動かす」
「読み合いで勝つ」的な内容をより打ち出します。

3・自分らしさを表現できるように。
目玉の「オリジナル選手」を追加しました。最高レアリティのうち、好きな選手を一人選んで自分の選手にできる機能です。名前やキャラクターも選択可能です。エースや大砲、守備職人・・・どれを選びますか?
「自分らしさ」を表現できる選手のスキンアイテムやキャラクターの切り替えなどを実装します。監督アイコンもより多くのキャラクター・イメージから選べるようにします。
戦略や戦術、選手スキルも適宜追加します。スキルはアクティブ(手動)発動を増やしたのち、パッシブ(自動)発動、バフ・デバフ無効化などを追加する予定です。
※スキンアイテムは1度購入すると全サーバー共通で利用できます。有償ポイントのみ購入可能なスキンも追加されます。ただし、テストサーバーでは購入できません。

4・より試合に没入できるように。
読み込み時間を減らすこと、試合を途中で落ちにくくすることをはじめ、より試合に集中できるようにしつつあります。
対策の結果、試合がほとんど落ちなくなったようです。(スペックが低いスマホは落ちる感あり)
また、落ちたとしても途中から完全に再開できる機能を追加しました。

選手たちの反応速度などについても、リアルに寄せつつゲームとして楽しめるように調整しています。

以上です。

作者コメント(随時更新)

自分が一番楽しんでいる作者のれいです。
コメントまで読んでいただきありがとうございます~;つД`)

野球は相手の先を読んで、思った通りに行ったときがとても面白いと思ってます。
そんな体験をスマートフォンメインで手軽に、社会人のように時間がない中でも遊べるようにしたい。
勝てる確率を1%でも上げる努力をし続けて勝ちに行く。でも、たった1度の試合で未来が決まる・・・。
その儚さをこのゲームに込められれば・・・いいなあ。

ゲーム体験がいまいちなので改修(Meisyo3を継続)またはサービス終了・再開発(甲子園版)を検討中です。
サービス終了判断になる場合、購入いただいた有償ポイントの返金対応を行いますのでよろしくお願いいたします。

オープンβテストを開始する(かも)

オープンβテスト用の機能作成が終わりました。
meisyo3_alpha(ざっくり試合機能)から、丸2か月ですか・・・なかなか掛かりました;つД`)

イメージ図を記事の後ろの方に載せているので、興味がある方はご覧ください。

試合でできるようになったことを羅列すると・・・
試合中断(自動。スキル使用状態保存が未実装)、選手交代(代打・代走・守備変更は可能。守備位置変更が未実装)、オーダー確認、観戦モード切替え、スキル使用(手動発動スキルのみ実装)。
投球、打撃、守備アルゴリズムが改善されて、より自然になってます。予期せぬバグでゲームが落ちることもなくなりました。
ゲームを落としても試合の状態が自動的に保存されるので、試合をスキマ時間で楽しめるようになったことが大きいかと思います。

とはいえ未実装の内容が多いので、実装リストを明示し、オープンβテスト中にプレイヤーの皆さんの意見も踏まえて実装していきたいと思います。

全体でできるようになったことは、自分のチームを持てるようになったことでしょうか。
3か月1シーズン制の予定ですので、何もかもが潤沢にある状態になることはほとんどないです。

今、何をすれば一番良いのか?を選択し、状況がリアルタイムで変わっていくことを楽しんでいただければと思います。

また、スマホ+非同期処理があまり理解できておらず、ゲームの表示部分がグダグダになってる箇所もあります。
そういった気になる点もβテスト中に連絡いただければ嬉しいです(^^)/

最後に、この後の予定をお知らせします。
まずは、オープンβテストを行います。下記はあくまで予定ですので、前後する場合があります。

オープンβテスト(1シーズン:3年間分)
2023/04/01~06/30
名将と呼ばれた者たち3正式公開
2023/07/01~

オープンβテスト中は課金機能を含め、無料で利用できる機能を作る予定です。
スキン(バット、ボール、グローブ他)、アイテム・スキンボックス(一部)、アイテムショップ(一部)、ピックアップガチャ…

あなたがある選手を見出し、育て、その選手の可能性を引き出していく。
監督として、限られた時間・資源(選手含む)を使って、チームとして最高の状態を作る。

気の長いRTS+育成ゲームのような、ちょっと珍しいゲームになると思います。

では~(^^)/

プレイ画面

トップ

背景のグラウンドで、練習設定に合わせて選手が練習している表示を出してもいいかなと思ってます。
表示のキャラ数が多くなると重くなるので、あまり増やしたくはないですが・・・3D画面なので重くなりやすい(汗)

試合(スキル使用):クリックでGIF動画が見れます

効果がわかりやすいよう、ステータスの上昇値が異常なくらい高いです。こんなに上がりません(笑)
さまざまな効果があるスキル(バフ、デバフ、バフ解除、デバフ解除、スキル封印etc)の使用回数をいつ使うべきか?というタイミングが重要になってきます。現在、NPCは戦術を変えたりスキルを発動してくることはありません。
予定では、操作AIを作ろうかなと思います。なぜなら、、当たり前ですが棒立ち状態は弱いもの・・・。
リアルタイム対戦にしたら?という話はありますが、、プレイヤー人数や技術的に難しそうなのでとりあえずAIで・・・。
そのプレイヤーごとに試合の操作データを取得してAIに学習させる → 操作すればするほどNPCがあなたのように強くなる・・・みたいな感じでしょうか。

ストーリー(チュートリアル):クリックでGIF動画が見れます

星谷さんが主人公のストーリーです。
AIなどIT技術が当たり前に使われ、効率化が進み人の労働が減り、機会の平等が進んだ世界は、彼女にはどのように見えるのでしょうか?
ストーリーに女子プロ野球が絡んできているので、資料を集めながら、ストーリーラインを作っています。

ちなみに、MeisyoやMeisyo+のストーリーがMeisyo3のシーズン2以降で読める・プレイできるようにする予定です。
書けなかったことや、今までのストーリーだと表現できなかった部分がUnityだと表現できそうなのでやってみたいと思います。