![見出し画像](https://assets.st-note.com/production/uploads/images/38102927/rectangle_large_type_2_496c29503b35d283fc346a0a1ab3e134.jpg?width=1200)
ゲームプレイの記録から学ぶエクセル
ゲームプランナーは各種パラメータを算出したり、仕事を圧縮するさいにもエクセルが必要になってきます。しかし、誰もがみな最初からエクセルを使えたわけではありません。(自分もはじめは使えませんでしたが、楽したい効率よく作業したいというところから覚えていきました)
エクセル関数を紹介しているサイトを見ても、日付取得、最大値取得、平均を出す……なんて実際に使ってみないとピンときません。
今回はエクセル初心者やこれから勉強する人向けに、ゲームプレイを記録してエクセルを学ぶという手法を紹介していきます。(指定セルとか関数の使い方ミスっていたら、すいません!)
・書き手は何してる人?
ゲームプランナーで、仕様書やリストを作る以外にシナリオ書いたり管理したりする仕事もしている人です。(特にリストや管理まわりでエクセルはガンガン使います)
また長年、プライベートでプレイしているゲームの記録をエクセルにまとめたりしています。
・ソシャゲをプレイして学ぶエクセル
今回は、ソーシャルゲームによくある周回プレイでポイントを稼ぎ、一定のポイントを取得すると報酬が貰えるというものを想定して表を作成しました。10万ポイント達成で報酬が貰えるよう設定。
※以下の画像が見づらい場合は、右クリック>画像だけを表示>拡大、で確認できます
ソーシャルゲームでは、イベントがあり開始日、終了日が設定されています。そこから何日プレイできるのか、目標のポイントを達成するにはどれだけの時間とプレイ回数をこなさなくてはならないのかを計算しています。
■記載していった手順と考え方
1:必要な情報の入力
イベント開始日(B1)、終了日(D1)、目標値(B2)を入力し、日数を算出するために、イベント終了日(D1)から開始日(B1)を引くと、F1に日数が表示されます
次に……
・プレイすることで得られるポイントの平均値を出す
・あわせてプレイ時間の平均を出す
2:記録するプレイ回数を設定
今回は10回に設定。24行以降を参照
3:プレイデータを記録
一周ごとに取得したポイントと、開始から終了までのプレイ時間を計り記録
4:平均値の算出
2で設定した回数分記録し、最後に平均値を出します
平均 = SUM関数/COUNTA関数
→SUM関数は合計値の取得
→COUNTA関数は、指定した範囲内にある空白ではないセルの個数を取得
平均 = 合計値/10回
実際にB35セルに入れている計算式【=SUM(B25:B34)/COUNTA(B25:B34)】
5:取得平均値(B3)の参照
4で取得ポイントの平均が算出できたので、それをB3セルで参照する。参照する場合は【=参照するセルを指定】でできます。
実際にB3セルに入れている関数は【=B35】
6:総プレイ回数(B4)の算出
目標値である(B2)と取得平均の(B3)を割ると出てきます
実際にB4に入れている関数は【=B2/B3】
7:総プレイ時間(D4)の算出
C35で出した一周回あたりの平均プレイ時間*B4の総プレイ回数で算出
実際にD4に入れている関数は【=B4*C35】
8:一日あたりのプレイ時間(F4)の算出
総プレイ時間のD4/日数のF1で割ると出てきます
実際にF4に入れている関数は【=D4/F1】
これらのデータから、このイベントは一日あたり一時間ちょいのプレイ時間を想定している形となります。
ここに、特攻キャラクターの効果でポイントがn倍されたり、取得ポイントがn倍されるアイテムが販売されていたりなどあれば、想定されている時間よりも少ないコストでイベントをプレイすることができます。
あんまりイベントに張り付いていられない場合は、こうった計算をすることで早めに課金するか、しないか、イベントに参加する、しないの判断も可能です
ここまでの作業で、日付の計算や平均値の取得、四則演算、値の参照などができるようになっています。
もう少し踏み込んでいきます。
9:一日あたりのノルマ(F2)の算出
目標値であるB2とプレイ可能な日数(F1)で割ると出てきます
実際にF2に入れている関数は【=B2/F1】
10:経過日数ごとのノルマ(D14)の算出
一日のノルマ (F2)*経過日数で算出します
実際にD14に入れている関数は【=$F$2*C14】
※セルの指定に【$】マークを入れていますが、これは参照がずれないようにするために入れている記号です
さらにもう少し踏み込みます。
11:進捗の確認
その日一日で達成したポイントとノルマとの差分を出し、現状遅れているのか、進んでいるのかを客観的に見られるようにします
差分は、終了時の値(E7)-ノルマ(D7)で算出
実際にF8に入れている関数は【=E8-D8】
値がマイナスになっている場合は、ノルマ未達成となります。
この表からは、初日のノルマは達成してないことになります
総プレイ時間や一日のノルマはわかったけれど、じゃあ残りはどれくらいなの? となった場合の計算方法は次に記載
12:はじめに現在の最大値(D3)を取得
実際にD3に入れている関数は【=MAX(E8:E20)】
現状は、11日目までしか入力していないため最新の値&最大値は75000となります
13:残りのポイント数を算出
残りの値(25000)=100000-MAX値(75000)
実際にD2に入れている関数は【=B2-D3】
14:残プレイ回数(B5)の算出
残りの値を取得平均回数で割ると出てきます。
実際にB5に入れている関数は【=D2/B3】
15:残プレイ時間(D5)の算出
残プレイ回数(B5)*プレイ時間の平均(C35)で出てきます
実際にD5に入れている関数は【=B5*C35】
備考:F3のMIN値(最小値)は最小値も取得できるよ、というのを伝えるために記載しただけで今回は使用していません。
・まとめ
上記のような表を作れるようになれば、この考え方を応用して、RPGでレベルアップするにはどれくらい戦闘しなくてはならないのか、どうやったら効率よくプレイできるかなど可視化することができます。
これらは作る側としても使うことができて、たとえばRPGの戦闘で何回通常攻撃したら敵を倒せるように設定するか(味方や敵の強さ)、ダンジョンでボスに到達するまでの間に何回戦闘させたいか(エンカウント)、1レベルあがるまでに何回戦闘させたいかなど(経験値)、ソーシャルゲームならばユーザーにどのくらいの時間プレイしてもらうか、何周させたいかなど設定できるようになります。
自分はバトルプランナーではないので深いところまでは語れませんが、こういったこともできるよ、というのがやんわり伝わればと思います。
また、ソーシャルゲームの場合はプレイを記録しておくことで、今回のイベントは前回と比べて難易度が低めに設定されているな、初心者キャンペーンでユーザーが増えたからクリアしやすいようにしているのかな? など数値から運営の動向を探ることができたりします。
本noteでは使えそうなものを一気に入れてしまったので、まずはご自分で興味のある箇所(一日のノルマ算出からなど)から取り掛かるのがよいのではないかと思います。
応援されると生きる気力がわいてきます! もう少しがんばります!!