記事

  • ビジュアルノベルのプレイ履歴を収集して、プレイヤーの行動を予測できるようになりたい

    ビジュアルノベルのプレイ履歴を収集して、プレイヤーの行動を予測できるようになりたい

    はじめに

    こんにちは。
    たこのこです。

    先日、サークル員と開発したビジュアルノベルゲーム『水彩画は水底に沈む』を東京ゲームダンジョン13に出展してきました。

    その様子は別の記事にまとめています。

    本稿では、本イベントで収集したデータまわりをまとめました。導線まわりの知見が得られるような記事になっていれば幸いです。


    調査の目的

    本調査では、実際の操作履歴からプレイヤーの行動傾向を分析することで、「どうやって操作すれば良いのか分からない」「ゲームを進める方法が分からなくなった」といった、導線の弱さから起こるゲーム体験の停滞を前もって対策できるようにします。

    (こういう調査報告な文章を書く方法を調べたところ、調査の目的を書くと分かりやすくて良いとのことでしたので真似しました)


    どんなゲームを展示したのか?

    『水彩画は水底に沈む』は、ポイント&クリックアドベンチャーゲームです。背景の描かれたイラストが提示され、該当箇所にカーソルを合わせてクリックすることで、テキストが表示されたり、音が鳴ったり、物語が進展したりするなど、ゲームから反応が返ってきます。

    このゲームシステムに加えて、本作では快適にゲームを進められるよう、クリック可能な箇所にカーソルが重なった際、クリック可能である旨を示すテキストと効果音が提示されます。

    ゲームの説明は以上です。具体的なゲームの内容に興味のある方は、Steamのストアページに詳しく書かれているので確認してください。

    https://store.steampowered.com/app/4389120/_/?l=japanese


    データ分析手法

    2026年8月8日に東京都立産業貿易センターにて開催された「東京ゲームダンジョン13」の参加者の内65名に、本作の試遊を依頼し、その操作履歴を記録しました。

    この記録作業はゲーム側で自動実行され、クリックの座標やイベント呼び出しの時刻が記録されました。

    本稿では、収集したデータを加工し、メッセージが提示されてから次にクリックするまでの経過時間や、シーンごとのクリック箇所の分布、試遊時間を棒グラフやヒートマップなどの図表にまとめました。

    なお、データを加工する過程で、ゲームの一時停止中に行われた操作や、同じ箇所の連打といった外れ値の操作履歴は除外しています。


    結果

    各イラストのクリック箇所を可視化したものを記載します。

    次にプレイ時間です。

    クリック回数です。セリフを次に進めるためのクリックやUIを操作するためのクリックは省いています。

    最後は、セリフが提示されてからクリックでセリフが進められるまでにかけた時間の平均です。


    クリック位置について思ったこと

    クリックされやすい物品の傾向

    • 画面の中央付近にあることが多い
    • どちらかと言えば画面の上側にある
    • 周囲よりも濃い色で描かれていることが多い
    • 周囲と区別されて描かれていることが多い
    • 人の顔が含まれている

    これは今後に使えそうです。

    教室のイラストは分かりやすくクリックできそうなアイテムが置かれていたので、クリックされる場所も物品に集中しています。

    対して、階段のイラストでは、窓や階段といった大きい物品が配置されているので、クリックされる箇所が分散している傾向を見て取れます。

    ただ、階段のイラストに限らず、他のイラストでも想像以上にクリック位置が分散しているなと感じました。

    そこで、クリック回数の多いデータを個別に確認したところ、手当たり次第にクリックしてゲームを進めているケースを確認できました。

    画面上をなぞるようにしてカーソルを動かし、クリック可能な箇所を探す遊び方を想定していたので、これは改善の余地がありそうです。何もない所をクリックしたらエラー音が鳴るとか、カーソルの乗ったクリック可能な箇所がハイライトされるとか…

    そういえば、何もない所がめちゃくちゃクリックされているように見えますが、これはチュートリアルを閉じたり画面遷移をしたりするためのクリック履歴がデータに含まれていたためです。

    机の脚部分だったりキャンバスの右あたりです。

    (図示する前にデータから省いておけばよかった…)


    プレイ時間について思ったこと

    プレイ時間の平均値は442秒で標準偏差103秒でした。6~7分に31人(約54%) が集中していて、そこそこプレイ時間がまとまっています。多くの人に想定通りの流れでゲームを遊んでもらえたと考えます。

    ただ、中には3分から4分と短い時間で試遊版のエンディングを迎えたプレイヤーや、11分から12分と長い時間をかけたプレイヤーも含まれています。

    そこで、3分から4分でクリアした方のデータを個別に確認したところ、セリフを読むスピードが0.4秒から0.5秒と比較的速い部類でした。また、11分から12分の方はその逆で、約2秒かけてセリフを読んでいました。

    このことから、プレイヤーの物語への興味関心がプレイ時間に影響していそうだな、と考えましたが、試遊版は特定箇所をクリックすることでエンディングを迎える条件が満たされるので、意図せず試遊版を終了してしまったケースが考えられそうです。

    「もっと物語を読みたかった」といった不都合を防ぐためにも、不可逆的な物語の進展が起こる直前に「進みますか?→YES/NO」といった選択肢を設けても良さそうです。


    セリフを読む速度について思ったこと

    セリフが表示されてから次のクリックまでの時間の平均値は約0.84秒、標準偏差は0.35秒でした。標準偏差が平均の42%程度あるので、プレイヤーのセリフを読む速度にはそこそこ分散している、という結果になりました。

    なので、文章中心のノベルゲームともなれば、プレイ時間はかなりの幅が生まれそうです。「文字を読む速度って人によって違うだろうな」と思っていましたが、こうしてグラフにしてみると実感が湧きます。

    補足ですが、本作では、長くても20文字くらいのセリフがパッと表示されるようになっています。セリフも1行ずつ表示されます。

    セリフの文字数と読む速度の関係を図示しても面白そうです。
    キリがないのでまた今度…


    おしまい

    データ集めて加工するの楽しい…

    楽しいだけでなく、意外な傾向を読み取れたり、有効なゲームの改善策を編み出せたり、良いことしかないので、今後作るゲームはデータの自動収集を標準搭載することにします。

    なんなら、オンライン上でデータを収集しても良さそうです。ただ、実装方法がピンとこないので、通信周りの技術にも強くなりたいです。

    プレイヤーの年齢層や性別、これまでのゲームプレイ履歴だったりも一緒に収集して分析したいところですが、ガッツリ個人情報なので扱いに困ります。機密情報保持のようなものを用意する必要があるのでしょうか?法に触れそうなので慎重に行きたいです。

    あと、外れ値を省くのにかなり手間がかかったので、加工段階をもっと効率化したいなと思いました。そもそものデータ形式が扱いにくかったので、プレイ履歴の収集段階で工夫したいです。

    以上です。

    ゲームダンジョン13は、展示イベントの展示側として参加した点でも良い経験になりましたが、こうしてデータを集められた点でも有意義だったと感じました。思った以上に収穫があったので、今後のゲーム開発に生かしたいです。

  • 東京ゲームダンジョン13 出展

    東京ゲームダンジョン13 出展

    はじめに

    こんにちは。
    たこのこです。

    先日、インディーな開発者がゲームを展示できるイベント「東京ゲームダンジョン13」に出展側として参加してきました。記憶に残っていること、学びになったこと、今後に役立てそうなことを記します。


    経緯

    開発メンバーからの提案によって、ビジュアルノベルゲーム『水彩画は水底に沈む』を展示することになりました。ゲームのあれこれは下の記事にまとめてましたので見ていってください。

    まず、私は以前からコミュニケーション能力に課題意識を持っていて、「人と話す訓練をしたいな」とメンバーに話していました。

    すると、「じゃあ東京ゲームダンジョンにゲームを展示しに行こうぜ!」と提案されました。それを聞いた当時の私は、めちゃくちゃ渋い顔をしていたと思います。「口は災いの元だ…」などと思っていました。

    渋っていたのは、オフイベントにゲームを出展する費用対効果を考えていたことも由来します。

    オフイベントへの出展にはなんだかんだお金が必要です。パッと思いつくものを挙げると、参加費、パンフレットの印刷費、移動費、機材の準備費などです。1万円から2万円くらいかかります。

    労力もかかります。申し込み手続き、装飾品の用意、機材の運搬、当日の運営業務などです。展示用にゲームの体験版を用意する必要もあります。

    そうした費用や手間と引き換えに得られるものを想像しては、対価が釣り合っていないと考えていました。『水彩画は水底に沈む』を50本くらい売り上げることで諸々の費用を回収できる計算ですが、1回の試遊にかかる時間とイベントの開催時間を考えると、かなり難しいと思われます。

    しかし、メンバーの提案は元を辿ると私に理由がありますし、ここで拒否するのはメンバーの善意を無下にしているみたいで憚られました。

    また、経験していないことを「不必要な経験だ」と語るのは、あまり好ましくない態度に思われます。まずはやってみろ、です。

    なにより、オフイベントへの出展は、ゲーム開発者の果たすべきノルマな所もあるみたいなので、ここは重い腰を上げて頑張ることにします。目指せコミュ強です。


    前準備

    申込手続き周りはメンバーに依頼しました。フォームへの入力やチケットの購入など、地味に大変なところを担当してもらって本当に感謝しています。

    その間に私は、サークルに参加費用の稟議を提出していました。『水彩画は水底に沈む』はサークル員によって作られたゲームなので、その出展費もサークルのお金から出してもらえるかも、と思っていました。

    とは言え、現在の幹部に相談しないでチケット代を払ったりしていたので、稟議が通らなかったら通らなかったで、仕方がないと思うことにしていました。その時は自腹を切ります。

    ただ、そんな稟議はあっさり通ってしまい、サークルに費用を負担してもらえることになりました。サークル員と幹部の皆さん本当にありがとうございます。有意義なオフイベントにしてきます。


    プレイ履歴を集めたい

    稟議周りの手続きと同時並行で、展示用の体験版を用意していました。

    体験版といっても、良い感じのところで区切って「試遊ありがとうございました!」のメッセージと、ストアページに繋がるQRコードを出すのみです。そこまで用意に時間はかかりませんでした。

    ただ、せっかくオフイベントに参加するのであれば、なにか新しいことや面白いことをしたいなと思っていました。就活のネタになったり、今後のゲーム開発に役立つなにかを持ち帰りたいところです。

    そこで、プレイ履歴が記録されるようにゲームを改造しました。いつにどこをクリックしたのかが.csvで全て書き出され、ローカルに保存されていきます。


    プレイ履歴を集めたい

    これは、「バイアスの少ないフィードバックをプレイヤーから貰いたいな」と考えてのことです。

    ゲーマーの皆さんは基本的に優しいので、「ゲームの感想を教えてください」と頼むと、好意的な感想を多く話してくれます。

    それを聞くと、とても嬉しくなるのですが、同時に「本当に思ってるのかな」と不安になります。改善もなしに神ゲーが生まれることはほとんどないと思っているからです。

    ゲームの感想を正直に話せる場に遭遇する機会はかなり少ないです。これは、ゲームの開発者と対面で話している際、顕著に現れる傾向だと思っています。

    文字媒体を介すと感想のバランスが良くなるイメージです。

    だからといって、試遊後にアンケートを設けてもあまり答えてもらえません。

    これは、ゲーム開発者とのお喋りは展示会が提供できるコンテンツの一種ですが、アンケートへの回答はプレイヤーに何の体験ももたらさないので、手間に思われるのだと思っています。私も大学の授業アンケートをサボりがちです。

    そもそも、プレイヤーが、ゲームを遊んで感じたこと、その感情の理由を正確に言語化できるとも限らないです。同じく私も、言語化の結果を正確に受け取れるとも限らないです。

    プレイヤーの感想を聞いて改善するというのは、ゲーム開発者にとって尤もらしい活動に思えますが、そのプロセスには様々なバイアスが多重にかかっているため、かなり注意深く取り組む必要がある、というのが最近の考えです。

    そこで、プレイ履歴を取ろうという発想です。「どうやって遊ばれたのか」という、事実ベースな一次情報ほど信頼できるものはないように思います。

    これは、企業説明会を聞いて得た知見を流用したものです。オンラインゲームやソーシャルゲームを運営する企業さんは、KPIと呼ばれる数値ベースな評価基準を立てて、目的とするゲーム体験の達成度を測ったり、ゲームの改善方法を検証すると聞きました。

    「これは良いことを聞いた。どこかで真似したいな」と思っていたので丁度良いです。

    検証結果については、また別の記事に書きます。この記事を書いている時点で既にデータをこねくり回していますが、面白い記事になりそうです。


    当日の展示準備

    当日は開場の1時間前に集合し、展示の準備を進めました。テーブルクロス、ノートPC、パンフレットや名刺を良い感じに配置しました。メンバーにコミケの出展経験者がいたので助かりました。

    『水彩画は水底に沈む』の展示場所は壁際でした。導線を考えると良い場所かもしれません。

    しかも、壁際は主に企業向けの展示場所らしく、天井には巨大な広告バナーが吊り下げられていたりしました。これは集客のおこぼれを貰えるかもしれないです。

    また、右隣は絵描き界隈で有名らしいVtuberさんの展示場所で、ゲームボーイの実機でゲームを遊べるらしいです。とても情報量が多い展示空間となっています。

    ところで、展示場所が決定される過程が気になりました。私達の展示場所は2階でしたが、3階は開発途中のゲームが多く展示されていると聞きましたし、完全にランダムでもなさそうです。

    企業さんや大手Vtuberにも負けないクオリティのゲームだと運営から認められたのでしょうか?そう想像すると嬉しくなれます。


    運営

    11時開場5時閉場なので、展示時間は合計6時間です。なるべく多くの人に遊んではパンフレットを持っていってもらい、ゲームの知名度向上と購買を促しました。

    具体的には、遊びたさそうにしている方に「試遊していきませんか?」と話しかけたり、パンフレットを渡してゲームの説明をしたりしました。他のメンバー2人にかなりキャリーしてもらって大感謝です。

    展示する中で様々な人と遭遇しました。サークルの大先輩にゲームのプレスリリースが大学の教授に取り上げられていたことを伝えられたり、地方テレビのアナウンサーと名刺交換したり、企業さんにNintendo Switchへの移植を打診されたりしました。これらがオフイベントでしか生まれない出会い、得られない経験なのだと思います。

    運営を終えて思った点として、折りたたみ椅子を持ってくれば良かったと思いました。数時間ずーっと立っていたので足が棒になりました。

    また、ポスタースタンドも可能なら持ってくるべきだと思います。展示規約の中で最大のポスターを飾って参加者の目を惹きたいところです。


    意外と社会人が多い

    運営メンバーは私含めて3名だったので、交代交代で休憩を取っていましたが、休憩と言いつつ、他の展示を遊んで回っていました。

    そういえばコミュ強を目指していたので、ゲームを遊ぶだけでなく、他のゲーム開発者とたくさん話すことを意識しました。ゲームを作り始めたきっかけや、使用した技術、どんな環境でゲームを作っているのかなどを聞きました。

    まず、意外と社会人が多いと感じました。てっきり大学生が参加者の大半を占めていると思い込んでいたのですが、話を聞けた方々の全員は社会人でした。

    しかも、その方々はゲームとは直接関係のない企業に勤めているとのことでした。業務の傍ら、コツコツとゲーム開発を進めて、本イベントに展示できる形にしたみたいです。

    これも驚きです。てっきり本業でもゲーム開発に携わっている方々が出展しているものだと思い込んでいましたし、働きながらでも個人開発は成立するのだと、実例を前にして実感しました。

    様々な過程を経て今に至るゲーム開発者さんがいるんだな、と今後のキャリアを考える上での参考になりました。


    閉場

    6時間の展示を経て、イベントは終了しました。手早く後片付けを済ませて帰ろうとしましたが、メンバーからの提案で、両隣の出展者に挨拶をすることになりました。私にはなかった発想で、内心では感嘆していました。次から真似しようと思います。


    おわり

    めちゃくちゃ疲れましたが、出展して本当によかったです。大学に籠もってゲーム開発していたらまず得られないであろう知見や経験を得られました。やっぱり、経験していないことの費用対効果は考えないほうが良いんだな、としみじみしました。

    対人能力はちょっとだけ上がったと思います。引き続き、もっとたくさんの人と関わって話す練習をします。

    ゲームの宣伝効果や集まったデータの分析結果については、また別の記事にまとめます。

    東京ゲームダンジョン13は以上です。協力してくれたサークルの方々には感謝しかないです。ありがとうございました。

  • unity1week『Whitest』開発経緯

    unity1week『Whitest』開発経緯

    ゲーム投稿サイトunityroomにて2026年7月26日より開催されていた『unity1WeekGameJam』に参加してきました。その経緯や過程を記します。


    集団でゲームを作りたいな~~~。

    と思いました。私。

    まず、私を含めて4名の開発者を集めました。
    「いつも描いてるイラストをお願い~」
    「講義で学んだこと実装してみたくない?」
    「音楽担当足りないんだよね!」
    と、依頼と提案を連呼しては、友人3人をゲーム開発させる気分になってもらいました。結果、イラストレーター、サウンド、プログラマ、プランナーの4人チームが完成しました。役割分担のバランスが良いチームだと思いました。

    その中でも私は、プランナー兼リーダーになりました。一応、集団ゲーム開発に他人を誘った身なので、ちゃんと責任をもってゲーム開発を完遂させます。その具体的な仕事内容は、面白ゲームの中身を考えてはメンバーに伝えて、私の代わりにゲームを作ってもらいます。

    ただ、いきなりピンチなのですが、実は3日しか開発期間が残されていませんでした。これは、学部3年前期の期末テストが終わった直後だったためです。

    そこで、大学のコワーキングスペースにメンバーを招集し、これから作るゲームの構想を口頭でザックリ伝えました。この際、ゲームの内容について代案が無いか聞いたり、ゲーム開発の目標を一緒に考えたり、メンバー全員でゲームを作る意識を大切にしました。

    その後は、Discordサーバーを立ててオンラインでゲーム開発しました。なるべくメンバーが手持ち無沙汰にならないように仕事を割り振りました。例えば、設計の済んだプログラマにはゲームの説明文を書いて貰いました。また、イラストレーターがずっと多忙だったので、仕事の済んだ音楽担当に絵を描いてもらったりもしました。

    プログラマにコードを書いてもらった後、成果物はUnityに実装されました。この作業は、Unity Editorを扱い慣れている私が担当しました。足りない部分や、「こうしたらもっと面白くならない?」と提案された部分は、unity-cli-loop(Unityとコーディングエージェントとを繋げる連携ツール)を使ってcodexにコードを書いてもらいました。

    単体テストと結合テストを怠っていたからか、ゲーム開発の終盤までメンバーにデバッグを依頼していました。一応、何十回と遊んでもらって修正を重ねることができたので、ゲームの面白さに関わるような重大なバグは全て潰せているハズです。


    なんだかんだで、予定日までにゲームは完成しました。メンバーと対面で会議を開いて、ゲーム開発の過程を振り返りたい気持ちでしたが、夏季休暇も始まって、集まる機会が気軽に取れなかったため、オンライン上で手軽に済ませました。

    プランナーとして集団ゲーム開発に参加しましたが、「プランナーは良い身分だな~」と思いました。「これ絶対面白いと思うんだよね~!」と周囲に話しては文字に起こしていると、いつの間にかゲームが完成しています。ゲーム開発する上で、これほど楽な役職は他にないと思います。

    ただ、ゲームの面白さ部分に責任を持つ役職なので、メンバーからのゲームシステムへの言及については一喜一憂することになると思います。「俺はこれが面白いと思ってたんだけどなぁ~」ってガッカリしたりしなかったりします。

    集団ゲーム開発の成功体験を私にもたらしてくれた友人たちには圧倒的感謝です。また機会があれば彼らとゲームを作りたいです。次はミニゲーム以上の、もっと大作を作りたいですね。


    最後に、開発したゲームのURLを置いておきます。
    是非遊んでください。
    https://unityroom.com/games/whitestalpha

    開発に使わせて頂いたツールのURLも置いておきます。
    https://github.com/hatayama/unity-cli-loop/tree/main


    ゲームの概要も置いておきます。

    より「白い」鉱石を選び続ける事が目的の、判断力が試されるゲームです!プレイヤーは1つの鉱石を所持した状態でゲームを開始し、画面には毎ターン白さが異なる2つの鉱石が表示されます。

    2つの鉱石のうちより白いと感じるものを選択し、その鉱石の白さが所持している物よりも高ければゲーム続行となりDAYが1日進んでいきます。逆に所持している石よりも白さが低い方を選ぶと、ゲームオーバーです。

    プレイ中は、鉱石を別の候補に入れ替えるリロール機能を使えます。回数制限はありますが、この機能の活用の仕方も攻略のカギとなります!

    後半になるほど所持している鉱石の白さが増すため、候補の石との微量の違いを判断しなければなりません。「単純なルールだが、最後まで緊張感と判断力を続かせなければいけない」のがこのゲームの醍醐味です!

  • サイト設立の経緯

    サイト設立の経緯

    こんにちは。
    たこのこと申します。
    よろしくお願いします。

    この記事では、takonoko.com設立の経緯や、私の過去をザックリと記しておこうと思います。



    2026年8月以前は「たここ」という名前で活動していました。

    主にゲーム開発者として活動しており、成果物をまとめた専用サイトを運営して、毎月ブログを更新していました。YouTubeチャンネルでは開発したゲームのトレーラーを公開したり、XではSteamでリリースしたゲームの宣伝をしたりしていました。


    しかし、些細な手違いから、たここのGoogleアカウントにログインできなくなってしまいました。人生で5本の指に入るくらいのやらかしです。

    その結果、Googleアカウントに紐づけていた大量のプラットフォームも使えなくなってしまいました。

    自サイト、X、YouTube、Instagram、note、Unityroomなど、たこのこが「たここ」であることを証明できる手段まで、ほとんど失ってしまいました。

    復旧を試みたものの、悪い偶然がいくつも重なっており、かなり難しい状況でした。現在もGoogleに問い合わせていますが、正直なところ望みは薄そうです。

    このトラブルが起きた当時は、結構へこんでいました。

    ただ、今はもう立ち直ったので、ポジティブに考えます。

    以前のサイトは1周年を迎えていて、「そろそろ作り直したいなぁ」と思っていました。ちょうどいいです。

    「たここ」の名前も、同名で活動中のVtuberさんがいるので、「たこのこ」の方がユニークで良さそうです。

    また、「たここ」と比べて「たこのこ」はめちゃくちゃパワーアップしているはずなので、このパワーをtakonoko.comに出力していこうと思います。



    以前のサイトは、Studioと呼ばれるノーコードWeb制作プラットフォーム上で作っていました。

    GUIで直感的にサイトの構成要素を編集できるうえ、CMSやサーバー周りの基本的な機能も充実しています。

    ただ、情報系を専攻している大学生として、サーバーを構築してCUIを叩くくらいはできるようになるべきだなと思い、今回はいろいろと頑張ることにしました。

    具体的には、ConoHaでVPSを借り、SSHで接続してApacheやWordPressを導入したり、独自ドメインを取得してサーバーのIPアドレスと紐づけたりしました。

    ここで、オンプレミスでサーバーを用意することも考えましたが、当時は他のタスクに追われていたこともあり、ある程度環境が整えられているクラウドサーバーを借りることにしました。

    また、VPSにConoHaを選んだ理由は、比較的通信速度が良いと聞いていたことに加え、ある程度歴史のあるサービスであることを考慮したためです。

    前サイトは読み込み速度がいまいちでしたし、「気が付いたらサーバーが吹っ飛んでそうで怖いな~」とも思っていました。また、料金改定も多く見られたため、今回は別の環境に挑戦することにしました。

    サーバーソフトウェアとしてApacheを選んだのは、動的サイトの構築に向いていると知ったからです。

    また、WordPressを採用した理由は、世界で最も利用されているCMSの一つであり、今後も使う機会があると考えたためです。


    …こんな調子で、今回は技術選定についてもいろいろと調査したうえで決定しました。それまでの私は、目についたツールを使って技術スタックを組み、とりあえず動くものを作ることを優先しがちでした。これは、プロトタイプを素早く形に出来ますが、後から作り直すことも多かったように思います。

    「とりあえず動くものを作りたい」という気持ちが先行していた結果ですが、これからは社会でも通用する技術力を身につけるためにも、技術を選ぶ段階からしっかり考えるようにしたいと思います。




    まとまりのない文章になってしまいましたが、たこのこは未熟ながらも行動中です。とりあえず、これまでに作ってきたものをサイトにまとめ直す作業をしようと思います。

    コツコツ頑張りますよ~。