カードゲーム「記憶のカケラ」のご紹介
このページでは、私が開発した カードゲーム「記憶のカケラ」 について紹介します。
ゲームの特徴や遊び方、開発の裏話、さらには現在の進行状況など、開発者目線での情報を盛り込んでいます。
まだ開発途中で、今後少しずつ更新していく予定です。
プレイ方法
ゲームの操作はシンプルで、タップでカードをめくりカードを揃えるだけです。
10面クリアでエンディング、3周までプレイできます。
初回起動時はハンドルネームの入力画面が出ますが、P2Pのチャットのみで使用します。
データはローカルストレージのみ記録しますので、ユーザー側で削除できます。
ゲーム専用ページ
[PIECE BY PIECE] 記憶のカケラ:失われたピースを集める神経衰弱ゲーム
シンプルな神経衰弱ゲームです。わかりやすいルールで、どなたでもすぐに楽しめます。カードを揃えるとクリアで10面クリアでエンディング。3周クリアでGAME END、エンディングは3つ用意しています。
https://humanxai.info/game/card01/★アセットデータ配布
ゲーム内で使える、カード画像・分割画像・動画(mp4)をまとめたアセットデータ(ZIPファイル)を置いておきます。
使い方は、アセット管理画面から、ZIPを読み込み、LOADする事で使用できます。
jsonファイルは、データ参照用に使いますので削除しないようにしてください。
メインアセット
デフォルトで設定されてるメインアセット。
著作権フリーのNovaAnimeXLで作成した、アセットデータになります。
カード画像、動画のセット。
動画は、ローカル生成AIの FramePackを使用しています。
📦 ゲームアセットをダウンロード [9.81 MB]
■ manifest.json
{
"title": "メインアセット",
"author": "lain",
"version": "1.0",
"note": "ゲーム用デフォルトデータ (Stable Diffusion checkpoint / Nova Anime XL)",
"tags": ["anime", "cute", "Nova Anime XL"],
"imgExtension": "webp",
"movieExtension": "mp4",
"thumbnail": "thumbnail.webp",
"created": "2025-07-11T10:30:00Z",
"mapping": {
"excellent": "",
"good": "",
"normal": "",
"sorry": ""
}
}
NovaAnimeXL
著作権フリーのNovaAnimeXLで作成した、アセットデータになります。
カード画像、動画のセット。
動画を追加しました [2025/11/10]
動画は、ローカル生成AIの FramePackを使用しています。
📦 ゲームアセットをダウンロード [12.9 MB]
■ manifest.json
{
"title": "NovaAnimeXL",
"author": "lain",
"version": "1.0",
"note": "NovaAnimeXL作成データ。(Stable Diffusion checkpoint / Nova Anime XL)",
"tags": ["anime", "cute", "Nova Anime XL"],
"thumbnail": "thumbnail.webp",
"imgExtension": "webp",
"movieExtension": "mp4",
"created": "2025-07-11T10:30:00Z",
"mapping": {
"excellent": "",
"good": "",
"normal": "",
"sorry": ""
}
}
■ civitai
Nova Anime XL - IL v12.5 | Illustrious Checkpoint | Civitai
Nova Anime XL Nova Anime XL is Nova Anime: Anime/2.5D/3D checkpoint model for SDXL Pony version aims to get the similar look as both Nova Anime and...
https://civitai.com/models/376130/nova-anime-xlChateauLapin
ChatGPTで作成した、ドール系アセットデータになります。
動画は、ローカル生成AIの FramePackを使用しています。
📦 ゲームアセットをダウンロード [7.30 MB]
■ manifest.json
{
"title": "ChateauLapin",
"author": "lain",
"version": "1.0",
"note": "ドール系アセットデータ(ChatGPT / FramePack)",
"tags": ["doll", "cute", "dollhouse"],
"imgExtension": "webp",
"movieExtension": "mp4",
"thumbnail": "thumbnail.webp",
"created": "2025-08-22T19:00:00Z",
"mapping": {
"excellent": "",
"good": "",
"normal": "",
"sorry": ""
}
}
MysticDollFantasy
ChatGPTで作成した、ドール系アセットデータになります。
動画は、ローカル生成AIの FramePackを使用しています。
動画を追加しました [2025/11/07]
📦 ゲームアセットをダウンロード [6.63 MB]
■ manifest.json
{
"title": "MysticDollFantasy",
"author": "lain",
"version": "1.0",
"note": "ドール系アセットデータ(ChatGPT / FramePack)",
"tags": ["doll", "fantasy", "gothic","dollhouse"],
"imgExtension": "webp",
"movieExtension": "mp4",
"thumbnail": "thumbnail.webp",
"created": "2025-08-24T19:00:00Z",
"mapping": {
"excellent": "",
"good": "",
"normal": "",
"sorry": ""
}
}
ElementalSpirits
このタロットカードは、自然界の力と精霊たちの存在をテーマにしたアート作品です。
各カードは、水、風、土、火といったエレメンタルなエネルギーを表現し、精霊たちがあなたの心にささやき、導いてくれます。
ChatGPTによって創造されたこのデッキは、幻想的で神秘的な世界を感じさせ、タロットカードの占いだけでなく、アートとしても楽しめます。
※動画は未完成
📦 ゲームアセットをダウンロード [7.01 MB]
■ manifest.json
{
"title": "ElementalSpirits",
"author": "lain",
"version": "1.0",
"note": "自然界の力と精霊たちをテーマにしたタロットカード。水、風、土、火のエレメンタルエネルギーが精霊たちを通じて導きます。(ChatGPT5)",
"tags": ["spirit","tarot ", "ChatGPT"],
"imgExtension": "webp",
"movieExtension": "mp4",
"thumbnail": "thumbnail.webp",
"created": "2025-07-11T10:30:00Z",
"mapping": {
"excellent": "",
"good": "",
"normal": "",
"sorry": ""
}
}
★アバターデータ配布
ゲーム内で使える、アバターアデータ(ZIP)を置いておきます。
使い方は、アセット管理画面から、ZIPを読み込み、LOADする事で使用できます。
jsonファイルは、データ参照用に使いますので削除しないようにしてください。
■ 動作デモ
Load:
アバターデータをロード
Del:
アバターデータを削除
info:
アバター情報を表示
四国めたん
音声で使用しているvoicevoxのキャラクター「四国めたん」。
初期バージョンではセリフは1つだけでしたが、複数追加しました。
📦 ゲームアセットをダウンロード [45.7 KB]
■ manifest.json
{
"title": "四国めたん",
"author": "lain",
"version": "1.0",
"asset_type": "Avatars",
"created": "2025-11-01T00:00:00Z",
"note": "四国めたんのアバターデータ",
"tags": ["VOICEVOX", "四国めたん", "漆黒のめたん"],
"imgExtension": "webp",
"movieExtension": "mp4",
"imgAvatar": "avatar.webp",
"missCount": 3,
"speech_bubble": [
"落ち着いて、次はうまくいくはずよ",
"...",
],
"position": {
"height": "70%",
"bubble-top": "5%",
"bubble-left": "85%"
}
}
VOICEVOX 四国めたん | 無料のテキスト読み上げソフトウェア
VOICEVOXは「四国めたん」のはっきりした芯のある声で誰でも簡単に音声を作成できる、無料のテキスト読み上げソフトウェアです。
https://voicevox.hiroshiba.jp/product/shikoku_metan/ずんだもん
voicevoxのキャラクター「ずんだもん」。
複数のセリフを用意しています。
📦 ゲームアセットをダウンロード [61.8 KB]
■ manifest.json
{
"title": "ずんだもん",
"author": "lain",
"version": "1.0",
"asset_type": "Avatars",
"created": "2025-11-02T00:00:00Z",
"note": "ずんだもんのアバターデータ",
"tags": ["VOICEVOX", "ずんだもん", "東北ずん子", "伊藤ゆいな"],
"imgExtension": "webp",
"movieExtension": "mp4",
"imgAvatar": "avatar.webp",
"missCount": 3,
"speech_bubble": [
"ずんだもんなのだ!",
"..."
],
"position": {
"height": "70%",
"bubble-top": "5%",
"bubble-left": "85%"
}
}
VOICEVOX ずんだもん | 無料のテキスト読み上げソフトウェア
VOICEVOXは「ずんだもん」の子供っぽい高めの声で誰でも簡単に音声を作成できる、無料のテキスト読み上げソフトウェアです。
https://voicevox.hiroshiba.jp/product/zundamon/ゲームの特徴
シンプルで直感的な神経衰弱
シンプルな神経衰弱ゲームです。
わかりやすいルールで、どなたでもすぐに楽しめます。
カードを揃えるとクリアで10面クリアでエンディング。
3周クリアでGAME END、エンディングは3つ用意しています。
画像・動画を差替(アセット管理)
ゲームに必要なアセット(画像、動画)は手動で管理できます。
[オプション] -> [アセット]
ゲーム起動時に必要なアセットをすぐに読み込みます。
アセットデータはローカル内のZIPファイルからも読みこみ可能なほか、P2P接続でユーザー間でオンライン共有も出来ます。
■ アセット管理(ボタン)
- Load:
アセットデータをロード - Del:
アセットデータを削除 - info:
アセット情報を表示 - View:
アセット内の画像を表示(タップ操作でカードの移動可能)
■ アセットのエクスポート(📥)
登録されたアセットデータは、各アセットカードの右上に表示されているアイコンをクリックすることで、エクスポート(ダウンロード)できます。
左上のハンバーガーアイコンタップでナヴィゲーションメニューオープン
アセット読み込みで、ローカル内のZIPファイルを読み込みます
■ ランダムアセット
ランダムアセットを有効にすると、ゲーム開始時に登録されたアセットリストからランダムにアセットが選ばれ、選択されたアセットでゲームがスタートします。
これにより、毎回異なるアセットを使用したプレイが可能になります。
-
ONの場合:
ゲーム開始時にランダムでアセットが選ばれ、毎回異なるアセットでプレイできます。 -
OFFの場合:
選択されたアセットは固定され、毎回同じアセットでゲームが開始されます。
■ ランダムアバター
ランダムアバターを有効にすると、ゲーム開始時に登録されたアバターリストからランダムに選択されたアバターでゲームがスタートします。
-
ONの場合:
ゲーム開始時にランダムでアバターが選ばれ、毎回異なるアバターでプレイできます。 -
OFFの場合:
選択されたアバターは固定され、毎回同じアバターでゲームが開始されます。
サウンドテスト
ゲーム内で使用している、BGM、SE、VOICEを再生する簡易音楽プレイヤー機能を実装
[オプション] ➡ [サウンドテスト]
プレイ履歴
ブラウザのLocalStorageを使い、ゲームのプレイ履歴を保存する機能を実装
[オープニング画面] ➡ [履歴を見る]
■ 履歴削除
履歴削除ボタンを押すことで、全履歴の削除が可能
チャット、データ通信(P2P)
リアルタイムでゲーム参加者とチャット、及び、アセットデータの交換をP2Pで実装
通信機能の実装に、simplepeer(GitHub)を使用しています
チャット送受信と、アセットデータをユーザから受信するデモ
■ ニックネーム変更
オプション画面の名前変更のボタンを押すとニックネームの変更が出来ます
シグナリングサーバ(Node.js)
ゲームのP2P通信をサポートするために、シグナリングサーバを構築しています。
シグナリングサーバは、プレイヤー同士が直接通信するための接続情報をやり取りする役割を担います。これにより、リアルタイムでスムーズな対戦が可能になります。
使用している技術:
-
Node.js:
サーバサイドのロジックを担当し、プレイヤー間のデータのやり取りを処理します。 -
koyeb:
サーバのデプロイを行い、リモートでシームレスな運用を実現します。これにより、インフラ管理を簡素化し、安定したサービスを提供します。
シグナリングサーバは、ゲーム内でのリアルタイムチャットやデータ送信に重要な役割を果たしています。
アセット作成ガイド
オリジナルのアセットを作成することができます。
以下の必要なファイルを準備してください。
必要なファイル
カード画像 (16枚)
サイズ: 800 x 1200 px分割ピース画像 (10枚)
サイズ: 1800 x 1200 pxカード裏面画像 (card-back.webp)
サイズ: 800 x 1200 pxサムネイル画像 (thumbnail.webp)
サイズ: 1800 x 1200 px ※アスペクト比指定なしmanifest.json
アセット名、説明文、ファイル形式、タグなどを設定動画データ (10個)
クリア時に再生されます。 ※なくても動作します。
デフォルトの設定変更方法
- デフォルトの
main.zip内のデータをダウンロード。 - 自分の画像に差し替えて、保存します。
注意点
-
manifest.json内の"title"が重複するとエラーになります。オリジナルのアセット名を付けてください。
manifest.json の記述解説
{
"title": "アセット名",
"author": "制作者名",
"version": "バージョン (例: 1.0)",
"note": "アセットの説明文",
"tags": ["タグ1", "タグ2", "タグ3"],
"imgExtension": "画像の拡張子 (webp, jpg, png)",
"movieExtension": "動画の拡張子 (mp4)",
"thumbnail": "サムネイル画像のファイル名 (例: thumbnail.webp)",
"created": "作成日時 (例: 2025-10-28T00:00:00Z)",
"mapping": {
"excellent": "",
"good": "",
"normal": "",
"sorry": ""
}
}
画像データは、圧縮率の高い webp がお勧め。
動画は、mp4で作成してください。
もし利用ユーザー側で作成したアセットの公開要望がある場合は、専用のアップローダーを設置するかもしれません。
アセットデータは、ゲーム内のP2P機能を使えば、ユーザIDをタップする事で、所有しているアセット一覧を表示でき、 クリックでアセットのダウンロード+追加が出来ます。
現在の進行状況と未実装機能
「記憶のカケラ」は現在開発途中の段階で、
まだ実装が完了していない機能や追加予定の内容があります。
これからのアップデートで新しい要素が追加される予定です。
🛠️ 未実装機能:
-
アバターアセット:
ゲーム中に登場するアバター。 -
アセット管理メニュー:
アセット管理メニューの一部機能。
📊 現在の主な進行状況:
- 基本的なプレイ機能の実装は完了しています。
- P2P通信によるリアルタイム対戦機能が一部実装済みですが、安定性向上が必要です。
- ゲーム内のアセット管理やデータ保存機能は正常に動作しています。
開発の裏話
技術的な挑戦
ZIP圧縮・解凍、ゲームデータ管理にIndexedDBの使用、ユーザー同士でチャットやデータ交換する為のP2P通信の実装など、技術面で新しい事に挑戦しています。
AI技術の活用
ブログ記事で、生成AIのローカル環境作成方法を多数紹介していますが、それを活用してゲームデータを作成しています。
公開の決意
途中、体調を崩し開発が止まりそうになったので、未完成ですが公開する事にしました。
メインのゲーム処理は完成してますが、アセット管理やオプション機能に未実装部分があります。
プログラミングの再学習の為のプロジェクトでしたが、公開することで他の人にも楽しんでもらいたいと思いました。
言語・ライブラリ・ツール
HTML / CSS
ゲームのレイアウトやデザイン
開発中に作成した学習記事
[CSS実践講座 #02]基本レイアウトを学ぶ (ゲームのサウンドテストUIを作成)
本記事では、ゲームのサウンドテスト画面を題材に、CSSでの基本レイアウト設計を実践的に学びます。flexとgridの使い分け、スクロール領域の制御、カードUI配置、モーダル表示、レスポンシブ対応など、現代的なUIの基礎を網羅。
https://humanxai.info/posts/css-course-02/
カテゴリ:CSS
Human × AI の対話を通じて、AI活用やブログ制作、技術実験の軌跡を記録しています。
https://humanxai.info/categories/css/JavaScript
ゲーム内のロジックやインタラクションの実装
開発中に作成した学習記事
【JavaScript】アニメーション大全:手作りエフェクトで魅せるUI演出テクニック集(全14種
JavaScriptを活用したアニメーション大全:手作りエフェクトで魅せるUI演出テクニック集
https://humanxai.info/posts/javascript-anime-ui/
カテゴリ:JavaScript
Human × AI の対話を通じて、AI活用やブログ制作、技術実験の軌跡を記録しています。
https://humanxai.info/categories/javascript/ライブラリ・フレームワーク
■ indexedDB
カード画像や動画ファイルを保存・管理
【JavaScript応用講座】localStorage卒業、IndexedDBでゲームデータを保存する
Webゲーム開発で素材の保存に悩んだら?localStorageからの卒業、IndexedDBの導入でZIPデータやサムネイルを自在に管理する方法を実例で紹介。
https://humanxai.info/posts/javascript-indexed-db/■ P2P(WebRTC,simple-peer)
P2P通信を実現するために使用
【JavaScript 応用講座】:[WebRTC/P2P] チャット&ファイル転送ができる双方向アプリを実装
WebRTCとsimple-peerを使ってP2P通信を実現!signal交換の自動化に成功し、チャットとZIPファイルの送受信も完全動作。Node.jsによる軽量なシグナリングサーバ構成と接続の流れを実例付きで解説。
https://humanxai.info/posts/javascript-p2p-05/■ chart.js
グラフモジュール
ゲーム履歴のスコア表示用
Chart.js
Simple yet flexible JavaScript charting library for the modern web
https://www.chartjs.org/■ JSZip
ZIPファイルの圧縮・解凍 モジュール
アセットデータの解凍・圧縮
JSZip
JSZip is a javascript library for creating, reading and editing .zip files, with a lovely and simple API.
https://stuk.github.io/jszip/■ confetti.browser.min.js
花束演出モジュール
confetti.js
confetti.browser.min.js Demo and Download
https://confettijs.org/■ bubbleCanvas.js (自作・ChatGPT)
Canvasを使った背景バブルモジュール
ChatGPTとlainで共同開発
アニメ・図形パターンをカスタム可
■ FramePack-eichi ( ローカル動画生成AI )
アニメーション動画の生成に使用
FramePack-eichiによるAIアニメーション
FramePack-eichi を活用したAIアニメーションの制作事例と手順。
/featured/project1/■ Stable Diffusion ( ローカル画像生成AI )
カード、ピーズ画像の生成に使用
[画像生成AI] Stable Diffusion Checkpoint 導入ガイド
[画像生成AI] Stable Diffusion Checkpoint 導入ガイド
/posts/generative-ai_stable-diffusion-checkpoint-install/ツール
■ Node.js
シグナリングサーバ
サーバサイドのロジックを実装
Node.js — どこでもJavaScriptを使おう
Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
https://nodejs.org/ja
[Node.js] Node.js という“時代の申し子”:その誕生と爆発的成長の理由
JavaScriptを“ただのブラウザ用言語”から“世界を変える言語”に変えたNode.js。その誕生の背景から爆発的成長、PHPとの違い、現代のAI時代における役割まで──Node.jsの進化と時代性を一気に俯瞰できる解説記事です。
https://humanxai.info/posts/nodejs-history/■ koyeb
P2P用のシグナリングサーバとして活用
サーバのデプロイとリモート運用を支援
【JavaScript 応用講座】:P2P通信の基盤!Node.js製シグナリングサーバをKoyebで構築
Node.js と WebSocket を使ってシンプルなシグナリングサーバを構築し、無料のクラウドサービス Koyeb にデプロイする手順をまとめました。GitHub連携から起動確認、実際の接続テストまで、P2P通信の基盤となるシステムを最短で構築できます。
http://localhost:1313/posts/javascript-p2p-04/今後の予定
- 新しいアセット作成
- ランダムアセット選択時、ED後にアセットを変更
- アセット管理メニュー(スタンプ)
- アバター(アニメーション)
- アバター設定変更・書き換え
- レイアウト・バグ修正
- その他
更新履歴
-
[2025/11/10]
・アセットに動画追加(NovaAnimeXL) -
[2025/11/08] v0.6.0:
・アセットのダウンロード機能追加
ZIPファイルをエクスポートできるようになりました
・ゲーム履歴: デザイン修正 (ja 🖼️ / en 🖼️) -
[2025/11/07] v0.5.3:
※ゲーム画面のCSS記述ミスを修正
・アバター表示位置を修正(スマホ表示)
・アセットに動画追加(MysticDollFantasy)
・上書き確認ダイアログで「タイトル」を追加
(ja 🖼️ / en 🖼️) -
[2025/11/06] v0.5.2:
・デザイン修正(サウンドテスト)
・マルチ言語(i18n)を追加(履歴、ダイアログ)
・アセット/アバターの上書き保存 -
[2025/11/05] v0.5.1:
・アバター管理画面のスタイル修正 -
[2025/11/04] v0.5.0:
・ランダムアバター機能を追加 (🖼️)
▼ 過去の更新履歴 ▼
-
[2025/11/03] v0.4.1:
・修正 / 追加( CSS / JavaScript )
・アセット管理 / ゲーム画面 -
[2025/11/02] v0.4.0:
・アバターアセット機能を追加
・アバター管理画面を追加
・「ずんだもん」アバターを追加 -
[2025/11/01] v0.3.0:
・履歴削除機能を追加
・ハンドルネーム変更機能を追加 -
[2025/10/31] v0.2.1:
CSS / HTML 修正・追加( assetList.css / index.html ) -
[2025/10/30] v0.2.0:
ランダムアセット機能を追加 (🖼️) -
[2025/10/30] v0.1.3:
CSS / JSON 修正( sound-test.css / audio.json ) -
[2025/10/29] v0.1.2:
・バージョン情報
・ダイアログ作成 -
[2025/10/28] v0.1.1:
・バグ修正
・アセット追加(ElementalSpirits)
・アセット作成ガイド
💬 コメント