この度、新作MeisyoNX開発の参考とするため、以下URLでアンケートを行うこととしました。
アンケートページ
期限は11月中となります。
ぜひ、お時間のある時にアンケートにご回答ください。( ^^)/~
Webサービス制作のための技術情報を。データ分析(Python、機械学習コンペ他)や自作野球ゲームMeisyoのこと中心。
この度、新作MeisyoNX開発の参考とするため、以下URLでアンケートを行うこととしました。
アンケートページ
期限は11月中となります。
ぜひ、お時間のある時にアンケートにご回答ください。( ^^)/~
MeisyoNX作るよーということで、進めてまいりましょう。
前回 | 次回
コンセプトとキャラクターをある程度作ったので、画面イメージを作っていこうと思います。
中身を作り込む前に、おおよその画面(雰囲気)を作ってみて、企画がイケてるかイケてないか確認します。
画面を作るといっても、何をするんだっけ…という方が多いかと思います。
作業ステップとしては以下の通り。
作る画面を決める
↓
トンマナ(色設定)を作成
↓
モック画面を手で描いてみる
↓
モック画面を作ってみる
↓
作ったモックを元にアイデアを出す
↓
よさそうなアイデアからモックを作り直す
↓
そのモックを元に画面イメージを作る
参考:実践ゲームUIデザイン コンセプト策定から実装のコツまで
ここで重要なことは、コンセプトを守ることと、一番よく使う画面から先に作るということですね。
これを見ると、このゲームは練習(育成)と試合(実戦)が中心ですね!
コンセプトやテーマで画面に関係がありそうな要素としては、、
・高校野球(青春)
野球で色と言ったらグラウンド(茶)、芝生(緑)、スコアボード(濃い緑)、ユニフォーム(白・黒)が想起される。
現実に存在する「青春」感を出すなら・・・やはり背景は白、文字は黒で彩度低めにして、現実のような雰囲気を出す必要があるでしょう。
・近未来的な世界観・自動的に進む(放置)
近未来で自動化が進んだ世界なので、レトロではなく近未来的なUI・文字フォントを使う。
・おじさんたち(ユーザー)が、監督として指示を出して、細く長く遊ぶことがゲームプレイの前提
練習や試合での指示はシステムっぽい見た目から出す。
試合はYahoo スポーツナビのような雰囲気。
おじさんの目に優しくしないとプレイを続けるのが厳しい・・・億劫になる(実体験)ので、読みやすい白背景・黒文字にする。
要件を整理したので、作業を開始しましょう。
まずは、画面の雰囲気を大きく左右する色の設定、いわゆるトーン&マナー(トンマナ)を作ります。

彩度は抑えめに、現実感のある色で。目に優しく。眼鏡を外していても問題なく触れるように。
続いて、練習画面を作っていきましょう。
まずは手書きでいくつか案を書いて・書き直してみます。
ここで実際の画面で作ると、ビルド&スクラップに手間がかかるので手書きにします。
ここでは、他のゲームも参考にしたほうが良いと思います!
参考1:Game UI Database
参考2:ゲームUIブログ
ある程度案が固まってきたら、モック画面を作って・・・

※うーん、このイモっぽさ・・・。前作のMeisyo+と変わらない。
この画面を元に生成AIでいくつも案を出してもらいましょう。
適当に作ってみて良い案のパターンを盗み、次の案に生かしていきます。




※私はClaude Codeでモック画面とコンセプトを読み込ませて、案出ししてくれと指示しています。
ここで注意したいことは、(自分はプロではないので)一人で考えていても案は限られてくることを念頭に、自分の案を捨てる気を持つということですね。
誰かに案を出してもらうことで、「これはダメ、これは良い」とどんどん自分の考えが明確になっていきます。
それらの画面の要素から、良いと思うものを整理して、本番(バージョン1)の画面イメージを作っていきましょう。
色々作ってみたので、ゲームのプレイサイクルと合わせて見ていってみましょう!
ホントはこの後に、試合結果詳細(1球速報的なもの)や成績分析(誰に強くて誰に弱いか)を見て、良い選手を見極めていくサイクルになるのですが・・・
とりあえず前の更新から2週間経ちそうなのでここまでで出します!
結構時間がかかりましたが、落ち着いた配色かつちょっとスタイリッシュ感があるものにできた…かな?
この手の野球ゲームを良くプレイされている方には、「どんなのできた?」の画面を見たら「どこか見たことあるな・・・」感があるかと思います。
やっぱりいい画面って使い心地良いんですよね。
MVP(最低限のプロダクト)に必要な画面がもう少しあるので、作っていきたいと思います!
MeisyoNX作ってます・・・が。
画面を作るのが難しい!
理由:
・ワイ氏デザインセンス皆無
・AIでの自動作成が難しい(思った通りにならない)
・作ってみて壊している
最初にトンマナ(色調)を決めて、練習のイメージを手で書いて…
これはひどい。
Meisyo+と変わらない。
・・・というのを繰り返し。
20案くらい作っては壊しました。
成果物・・・になりそうなのはこちら。
・練習画面

放置時間を使って、リアルタイムっぽく練習結果が見れます。
画面が結構動くようになっていて、見ていて楽しかったりする。
・試合画面

こちらも放置メインで、大事な所(ピンチ/チャンス)だけ操作できる感じです。
Meisyo+リアル表示と、監督たちの甲子園の操作画面を組み合わせた感じになりましたね。
;つД`)うおー難しいぞ…
MeisyoNX作るよーということで、進めてまいりましょう。
前回 | 次回
コンセプトをある程度作ったので、キャラクター画像を作っていこうと思います。
コンセプトがどの程度楽しくなりそうかは企画の段階でほぼ決まっているので、今回はカードゲームですし、その雰囲気がおおよそ決まるキャラクターが重要なんですよね。
これも自身のモチベを上げていくために重要で、キャラクター的にどういうイメージのゲームになるか見えていたほうが安定感をもって作りやすいという過去の経験からです。
キャラクターを作るには、ストーリーが必要です。
ストーリーはコンセプトからある程度は想像できると思います。
ざっくりというと、監督が中心のゲームです。
チームとしては現役選手を中心に、コーチ5人とOBがサポートするシステムです。
つまり監督本人か関係者(特にコーチ)がストーリーの中心になるはず。
元々のMeisyoのストーリーは、監督とマネージャー(高藤雪)の関係がほとんどでした。
今回からはコーチ5人が重要になってきそうです。
というわけでコーチ5人の設定を作成してっと・・・
5人のコーチとモブの画像を作りましょう。
必要なのは、(1)カード画像、(2)バストアップ画像、あと(3)ちびキャラ画像。
ここで大事なのは、今後のシステム構築にも対応できるように、複数種類の画像を用意しておくことです。
カード画像は、各選手の詳細画面やガチャの当たり画面に。
バストアップ画像は、選手一覧やオーダー画面、ストーリーに。
ちびキャラ画像は、説明書だったり、ちょっと砕けた場面で使うために。
前作までは1つの画像で全部対応しようとしていたので詰んでました。
生成AIですべて作っています。
ですが、顔形・印象・髪の長さなどすべて調整するプロンプトを作り、何度も調整し、いいのが出てくるまで出し直し…みたいなことをやっています。
再現性を取れるようになるまで作り込むのが結構大変でしたね。
(絵師の人を見つけたらこの子たちを書き換えてもらいたい…)
再現性をさらに高めるために、(1)カード画像(全身画像)から(2)バストアップ画像と(3)ちびキャラ画像を生成させるようにしています。
プロンプトで顔形をそれぞれの画像で指定するよりも、「添付した画像のキャラクターの顔を切り出して~」などと指示すればうまく出来ます。
注意点は、「○○(マンガ)の××(キャラクター)みたいな女性を~」と指定すると今後著作権的にNGになりそうなのでやめておきましょう。
ワイは固有名詞を出さないようにしていますし、生成に利用したプロンプトを保存しています。
今後を考えると、絶対そういう規制がきちんと整備されると思ってます。
一応、仕事で生成AIを取り扱ってるのでプロであるをいう自覚もありますし、クライアントでの構想や利用方針等を決めるときもありますしね…。
適当に決めると、あと10年変わらない可能性もあって、、リスクがあり、怖いんですよね。
という負の側面もありますので、利用は計画的に。
このカード画像、わりとかっこいいのでは…?姿勢も破綻してないですしね。

ここまでキレイに出すのにめちゃくちゃ苦労しました・・・。
野球は結構画像データがあるみたいで、右投げなら広く応用がききました。。
ただ、小柄+左投げサイドというかなりニッチなものはなかなかうまくいきませんでした。orz
次はMVPの画面のイメージを作っていきたいかなと思います。
どういう体験ができそうな画面なのか、もっと向上させるならどういう画面にするか検討していきたいですね。
これまでの作品のデザインセンスが皆無なこともありつつ、ものぐさなこともあり、とりあえず作る → 更新せずそのままが多すぎるんですよね。;つД`)
いい感じに作れそうなものができるまで、叩いて叩いて~作っていきたいと思います。
それでは!
MeisyoNX作るよーということで、進めてまいりましょう。
前回 | 次回
さっそく手を動かしてシステムや画面を作っていく・・・なんてことはしません。
これまでの経験から、高確率で途中で迷子(何をするんだっけ?)になるので。
そうするとモチベが下がってエタる(開発中止)・・・とならないよう、注意していきましょう。
作り切るためには、「限られた能力を頑張って使う」のではなく「仕組みでカバー」が鉄則です!
かんたんに言うと、ゴールと、そこまでのプロセスを先に決めるですね。
そうすると、今自分はどの状態で何をすべきかはっきりしてきます。
個人開発はゴールが自分の頭の中にしかないので、、少しずつ忘れます。これは人間なので仕方ない。
ゲームをはじめ、プロダクトはイメージが少しでズレると思ったものと違うものがでてきます。
そうするとモチベが下がって詰みます。
今回はMVP(Minimum Viable Product;必要最小限の機能を持った製品)を作り、ある程度面白そうであれば進めていきます。
(その時点で面白くならないなら、いくら頑張っても面白くならないんですよね…)
作業ステップとしては以下の通り。
コンセプト作成
↓
要件定義
↓
ゲーム内要素の関係図の作成
↓
MVPターゲット選定
↓
画面リスト作成
参考:
コンセプト「から」ゲームを作るのが苦手な人に捧げる、コンセプト「で」ゲームを作る方法
システム開発のV字モデルとは?流れやW字モデルとの違いを解説
※ゲーム開発(ワイの(まだ)趣味)とシステム開発(ワイの本業)の掛け合わせですね。
一番重要なのはコンセプトです。
コンセプトがダメなら後工程でどう頑張っても仕方ないです。やること決まってるんで。
今のコンセプト(チーム)は「このチームで、一度しかないあの夏へ」ですので、要件が「=(メンバーが移り変わる)現役チームで強い相手に立ち向かう」ということが確定します。
以前は、「一度しかないあの夏へ」・・・で、これ結構解釈の幅があってコンセプトとして破綻してるんですよね。そうして考えた要件が「現役チームでノーマルモード(対NPC戦)を戦う。それこからプロになった選手たちがOBチームとして対人戦を戦う」・・・すげー複雑。困る。
むしろ、作れるもの(前作も同じ仕様)から逆算してコンセプトを曲解しとる・・・
できるだけシンプルにしたいですね。
プレイの上で、ユーザーに伝わらないと意味がないので…。
例えば、メインコンセプトの「99%の放置と1%の采配が勝負を決める、1日10分の高校野球監督ゲーム」も・・・ピンポイントな采配もできるが基本は放置がメイン。1日10分の縛りあり。という自分の中では単純明快なコンセプトです。
そういう検討を繰り返して、、ゲーム内の要素を整理して…

※この時点で破綻してることが結構ある。関係図が書けない=ゲームとして成り立ちません。。
MVPで最低限必要な要素を出して、画面リストとしてまとめました。
※生成AIをはじめ、いろいろな自動化・思考の外注ツールはかなり使ってます。助かりますね。
次からはゲーム開発っぽいことをやっていきます!
MVPで使うキャラクター(メイン5名、モブ1名)イメージの作成をして、練習画面だったり特にゲームの初期のほうに体験するものを作っていきたいですね。
ゲーム自体の雰囲気と、キャライメージを合わせておかないと後で作り直しになるとアレですからね…。
ページのトンマナとかも作らないとかな。
まずはゴールとプロセス設定から!
作成の指針になるものを作っていきましょう。
それではー
皆さま、いかがお過ごしでしょうか。れいです。
めーっちゃ暑かった夏も終わりを迎え、勝者(沖縄尚学)が決まり、そろそろ過ごしやすい季節となってまいりました。
そろそろ寒くなるから風邪に注意するんやぞ…ということで(?)、
直近でアンケートさせていただいていましたが、
この度正式に新作ゲームの開発を開始したいと思います。
ゲームコンセプトは
「99%の放置と1%の采配が勝負を決める、1日10分の高校野球監督ゲーム」です。
裏コンセプトは
「仕事と家といろいろ頑張るあなたに、ほっと一息。」で、日常の癒しになるような体験を提供できるよう開発を進めていきます。
ジャンル的には放置 × 野球監督 × 戦略ゲーム(RTS)ですね。持ちうるリソースを最適配分し、敵に勝利することが目的のゲームジャンルです。
一言で言うと、「放置ゲーで、先に采配(いろいろな事前設定)をしておき、その成果を少しずつ楽しめるゲーム」ですね。
練習はその通りです。育成方針を決めて、育っていくのを見守って…。
試合も采配 → 放置要素が強く、途中の指揮もできるようになりますが、やはり事前設定をうまく出来るチームが勝つようになりそうです。
放置するにも期待感があって楽しいし、プレイも楽しいようなゲームで、・・・ただ、そんなにゲームに時間を使えない人に向けて送ります。(サブゲーム向けともいう)
そのようなコンセプトをまとめた初版コンセプトはこちら(α1版)。

やっぱりこのマークはいい感じ…
このマークでわかる通り、このゲーム(Meisyo NX)はMeisyo+の後継・・・もとい魔改造品です。
今も更新していて、「このチームで、一度しかないあの夏へ」という、現役チームを主軸としたわかりやすいストーリー・対人コンテンツを持つゲームとなる予定です。
追加予定の選手の卒業もあるので、その時のチームでその大会に挑めるのはたった一度きりなんですよね。
そうして、チーム力が随時変わっていくので、必然的に、メインの対人コンテンツであるユーザー甲子園(旧:公式戦)も大番狂わせが起こりやすい、毎回ワクワクできるゲーム体験となっていく予定です。
これまではこの人=強いor弱いがはっきりしてたし、戦う前に「負けそう」と思う→負けるがあたり前でした。
まあシステムがそう(卒業なし=選手の入れ替えが起こらない)ならそらそう(強い人はずっと強く、勝てない)よ。
今後もいろいろ変えて、最適なコンセプトに調整します。お楽しみに。
(皆さんのご意見待ってます!!)
いろいろ言いたいことはあるけど、「今のオンラインでできるゲームは続けることにめちゃくちゃコストがかかる」んよな…。
毎日の周回を強いられるイベント、イベントが終わらない(イベントの次にすぐイベント)、ついていかないと狩られる…運営側も経験したけども苦い記憶。
ホンマきついで、ワイみたいなおじさんには。;つД`)
ゲームタイトルでいうと、Meisyo Next Generations…次世代とは…?と思われる方もいらっしゃるかと思います。
これまでのMeisyoになかった選手の卒業・世代の継承やOBによるコーチなど、次の世代・目標とする試合に向けて積み重ねていくことを主眼としています。
Meisyo NXにしたのは、そのまま略するとMeisyo NGは…NGはイヤダナーという個人的な感想です。
ストーリーも次世代に変わる…つもり。ストーリーの登場キャラも作っていってます。

お姉さんカッコイイ
ストーリーの枠は決めているけれど、キャラクターはやはりインスピレーションが大事かなと。
なんで次世代(Next Generations)なの?という疑問も、今後出す初期版のストーリーを読んでいただくと分かる…かな!
Webアプリ…つまりブラウザ(ChromeやEdge)になります。
インストール不要。どこでもIDとパスワードさえあれば遊べます。
監督たちの甲子園はAndroidやiOSでしたが、元に戻します。
そういうこと(?)で名前も戻します。
放置ゲーのコンセプトもMeisyoがベースですしね。
以下のように、継続的にユーザーの皆さまの意見を取り入れて改善しつつ、完成までいければと思います。
いまやってるよー。
ゲームの大筋を決めていきます!
どういうゲームなのか伝わるよう、プロトタイプを作ります!
次のステップに向けて、自分が納得いくレベル感で出したいですね。
伝えたい物語の示し方(ストーリーデザインやキャラクター設定、世界観・・・とそれを示すUIや画像)・・・いわゆるナラティブに課題感があるので、協力者を募りつつ、知名度を上げていきたいと思います。
今までは本当に最小限のリリースをして積み上げて作っていく形でしたが、プロトタイプ時点である程度魅せられるものにしたい。
コーディングAIもあるので、開発の高速化はできそうですが・・・?
ここからが本番!
開発中止にならないように、ステップをきっちりと踏みながらやりたい…やるんやで;つД`)
Meisyoもそうですが、戦略は大事なので書いておきましょう。
もしかしたら、後年誰かが見て参考になるかもしれないし。
なんとかなる気が強い。(感想)
仕事で業務システムのシステム開発を内(実装側)から、外(構想側)からやってますが、複雑性が明らかに異なるんですよね。
ゲームのほうが圧倒的に難しい。
それを完成させられる時点でなかなか強いかなと。
仕事でもやってますが、なかなかできる人はいませんね。
構想した通り、思った通りに動かすことができるのは強いと思っている。
なお表現がよくなく、伝わりづらいことは分かってるので改善中…。
仕事でもやってるのでチョットワカルレベルです。すごい人はすごい(ナニソレ)
元々品質管理の仕事をやっていたので、ルールベースAIという基礎の基礎から入ってました。
今はLLMやベイズ推定・数理最適化なども理論面からある程度実装・改善ができます。なおレベル感は大学の教科書1冊目のレベルのもよう。
監督たちの甲子園でフル3Dゲームを作ってみて思ったんですが、総合格闘技過ぎて厳しかった。
複雑なゲームシステム構築やAI実装だけならまだしも、(自身が全くわからない)グラフィック、キャラの動き、感情の動きの表現をはじめとしたすべての軸をある程度高品質に達成しないと厳しいですな。パワプロがやっぱり強い。
Webならそれらの軸を落として、自分の強み(システムで楽しんでもらう)に注力できるかなと考えています。
それでいうと現在のMeisyoにユーザーさんもたくさんいらっしゃいますし。
継続的な(心理的な)つながりって大事ですよね。
開発側で何がどう進んでいるのかわからなかったりして、ユーザーの方の認知が弱くなっていくかなーと思っています。
発信では、どうしてもきれいなことしか言えなくなりますし、、
試行錯誤だったり、厳しいところ、泣きたくなるところだったりは見えません。
そういったところもユーザーの方へのコミュニケーションとして出していきたいと思います。
(カチッとした会社で作るなら無理でしょうけど、こちらは自分で方針を決められるので。こちらも戦略の1つです。)
そこでいうとコスト削減でいえば、AIで文章は作れますが、AIって良いもの、標準的なものしか見せないんですよね。
瞬間的なつながりというか、興味を持ったその人の共通点を知って少しうれしくなる・・・みたいなところって、強いところではなくて、弱いところ、隠したくなるところにあると考えています。
もちろん、この文章も自作ですし。(頑固)
キャラクターをいろいろと作ってみています。いい感じですね。どうキャラ付けしよう。

いろいろ話したいことはありますが、まずはここまでで。
継続的に開発進捗をお伝えしていく予定ですので、これからよろしくお願いします!
つづきはこちら
私は運営するゲームの分析を日常的に行い、機能の改善を行っています。
元々ゲーム運営のアナリスト(コンサルタント)をしていたので、ゲームの分析はチョットワカルかもしれません。
今回は、ゲームの状況をかんたんに確認するために、新規ユーザーの継続率を分析していきます。
・Unity Analyticsで分析した結果です。
Unity Analytics > SQL データエクスプローラーを利用しています。
SQLの種類はPostgreSQLベースに見えます。
・全ユーザーは含んでいないログです。
(上手く取れないユーザーがかなりいる模様…)
・SQLコードを公開します。
自身のゲームの分析などにご自由にお使いください。
まず、分析するにあたって対象ユーザーと指標を確認しましょう。
新規ユーザーとは、ゲームを開始してすぐのユーザーのことです。
※対して、既存ユーザーはゲームを開始して何日か経過して継続しているユーザーのことを言います。
継続率は、対象となるユーザーが、対象となる経過日(24時間以内)にログインしている割合を確認します。
継続とは、
DAY1であれば、新規登録後24~48時間にログインしている人をいいます。
DAY3であれば、新規登録24*3~24*(1+3)時間にログインしている人、
DAY7であれば、新規登録24*7~24*(1+7)時間にログインしている人、
DAY14であれば、新規登録24*28~24*(1+14)時間にログインしている人、
DAY28であれば、新規登録24*28~24*(1+28)時間にログインしている人です。
※DAY1, 3, 7, 14, 28の日の区切りはゲームや会社によって変わります。
この指標は「毎日ログインすることが当たり前のゲーム」で採用されやすいです。
毎日プレイすることが必須ではない場合、以下の継続率(Week版)のような指標を入れてみることがあります。
継続率(Wide版)は、継続の判定幅を広くした継続率のことです。
継続(Week版)とは、
DAY1であれば、新規登録後24~24*(1+7)時間にログインしている人をいいます。
つまり、1日後から1週間以内にログインしている人を示します。
この指標は「毎日ログインすることが当たり前ではないゲーム」で採用されます。
「1週間に1回は触ってもらえるよね」ってことです。
これは分析の都合上、「ユーザーがゲームから離脱したかどうか」を厳密に判定できないため、かなり幅を持たせて分析をしています。
分析するサービスによって変わるので、調整して使ってみてください。
それでは、ゲームの分析を行ってみます。
ゲームはバージョンアップにより内容が様変わりするため、「継続率を取るにはバージョン別が良いだろう」ということでバージョン別に分析を行います。
加えて、特定のプラットフォーム(iOS/Android/PCなど)に異常がないことを確認するために、プラットフォーム別にも分析します。「プラットフォームの継続率が大きく違う」ことは、異常があると判断できます。
では、継続率を見ていきましょう。
初期バージョン(v1.0、v1.1、v1.2)はそれほど指標が変わりません。
テコ入れしたv1.3_1は指標が大きく改善しています。これは良いアップデートだったと言えるでしょう。
ただ、さらにテコ入れしたv1.3_2は初期バージョンより下がっています。これはよろしくないので、元に戻しましょう。
という、数字からゲーム内に何が起こっているかを想像しながら見ていく必要があります。
では、プラットフォーム別に見ていきましょう。
・iOSが良さげかも?
・Androidは要改善
・PCは人がいない
※加えて、完全オフラインではログが取れない仕組みなので実態が不明なユーザーもいます。
こちらの数値と外部データを見比べてみると面白いことがわかります。
・App Store(iOS)とGoogle Play(Android)の登録数から、ログが取れないユーザーがいそう。
・App Storeのアプリ保持数は200超だが、Google Playは100いくかどうか。
Google Playユーザーのほうがアプリを消す傾向にあると言えるでしょう。このゲームは400MB近く容量ありますからね…。
1日後継続しない人は、1週間にわたって観察してもほぼ継続しないことが読み取れます。DAY1とDAY1(WEEK版)の数値がほぼ同じですし。
ただ、3日後以降はユーザーは思い思いにログインしているようです。なぜなら、DAY3の1日間だけログイン割合より、DAY3~10の間のログイン割合が大きく伸びているからです。
つまり、平均的なユーザーはこのゲームに対してどのような接し方をしているか推察できます。
このデータから追加で、深掘りとして「毎日ログインしているひと」「たまにログインしているひと」の人数を確認して、それぞれに合わせた施策を打つ等を考えていけますね。
当ゲームはバージョンの記載方法にCLIENT_VERSION=「X.X.X」を採用しているため、複数バージョンをVERSION_GROUPにまとめています。
ある程度ユーザー数がいないと分析できないので、複数バージョンをまとめるようにしてください。
-- ユーザーIDごとのゲーム開始時間
WITH user_first_start AS (
SELECT
USER_ID
,time_start
,PLATFORM
-- バージョンごとに切り分け
,CASE
WHEN CLIENT_VERSION LIKE '1.0.%' THEN 'v1.0.X'
WHEN CLIENT_VERSION LIKE '1.1.%' THEN 'v1.1.X'
WHEN CLIENT_VERSION LIKE '1.2.%' THEN 'v1.2.X'
WHEN CLIENT_VERSION LIKE '1.3.%' THEN
CASE
WHEN CLIENT_VERSION <= '1.3.3' THEN 'v1.3_1'
WHEN CLIENT_VERSION <= '1.3.5' THEN 'v1.3_2'
ELSE 'v3_3'
END
ELSE 'others'
END AS VERSION_GROUP
FROM
(
SELECT
USER_ID
,EVENT_TIMESTAMP AS time_start
,PLATFORM
,CLIENT_VERSION
,ROW_NUMBER() OVER (PARTITION BY USER_ID ORDER BY EVENT_TIMESTAMP ASC) AS rn
FROM
EVENTS
) AS t
WHERE
rn = 1
)
-- 継続率
, user_retention AS (
SELECT
fs.USER_ID
,fs.time_start
,fs.PLATFORM
,fs.VERSION_GROUP
-- 通常判定版(1day内)
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 1, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (1 + 1), fs.time_start)
THEN 1 ELSE 0 END) AS day1
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 3, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (1 + 3), fs.time_start)
THEN 1 ELSE 0 END) AS day3
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 7, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (1 + 7), fs.time_start)
THEN 1 ELSE 0 END) AS day7
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 14, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (1 + 14), fs.time_start)
THEN 1 ELSE 0 END) AS day14
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 28, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (1 + 28), fs.time_start)
THEN 1 ELSE 0 END) AS day28
-- 判定広め版(1week内)
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 1, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (7 + 1), fs.time_start)
THEN 1 ELSE 0 END) AS day1_w
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 3, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (7 + 3), fs.time_start)
THEN 1 ELSE 0 END) AS day3_w
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 7, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (7 + 7), fs.time_start)
THEN 1 ELSE 0 END) AS day7_w
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 14, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (7 + 14), fs.time_start)
THEN 1 ELSE 0 END) AS day14_w
,MAX(CASE WHEN
e.EVENT_TIMESTAMP > TIMESTAMPADD(HOUR, 24 * 28, fs.time_start)
AND e.EVENT_TIMESTAMP <= TIMESTAMPADD(HOUR, 24 * (7 + 28), fs.time_start)
THEN 1 ELSE 0 END) AS day28_w
FROM
user_first_start AS fs
INNER JOIN
EVENTS AS e
ON
fs.USER_ID = e.USER_ID
GROUP BY
1, 2, 3, 4
)
-- 日別分析
SELECT
VERSION_GROUP
,PLATFORM
,DATE(MIN(time_start)) AS date_min
,DATE(MAX(time_start)) AS date_max
,COUNT(*) AS count_uu
,SUM(day1) / COUNT(*) AS rate_day1
,SUM(day3) / COUNT(*) AS rate_day3
,SUM(day7) / COUNT(*) AS rate_day7
,SUM(day14) / COUNT(*) AS rate_day14
,SUM(day28) / COUNT(*) AS rate_day28
,SUM(day1_w) / COUNT(*) AS rate_day1_w
,SUM(day3_w) / COUNT(*) AS rate_day3_w
,SUM(day7_w) / COUNT(*) AS rate_day7_w
,SUM(day14_w) / COUNT(*) AS rate_day14_w
,SUM(day28_w) / COUNT(*) AS rate_day28_w
FROM
user_retention
GROUP BY
1, 2
ORDER BY
1, 2;
今日はかんたんに、新規ユーザーの継続率からゲームの現状を分析しました。
「もっと知りたい」「○○ってどう分析すればいいの?」というコメントをいただければ、記事を書いていきたいと思います。
ぜひコメントくださいませ。( ^^)/
Deep Researchすげえ、ってことで
”「禁止」とされている所はやらず、「許可」とされているところは自分で調べて実行する”でいいんじゃないかな。
調べる手間の削減っていいよね、という生成AIのテスト記事です。
下記は各プラットフォームごとに「スクリーンショット公開の可否」、「データ公開の可否」、「規約の根拠・該当条項」、「注意点・リスク」を整理した表になります。
| プラットフォーム | スクリーンショット公開の可否 | データ公開の可否 | 規約の根拠・該当条項 | 注意点・リスク |
|---|---|---|---|---|
| Unity Analytics | 原則不可。Unityが提供するUIや画面は機密情報に該当。 | 自社で取得した統計データは公開可能。ただし、個人情報やUIそのものが映らないようにする。 | Unity利用規約(Unity Materialsの取扱いに関する条項) | 機密情報漏洩によりアカウント停止や法的措置のリスク。 |
| Google Play | 基本的に許可。ただし、個人情報や未公開情報が写らないよう注意。 | 自社アプリの統計データ(ダウンロード数、売上など)は公開可能。ただし、特定の機密APIデータは除外。 | Google Play開発者契約、Googleブランド資産ガイドライン | 非公開情報や個人情報の露出、スクリーンショットの改変に注意。 |
| Apple (App Store Connect) | 許可。正式リリース済みの情報は公開可能。ベータ版等プレリリース情報は非公開。 | 売上やダウンロード数などの統計データは公開可能。 | Apple Developer Program License Agreement(プレリリース情報に関する条項) | プレリリース情報の混入や、Appleの商標・ガイドライン遵守の必要性。 |
| Google AdMob | 禁止。管理画面のスクリーンショットはGoogle機密情報とされ、公開は規約違反となる。 | 一部のみ許可。総支払額などは公開可能だが、クリック数、CTR、eCPMなどの詳細指標は非公開。 | Google AdSense/AdMob利用規約(秘密保持条項) | 機密情報漏洩によりアカウント停止や収益没収のリスク。 |
| Google Analytics | 許可。通常の解析画面は公開可能。 | 公開可能。なお、AdSense連携等で機密情報が含まれる場合はその部分を除外する必要がある。 | Google Analytics利用規約(AdSense連携部分はAdSense規約が適用) | AdSense由来の機密情報との混同に注意。スクリーンショット改変や誤解を招く表現に気をつける必要がある。 |
| Firebase Console | 許可。一般公開されている情報については公開可能。ただし、ベータ機能や非公開情報はNG。 | 公開可能。ただし、個人情報やセキュリティに関わる情報(APIキー、プロジェクトIDなど)は伏せる。 | Firebase利用規約、Googleブランドガイドライン | APIキーやプロジェクトIDなど、公開すべきでない情報の露出に注意。ベータ機能や非公開情報の公開は避ける。 |
この表は、各サービスの利用規約やガイドラインに基づく一般的な考察です。具体的な公開内容や方法によっては、各プラットフォームへの事前確認や個別の判断が必要となる可能性がある点にご注意ください。
Unity Analytics
。これにはAnalytics管理画面などUnityの提供するダッシュボードの画面も含まれると解釈されるため、Unityの許可なくスクリーンショットを公開するのは規約違反となる可能性があります。
。この条項が根拠となり、Analytics管理画面といったUnity提供のサービス画面のスクリーンショット公開は制限されます。一方、開示するデータ自体はユーザーのコンテンツにあたり、この条項の対象外と解釈できます。
Google Play(Play Console)
。従って、Play Consoleのスクリーンショットも適切な範囲であれば公開可能です。ただし画面に含まれる他人の個人情報(例: ユーザーレビューの氏名やメールアドレス)が写らないよう注意が必要です。
。こうした特定ケースを除けば、一般的な統計データの共有は許容範囲です。
にあるのは開発者資格情報(ログイン認証情報)の機密保持義務などで、管理画面の内容公開を直接規制するものではありません。また、Googleのブランドガイドラインでは**「サービスや製品の説明を目的としたスクリーンショット使用」は認められる**と明記されています
。一方で前述のように、特定APIの返戻データはGoogleから機密指定される例があります
。従って、一般には許可されているものの、Googleから機密扱いされる情報は公開NGという整理になります。
)、必要に応じて著作権表示を行うなどのルールを守ることが推奨されます。万一Googleが問題視する情報(例: 機密指定されたAPIデータなど)を公開した場合、アカウントへの警告や停止などの措置が取られるリスクもゼロではありません。基本的には常識的な範囲で情報を共有し、懸念がある場合は事前にガイドラインを確認するかGoogleに相談すると安心です。
Apple(App Store Connect 等の管理画面)
。しかし、App Store Connectは開発者向けの本番サービスであり、そこに表示される自分のアプリの販売数・ダウンロード数といった情報はプレリリースの機密には当たりません。そのため、自社アプリの実績を示す目的で管理画面のスクリーンショットを掲載すること自体はApple規約上問題になる可能性は低いです。実際、多くの開発者や企業がプレスリリースやブログで自社アプリの実績データ(Appleから提供される売上レポート等)の画像を公開しています。
。この条項が示すのは、未公開のものに限って秘密保持義務が課されるということです。逆に言えば、正式リリース済みのサービスや既に公知の情報はApple機密には該当しません
。また9.4項では契約内容やAppleとの関係を勝手に公表しないよう求めていますが
、自社アプリのデータ公表は契約そのものの開示には該当しないため問題ありません。以上より、App Store Connectの画面やそのデータはプレリリース情報を含まない限り機密扱いではないと言えます。
。一方、通常の範囲で自社アプリの販売実績を共有する限りはAppleからペナルティを科されるケースはほぼありません。むしろApp Storeの成功事例として表彰されることもあります。ただし第三者へのプレスリリース等でAppleの名前を出す場合には、あたかもAppleが保証したような誤解を与えないようにするといった配慮(Appleの商標ガイドライン遵守など)が必要です。またスクリーンショット中のデータを改竄したり誤解を招く形で公表すると信頼性を損ねるため、その点でも注意しましょう。
Google AdMob
。具体的には、クリック率(CTR)や収益に関する各種統計値が機密情報の例として挙げられており、Googleの事前許可なく公開してはならないと明記されています
。従って、AdMobのダッシュボードをそのままスクリーンショットで公開する行為は契約違反になります。実際、GoogleはAdSense/AdMob出版パートナーに対し、管理画面のスクリーンショット共有を禁止しており、SNS等でこれを投稿すると即座にポリシー違反と見なされる可能性が高いです。
。一方、クリック数やインプレッション数、CTR、eCPMなど細かな成果指標は全て機密情報に該当し、具体的な数値をブログやSNSで共有することは禁止されています
。「○○万PVで△△円稼いだ」といった概算程度でも、CTR等が類推できる場合は注意が必要です。グラフや表を一部隠して公開する場合でも、非公開とすべき指標が読み取れないよう十分マスキングする必要があります(推奨はされません)。
。この条項が、クリック率や収益レポートの詳細を公開することを禁じる根拠です。また同条項には例外として「Googleから支払われた総支払額について正確に開示すること」は許容されると記載があります
。以上をまとめると、AdMob/AdSense管理画面上の統計データは全面的に非公開が原則であり、公開してよいのは累計や総額程度に限られるということになります。
Google アナリティクス(Google Analytics)
。このようにGA単体のスクリーンショット公開は禁止されていないと言えます。但し、後述のようにAdSense等他のサービスと絡む場合は注意が必要です。
が、Google Analyticsではそういった定義づけはされていません。実例として、Google担当者への問い合わせでも「載せてはいけないという部分はない」と明言されています
。ただし注意点として、AdSenseとの連携です。GAとAdSenseをリンクさせている場合、GA上にAdSenseのクリック率や収益などが表示されることがあります。このようなAdSense由来の指標は依然としてAdSense規約上機密情報です
。したがって、たとえGAの画面でもAdSenseデータが含まれる部分を公開すると規約違反となります。この点を除けば、GAデータ公開を制限する規約上の根拠は特にありません。
。また、GAの数値を恣意的に加工して誤解を招く形で発信した場合、読者や取引先からの信頼を損ねるリスクがあります。総じて、GAのスクリーンショットやデータ公開は比較的自由ですが、含まれる情報の性質を見極めて慎重に扱うことが重要です。
Firebaseコンソール
。このガイドラインに従う限り、Firebaseの画面共有も問題ないと解釈できます。
参考文献: Unity 利用規約
、Google ブランド資産利用ガイドライン
、Google Play Developer API 利用規約
、Apple Developer Program License Agreement
、Google AdSense(AdMob)オンライン利用規約
、有志による規約解説ブログ
など。
知り合いにこのゲームをテストプレイしてもらったときに、
「めっちゃ楽しい。遊び方が分かればやけど。」というコメントをいただきました。
確かに、一見すると複雑怪奇なシステムのため、全体像を把握するのは困難です。
ただ、作者自身は「簡単なシステムを組み合わせているだけ」と考えています。その視点から、監督たちの甲子園を、深く楽しむためにはどんな論点で何を考えるべきかを解説します。
簡単な一言 → 各要素に対していえる一言 → その他と、少しずつ深めて記載していきます。
簡単なまとめ・・・最低限知っておきたい考え方はこちら
育成チェックリスト・・・強くなるために必要なことをできているか確認しよう
各要素に対して言える一言・・・より細かい各要素に対して、何を考えておくべきか書いたものがこちら
・試合は敵より1点でも多くとれば勝ち。一つ一つの指示に得点期待値を考えて動きたい。
・指揮はじゃんけん。自分が得意な作戦か、敵から見ると選んだら嫌な作戦か、メリット・デメリットを考えて動きたい。
・バランス型選手は結局使いづらい。育成には運はあるものの、「どんな特徴を持つ選手を育てたいか」を考えておきたい。
・ユーザー甲子園の強いチームを参考にしよう。真似したら強くなれる。
打順で前のほうに良い打者を揃えているでしょうか?
同じような弱点を持った打者を並べていないでしょうか?例えば、速球が苦手(反応が低い)選手ばかりではないでしょうか。対人戦では、選手交代で弱みを突いてくるチームが多いです。
守備の要として、センターライン(投手・捕手・二塁手・遊撃手・中堅手)が特に打球が来やすいです。
投手はもちろん、センター(中)・セカンド(二)・ショート(遊)にかなり打球が飛んできます。彼らは守備力の高い選手であり、かつ送球も高い選手でしょうか?
センターに良い選手を置くことで、敵の平均打率を2分(2%)以上落とせることが分かっています。対戦相手全員が打率3割の打者でも、たった一人の活躍で2割8分に落とせるのは大きいでしょう。
捕手は肩を高くしないと、盗塁が自由にできてしまいます。
育成では、エース1人で投げ抜いて勝利することが可能です。
ただ、対人では少しでもHPが減ると厳しいので代役が必要です。
他の観点として、敵の弱点を突きましょう。
速球が苦手なチームには速球投手、変化球が苦手なチームには変化球投手、一発長打が怖いチームには制球投手を繰り出すことで抑えやすくなります。
何かに極端に特化している選手を、ベンチ入り18人のうち2~3人入れておくことで戦術の幅が広がります。
特に、点が欲しい時の代打・代走、1点を守りたいときのセンターラインへの守備固めが大きなキーとなります。
練習では、能力値はSあたりまで上がりやすいです。
ただ、それ以上になると上昇にマイナス補正があるようです。
そのため、入学時点でどの選手をどのような方針で育てるかある程度決めておいたほうが良いです。
例えば、捕手向けなら「強化方針は肩全振りなので、練習は反応と長打を上げよう」みたいな感じです。
反応がSまで上がったら(だいたい2年中盤~後半で切り替え)、長打に切り替えることになると思います。
コーチの指導がうまくいけば、2年前半でもS行けたりするんですが…そこは運ですね。
よく悩むのは、投手は体力を伸ばしてから育成するかどうかですね。
体力を伸ばせば、体力回復の必要回数が少なくなる分効率がいいことはわかっているものの、勝てない投手になる場合が多くて…。orz
練習では、能力値はSあたりまで上がりやすいので、育成方針はそれ以降を伸ばすのにうってつけです。
育成方針で能力が伸びるのは「試合に勝利」が前提となるので、試合前にはきちんと何を育成したいか決めておきたいですね。
例えば、現3年は反応が全員Sに到達しており、反応の練習が必要ないとします。
ただ1・2年生はまだまだ育成の余地があります。
投手・野手で練習Gを1つ使うとして、最大であと1つしか練習Gがないので「何の練習を選択すべきか?」ということですね。
3年野手は長打や走塁になるでしょうが、1・2年野手向けに反応の練習をすべきでしょうか。
それとも、捕手や守備固め育成のために使うべきでしょうか…?
育成では、スキルLvが試合の勝利によって向上していきます。
1年秋からスキルを付与して、2年春・2年夏連覇、3年春連続優勝でスキルLv10になるくらいです。
そのため、1年秋には必ず全員分(ある分の)スキルを付与しておきましょう!!
対人戦では、全OB/OG選手に継承スキルを付与していない方を多く見かけます。
おすすめ設定でもよいので付与しましょう!勝率が変わってきます。
全く設定していないよりもおすすめ設定、おすすめ設定よりも選手に合わせた設定が強いです。
おすすめ設定だと能力に応じて配球・配球コース、打撃方針が決まってしまいます。
特に投手・・・特化型投手は強みにしている球種を多投するように自分で調整したほうが良いかと思います。全然違います。
コントロールが悪い投手はストライク中心がいいと思います。球数が多くなって、HPが削られて、失投で失点が多すぎます…。
1人の選手が強くても勝てない。
強いチームを作るにはそれぞれの弱点を補うべし。
特定のチームに勝ちたいなら、相手の弱点を研究すべし。特にスキルを合わせると勝ちやすい。
(例:対デバフチームには、無畏(投手)、洞察(野手)で固める)
万能型(器用貧乏になりがち)より特化型を育てよう。野手も含め体力が意外と重要。
速球 vs 反応、変化球 vs 巧打のように、選手の相性を理解しておきたい。
その時の確実性(期待値が高いもの)を取るか、1本に絞って運否天賦するか。
指揮能力(能力UP)は1つに特化してもよくないので、育成パターンに合わせてバランス型にすべし。
コーチも万能型より特化型。
5人がすべて同じ能力が高いとその能力を育成できない無駄になる期間があるので、育成パターンに合わせてバランスをとるべし。
施設LvはALLMAX。ただLv3~4でも十分なステータスはある。
持てるリソース(時間・資金)を十分かけて、いかに効率よく能力値を上げる場を提供するか。
育成は確率に支配されているので、ベースの能力が高くても伸びない選手が出てきます。
期待値としてはベースの能力が高い選手のほうが高いですが、実際はそうはなりません。
総能力値の最大値はどうしても天井があります。(よくある育成ゲームのように)ALLMAXにはなりません。
そのため、どこかを上げればどこかが下がります。どこを上げ、どこを下げるべきでしょうか?
投手は特に、「ステータスが高ければ強い」というわけではありません。
速球と変化球の球速差・変化量で、打ち取りやすい絶妙な値が存在するようです。
初期の投手が打ちにくいのもコレです。
野手の打撃能力は特に考える必要があります。
なぜなら、「反応・巧打・長打・走塁のいずれか2つを上げるか」という四者択二(二者択一のようなもの)があります。どれを上げるべきでしょうか。
ただ、アンチパターンがあり、反応+巧打または長打+走塁はダメです。
反応+巧打がダメな理由は、「打てても、飛ばない・走れない」だと単打マン(得点期待値低)になりかねないからです。
長打+走塁がダメな理由は、「よく飛ばせて走れるけど、当たらない」だと三振王になります。orz
特に、速球が特に強いため、反応と速球に差があるとほとんど当たりません。(ただ、当たったら飛ぶんですよね。)
そのため、反応を上げることが中心になると思いますが、変化球に対応できないと作戦「変化球中心」で打てません…。そのように、どこを取ってどこを下げるかが大事です。
ストーリやユーザー甲子園を含め、選手登録数は18人のみです。
どのタイミングで使うべきかはっきりしない、他の選手と特徴が被っている選手は使いづらいです。
特徴が被っている選手が多くいるとなると、すぐに次の良い選手が見つかりやすいですし…。
各選手や所有スキルにはメタ(弱点)となるものが必ず存在します。
苦手なシチュエーションを把握していれば、起用法に効いてきます。
ユーザー甲子園を含め、対人戦では敵プレイヤーから挑戦される場合はこちらのチームはNPCとして対戦します。
その際、NPC操作でも勝てるように起用法をしっかり組んであるでしょうか。
弱点を突かれる時間の少ない継投や野手起用など、考えられているでしょうか。
例えば、(1)代打・代走を多くする、(2)体力を高い状態を維持するですね。
「速球だけ」など1種類の能力のみ上げているチームに対し、弱点をさらす時間を減らすために(1)をします。
(2)は、野手も「試合中に体力が減っていくので、能力が落ちていくこと」を防ぎます。
(2)の類型として、投手の交代枠を増やすもあります。投手のHPが落ちない(70%以上)ようにすると、マジで打てません。
ただ…その枚数分選手を育てるのが大変だったりします。
スキル同士の組み合わせにより、想定外に強い選手を作ることができます。
例えば、無畏や洞察はデバフ無効です。
捲土重来は1~6回は打撃デバフを味方全体にかけますが、7回以降はバフに変わります。
洞察+捲土重来と組み合わせると、1~6回のデバフが無効化されます。
例えば、3~4番にチャンス〇+走者一掃の選手を採用します。
そうすると、走者が2人以上居ると驚異的なバフ量+自動発動(発動数制限なし)となります。
例えば、代打専門の打者にチャンス〇+洞察の選手を採用します。
そうすると、どんなタイミングでも、どんなキツいデバフがあっても、かなり良い成績を残せる代打になるでしょう。
上記のように、シナジーを持つスキルの組み合わせがあります。
そのため、そのようなスキルの組み合わせをベースにチームを組んでいくと強いです。
ただし、そのメタ(弱点)として、対策スキルが存在します。
自軍バフ盛りチームに対しては、洞察+捲土重来の組み合わせではバフ量が負けてしまうため、勝てないかもしれません。
洞察は、敵チームにデバフを与えるささやき戦術には強いですが、自チームや自身を強化するスキルには全く影響力を示せません。洞察自体のバフ量は多くないので、単純に常時弱いバフがかかっている無駄な存在にもなりえます。。
バランスを見ながら、どのスキルが強いか試していきたいですね♪
少しずつ書いていきますね( ^^)/
育成のポイントを追記してみました。(25/04/26)
通常、”Class” is missing the class attribute ‘ExtensionOfNativeClass’というエラーが出る場合は、【Unity】’【クラス名】’ is missing the class attribute ‘ExtensionOfNativeClass’!が発生するで解決できます。
ただ、Easy Save3が入ったプロジェクトであると原因がわからない。
「関連するスクリプトがアタッチされていないのに、なぜか当該エラーが発生する…」と。
シーンにあるES3 ManagerのReferencesの中に、”Class”に関するデータが残る。

Editorから、当該SceneのES3 ManagerをRefreshしてもOptimizeしても何も変化がありません。これも原因といえばそう。私のイメージするRefreshは削除→再作成しないとできません。
当該シーンにあるES3 Managerを削除し、再度作成します。
Log.cs
public Log : ScriptableObject {
...
}
XXX.cs
public Log myLog;
Log.cs
public Log {
...
}
“Log” is missing the class attribute ‘ExtensionOfNativeClass’
Refreshって言ったらRefreshだと思うじゃん!!
意味わからんやろこれ…(´Д⊂ヽ