ドラゴンドライブVR

『ドラゴンドライブVR』企画書


1. タイトル

ドラゴンドライブVR(Dragon Drive VR)


2. ゲームジャンル

  • ジャンル:VRアクション・ドラゴンバトルRPG
  • プレイ方式:1人プレイ(将来的にオンライン対戦対応予定)
  • 対応ハード:Meta Quest 3 / PC VR(SteamVR対応) / PS VR2

3. コンセプト

「君と竜が一体となる、空中戦の限界へ。」

プレイヤーは“ドラゴンライダー”となり、現実世界とリンクした仮想空間でドラゴンを育成・騎乗し、空中戦・地上戦を体験。VRならではの臨場感で“ドラゴンと飛ぶ”夢を実現する。


4. 主なゲームシステム

● ドラゴン育成システム

  • タマゴから孵化→成長→進化(分岐進化あり)
  • 育成によってスキル・属性が変化(炎・氷・雷・闇・光など)
  • エサ・訓練・信頼度で個性が変化

● ライドバトル(空中戦)

  • フリーフライトで空を自由に飛ぶ
  • 射撃・ブレス攻撃・回避・突進などのバトルアクション
  • 一人称視点と三人称視点を切替可能

● 地上探索

  • 拠点となる街や遺跡を探索し、アイテムやミッションを獲得
  • ダンジョンはプレイヤー+ドラゴンで攻略(謎解き要素あり)

● VRインタラクション

  • ドラゴンとのふれあい:撫でる、餌をあげる、呼びかけるなど
  • 騎乗時のリアルな風・振動・高度変化演出

5. 世界観

かつて竜と人が共に生きていた「空界アルトレア」。
再び甦る邪竜の脅威に対抗するため、選ばれし“ライダー”たちが立ち上がる。


6. 想定ターゲット

  • VRユーザー(10代後半~30代前半)
  • ファンタジー・ドラゴン・育成ゲームファン
  • 『ドラゴンドライブ』『パンドラハーツ』『アバター』『竜とそばかすの姫』に魅力を感じる層

7. 収益モデル

  • 基本プレイ無料+アイテム課金(アバター/ドラゴンスキン)
  • 拡張DLC(新マップ、新ドラゴン、新ストーリー)
  • NFT連携によるドラゴン個体資産化(検討中)

8. 開発体制・ツール

  • エンジン:Unity(または Unreal Engine 5 + OpenXR)
  • ネットワーク:Photon Fusion または Mirror
  • VR対応:Meta SDK / OpenXR / SteamVR

9. 開発スケジュール(例)

フェーズ内容期間
企画・プロトタイプ世界観、コアシステム試作3か月
アルファ版飛行+戦闘+育成基本実装6か月
ベータ版UI/UX調整+コンテンツ拡充3か月
リリースマーケティング+ローンチ1か月

10. 補足・将来展望

  • マルチプレイヤーPvP空中戦の実装
  • ドラゴンコンテストイベント(飛行レース・育成大会)
  • AI搭載ドラゴンとの感情交流
  • Mixed Reality対応によるリアル環境でのドラゴン投影体験

デジモンVR – デジタルワールド体感プロジェクト


1. 概要

「デジモンVR」は、プレイヤーがパートナーデジモンとともにデジタルワールドを冒険する完全没入型VRゲームです。デジヴァイスを手に持ち、リアルタイムに進化・バトル・探索を体感できます。


2. コンセプト

  • 没入型デジモン体験:フル3Dで再現されたデジタルワールドをVRで歩き回り、実際にパートナーデジモンと交流。
  • リアル進化体験:デジヴァイスを模したVRインターフェースで、進化演出を自ら操作。
  • ソーシャル連携:他プレイヤーとの協力プレイ・バトル機能も搭載予定。

3. プラットフォーム

  • 対応予定:Meta Quest 3 / SteamVR / PSVR2
  • 必要環境:6DoF対応、両手コントローラー、ネット接続

4. 主なゲーム要素

要素内容
パートナーデジモンプレイヤーに寄り添い、育成・進化・会話が可能。
探索デジタルワールドを歩き回り、データ収集・イベント・素材採集など。
バトルリアルタイム・アクションバトル。手の動きで技を発動。
進化システム条件を満たすことで、進化演出をリアルタイム操作。
デジヴァイス連携ゲーム内HUDを通じたステータス管理・進化・装備管理。

5. 想定ユーザー

  • デジモンファン(10〜40代)
  • VRゲームファン
  • ソーシャルVR体験を求めるユーザー

6. 収益モデル

  • 基本プレイ無料 + アイテム課金(進化用素材・コスチュームなど)
  • 有料DLC(新エリア・新デジモン追加)
  • 限定コラボイベント(アニメ・映画連動)

7. 開発体制とスケジュール(想定)

フェーズ内容期間
企画・設計世界観・UI設計2ヶ月
プロトタイプMVP制作(移動・進化・バトル)3ヶ月
フル開発全コンテンツ制作8〜12ヶ月
テストクローズドβ、ユーザーテスト2ヶ月
リリースローンチ & プロモーション

8. プロモーション戦略

  • ティザー映像公開(進化演出などを強調)
  • VTuber・実況者とのコラボ体験配信
  • デジモンアニメ新作との連動キャンペーン

9. ビジュアルモック(イメージ)

  • ログイン画面:デジタルゲートをくぐる演出
  • バトル画面:等身大のグレイモンが目前で技を放つ
  • UI:腕についたデジヴァイス風デバイスで操作

10. 特記事項・注意点

  • 原作のIP利用には株式会社バンダイとの協議・許諾が必要
  • メタバース連携を想定する場合は将来的な拡張性も要検討

ロックマンEXE VR ― 企画書

ロックマンEXE VR ― 企画書


【タイトル】

ロックマンEXE VR(仮)


【コンセプト】

電脳世界と現実を融合させた「フルダイブ・ネットバトル体験」――
プレイヤーがナビゲーターを操作し、リアルタイムにネットバトルを行う、完全没入型VRアクションRPG。


【ジャンル】

  • フルダイブVRアクションRPG
  • オンラインネット対戦型コンテンツ
  • ストーリー付きシングルプレイキャンペーンモード

【プラットフォーム】

  • Meta Quest 3 / Quest Pro
  • SteamVR(PCVR)
  • 将来的にはApple Vision Pro、PlayStation VR2にも展開予定

【想定ターゲット】

  • 20代〜40代のロックマンEXEシリーズ経験者
  • VR体験に慣れているコアゲーマー層
  • 近未来・サイバーSF世界観が好きなユーザー

【主な特徴】

1. 電脳世界へのフルダイブ

  • プレイヤーは“オペレーター”として、VR空間から自分のナビ(ロックマンなど)を操作。
  • 視点はナビ視点とオペレーター視点を自由に切り替え可能。

2. リアルタイム・ネットバトル

  • 従来のマス目バトルにVRならではの要素を追加(例:手でチップを選び、発動動作を行う)。
  • 複数人の協力プレイやPvP対戦にも対応。

3. チップ実体化ギミック

  • 実際に手を伸ばして“バトルチップ”を物理的に選択・使用する没入型インターフェース。
  • チップの選択ミスやタイミングなど、直感操作が勝負の鍵に。

4. 電脳都市の探索

  • “ACDCタウン”や“電脳世界”を自由に歩き回り、NPCとの対話やミッション受注が可能。
  • 実世界(オペレータールーム)とネット世界(ナビ視点)を行き来して物語が展開。

【ゲームモード】

  • ストーリーモード
    原作シリーズを踏襲しつつ、オリジナル展開も用意。名シーンをVRで再現。
  • VR対戦モード
    フレンド・ランダム対戦機能付き。ランキングや報酬制度あり。
  • カスタムルームモード
    プレイヤーのVRオペレータールームを自由にカスタマイズ。

【開発スケジュール(案)】

フェーズ期間内容
企画・プロト制作0〜3ヶ月世界観設定、試作バトルシステム
アルファ版開発4〜8ヶ月探索・戦闘・UIの実装
ベータ版開発9〜12ヶ月ストーリー、マルチ対戦
リリース準備13〜15ヶ月デバッグ、配信準備、マーケ

【必要開発体制(最小構成)】

  • VRエンジニア(Unreal Engine or Unity XR経験者)
  • キャラクター/背景3Dモデラー
  • アニメーター
  • プランナー / シナリオライター
  • UI/UXデザイナー
  • ネットワークエンジニア

【将来的展開】

  • DLC:フォルテ、サーチマン、ブルース編など
  • eスポーツ大会の開催
  • コラボイベント(EXEシリーズ20周年企画など)
  • AR版ロックマンペットの開発(スマホ連携)

【ビジュアルモック・参考資料】

※必要であれば後日、UI/UX・ワールドデザインのモックアップをご用意します。


【備考】

※本企画はファン提案ベースであり、カプコン社の正式な許諾が必要です。商業化にあたってはライセンス取得が前提条件となります。

Unity C# Stats.cs

using UnityEngine;

[System.Serializable]
public class Stats // ← MonoBehaviourを削除
{
    public int Level = 1;
    public int maxHp = 1;
    public int atk = 1;
    public int def = 1;
    public int mana = 1;
    public int manaXSecond = 5;
    public CharacterClass charClass = CharacterClass.warrior;
}

public enum CharacterClass
{
    warrior,
    maga,
    priest,
    paladin,
    shamano,
    druid,
    rogue,
    ranger
}

Unity player.cs

using Photon.Pun;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : Entity
{
    CameraFollow follow;
    [SerializeField]
    float rotSpeed = 2;
    [SerializeField]
    float scrollAmount = 3;
    [SerializeField]
    float minZoom = 10, maxZoom = 120;
    ActionController controller;
    const float second = 1;
    float manaCounter = 1;
    public SaveData data = new SaveData();
    // Start is called before the first frame update
    public override void Init()
    {
        base.Init();
        if (!photonView.IsMine) return;
        data = SaveManager.LoadData<SaveData>(data.characterName);
        if(data==null)
        {
            data = new SaveData();
        }
        controller = GetComponent<ActionController>();
        controller.sync = sync;
        controller.Init(this);
        var f = Resources.Load<CameraFollow>(StaticStrings.follow);
        follow = Instantiate(f, transform.position, transform.rotation);
        follow.Init(transform);
        WorldManager.instance.playerList.Add(transform);
        UIManager.instance.player = this;
        onDeathEvent = () =>
        {
            UIManager.instance.deathPanel.SetActive(true);
        };
    }

    public override void Tick()
    {
        UseCamera();
        if(controller.mana<stats.mana)
        {
            manaCounter -= Time.deltaTime;
            if (manaCounter<=0)
            {
                manaCounter = second;
                controller.mana += stats.manaXSecond;
                if (controller.mana > stats.mana) controller.mana = stats.mana;
            }
        }
        if (!CanMove()) return;
        float x = Input.GetAxisRaw(StaticStrings.horizontal);
        float y = Input.GetAxisRaw(StaticStrings.vertical);
        Vector3 move = (transform.right * x) + (transform.forward * y);
        move *= Time.deltaTime * moveMultipler * moveSpeed;
        move.y = rb.velocity.y;
        rb.velocity = move;
        sync.Move(x, y);
        controller.Tick(follow.transform,x,y);
    }

    void UseCamera()
    {
        float x = Input.GetAxis(StaticStrings.mouseX);
        float scroll = Input.GetAxisRaw(StaticStrings.scroll);
        Vector3 rot = follow.arm.rotation.eulerAngles;
        follow.transform.rotation = Quaternion.Euler(rot.x, rot.y + x * rotSpeed, rot.z);
        if(scroll!=0)
        {
            float val = scrollAmount * scroll;
            val += follow.cam.fieldOfView;
            val = Mathf.Clamp(val, minZoom, maxZoom);
            follow.cam.fieldOfView = val;
        }
    }

    bool CanMove()
    {
        if (isDeath) return false;
        return true;
    }

    public void Respawn()
    {
        transform.position = WorldManager.instance.respawnPoint.position;
        isDeath = false;
        hp = stats.maxHp;
        sync.IsDead(false);
        if(Photon.Pun.PhotonNetwork.IsConnected)
        {
            view.RPC("SyncronizeStat", Photon.Pun.RpcTarget.All, hp);
        }
    }
}

.hack//VR 企画書

.hack//VR 企画書


【タイトル】

.hack//VR(ドットハック ヴィーアール)


【ジャンル】

フルダイブ型MMORPG(仮想現実大規模多人数同時接続型RPG)


【対応プラットフォーム】

  • Meta Quest 3 / Quest Pro
  • PlayStation VR2
  • PC VR(SteamVR対応)
  • フルダイブ対応ヘッドセット(将来的展望)

【コンセプト】

「仮想世界は、現実を超える」
架空のネットワークRPG《The World》を舞台にした、現実とリンクするフルダイブ型VR体験。ユーザーは「プレイヤー」としてゲームに参加しながらも、実はゲームの裏で進行する謎と陰謀に巻き込まれていく。


【開発背景】

  • 2002年の「.hack//Infection」シリーズから続く《The World》の世界観を最新技術で再構築。
  • フルダイブ技術の発展を見据えたVR MMORPGの実験的開発。
  • ユーザー間の社会的インタラクションとAI搭載NPCの自然会話を融合。

【ゲームの特徴】

1. フルダイブ没入体験

  • プレイヤーはアバターとして《The World》に降り立ち、五感(視覚、聴覚、触覚)を通じて世界を体験。
  • 拡張神経接続インターフェース「NeuroLink(仮)」対応。

2. 2層構造の物語

  • 仮想世界《The World》内のRPGストーリー。
  • 現実世界のプレイヤー間の謎、事件、そして「AI」の反乱。
  • 2つの時間軸が交錯し、プレイヤー自身が物語の一部になる。

3. AI NPCとのリアルな交流

  • GPT-4ベースの高度会話AI搭載NPC。
  • 各キャラクターが記憶・感情を持ち、ユーザーの選択により関係性が変化。

4. VR戦闘システム

  • ソードスキル、魔法、連携技をモーション操作でリアルタイム発動。
  • 攻撃タイミングと身体操作が勝敗を左右する、直感型バトル。

5. プレイヤーギルドとハッキング要素

  • ギルド運営、拠点の建築、PvPなどの要素に加え、
  • 特定プレイヤーが「ハッカー」となり、ゲームの奥深くに潜む謎の領域へアクセス可能。

【ゲーム内用語】

用語解説
The Worldゲームの舞台となる仮想空間
ネットスレイヤーデータを破壊する謎の存在
AIコア人格を持ったAI、暴走の兆しあり
データドレインプレイヤーの記憶や感情を吸収する技術(禁忌)

【ターゲット層】

  • VRゲーマー(16〜35歳)
  • SF・サイバーパンク・.hackシリーズファン
  • フルダイブ技術に興味を持つ先端層

【マネタイズ】

  • 基本無料+アバター装備・外見課金(スキン制)
  • ストーリーDLC、特定イベント有料開放
  • プレミアムアカウント(月額制)

【将来的展望】

  • プレイヤー間の記憶共有機能(記憶ログシェア)
  • 現実の感覚を記録・再体験する「リプレイVR」
  • 現実の時間と連動する仮想祭イベント

【イメージビジュアル】(必要なら生成可能)


【補足】

.hack//VRは「ゲーム」であると同時に、フルダイブVRの社会実験でもあります。AIと人間がどこまで共存できるか、仮想空間における「自我」とは何かを問いかける、哲学的な要素を含む作品です。

🎮 クロノクロス リメイク企画書(提案書)

🎮 クロノクロス リメイク企画書(提案書)

■ タイトル(仮)

CHRONO CROSS Re:Dreamers(クロノクロス リ・ドリーマーズ)


■ 開発目的

  • 名作『クロノクロス』(1999年/PS)の世界観・物語・音楽を継承しつつ、現代の技術と表現力でフルリメイク。
  • クロノシリーズの価値とブランドを再定義し、次世代のファンを獲得する。
  • クロノ・トリガーから続く「時」と「次元」をテーマにした壮大な物語を、新たな感動体験として再構築。

■ ターゲット層

  • 30〜40代:オリジナルファン(ノスタルジー層)
  • 10〜20代:JRPG・アニメ調ゲームに興味がある若年層
  • 世界市場向け:海外人気も高いため、グローバル対応必須(字幕・音声)

■ 主な特徴

項目内容
グラフィックUnreal Engine 5を使用したセルルック風3D
サウンド全曲アレンジ+原曲切替可能/フルオーケストラ対応
ボイス主要キャラクターにフルボイス対応(ON/OFF可)
UIモダン+クラシック切替可能なデザイン
バトルターン制+リアルタイム演出のハイブリッドバトル
クロス要素40人以上の仲間、選択によるマルチストーリー
新要素新規シナリオ分岐、外伝ストーリー、キャラエピソード

■ ストーリー概要(簡易)

夢を旅する少年セルジュが、もう一つの世界で自らの存在が「死んでいたこと」を知る。
交錯する次元、因果のねじれ、「時を喰らうもの」によって歪められた歴史を、仲間たちとともに解き明かす物語。
『クロノ・トリガー』との繋がりも明確に描かれ、真実のエンディングへ導かれる。


■ プラットフォーム案

  • PS5 / Xbox Series X|S / PC(Steam / Epic) / Nintendo Switch 2(次世代機を想定)
  • クラウド対応 / Steam Deck対応予定

■ 追加要素・リメイク特有要素(例)

種別内容
DLC対応クロノトリガーエピソード、旧キャラコスチュームなど
クロスセーブ複数プラットフォームでの共有セーブ
ギャラリーモードアート、BGM視聴、ボイス再生可能なコレクション
フォトモードアングル調整+フィルターありの撮影機能
難易度設定イージー〜クラシック(敵の強化・MP制限など)

■ 開発スケジュール案(例)

期間内容
Q1〜Q2プロトタイプ制作・初期アート制作
Q3〜Q4メイン開発・音楽収録・シナリオ検証
Q5〜Q6ベータ版、デバッグ、調整、プロモーション
Q7グローバルリリース(発売時期例:2027年冬)

■ 予算感(概算・中規模プロジェクト)

  • 総開発費:約15〜25億円(3年開発・UE5・全ボイス)
  • 人員:50〜70名体制(内外注含む)

■ 参考資料

  • クロノクロスHDリマスター(2022)
  • ファイナルファンタジーVII リメイク
  • ライブアライブHD-2D
  • ゼノブレイドシリーズ(シナリオ設計・多人数管理)

■ 最後に

クロノクロスは「ゲーム音楽」「次元の物語」「美しいドットと詩的なセリフ」で多くのファンの心に残る名作。
本リメイクは、単なる懐古主義ではなく、「再構築」と「夢の継承」をテーマに、今の時代に語り直すことを目指す。


必要であれば、PDF書式の企画書風に整えることも可能だし、ゲーム画面のモックアップ仲間キャラ一覧風資料も作れるよ!

もっと深く踏み込みたい部分ある?(キャラ紹介・UI案・音楽面とか)

4o

RPG

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>レトロRPG</title>
  <style>
    body {
      background: black;
      color: white;
      text-align: center;
      font-family: monospace;
    }
    canvas {
      border: 2px solid white;
      background: #202020;
      image-rendering: pixelated;
    }
    #ui {
      margin-top: 10px;
    }
  </style>
</head>
<body>
  <h1>レトロ風RPG</h1>
  <canvas id="game" width="160" height="160"></canvas>
  <div id="ui">
    <p id="status">HP: 10</p>
    <p id="log"></p>
  </div>

  <script>
    const canvas = document.getElementById("game");
    const ctx = canvas.getContext("2d");
    const statusEl = document.getElementById("status");
    const logEl = document.getElementById("log");

    const tileSize = 16;

    const map = [
      [0, 0, 1, 0, 0, 0, 0, 0, 1, 0],
      [1, 0, 1, 0, 1, 1, 0, 0, 1, 0],
      [1, 0, 0, 0, 0, 0, 0, 1, 0, 0],
      [1, 1, 1, 1, 1, 0, 1, 1, 0, 1],
      [0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
      [0, 1, 1, 0, 0, 0, 1, 1, 0, 0],
      [0, 0, 1, 1, 1, 1, 0, 1, 1, 0],
      [1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
      [1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
      [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    ];

    const player = {
      x: 0,
      y: 0,
      hp: 10,
      color: "#ff0000"
    };

    const enemies = [
      { x: 4, y: 2, hp: 5, alive: true },
      { x: 8, y: 7, hp: 7, alive: true },
    ];

    function drawMap() {
      for (let y = 0; y < map.length; y++) {
        for (let x = 0; x < map[0].length; x++) {
          ctx.fillStyle = map[y][x] === 1 ? "#444" : "#88cc88";
          ctx.fillRect(x * tileSize, y * tileSize, tileSize, tileSize);
        }
      }
    }

    function drawPlayer() {
      ctx.fillStyle = player.color;
      ctx.fillRect(player.x * tileSize, player.y * tileSize, tileSize, tileSize);
    }

    function drawEnemies() {
      ctx.fillStyle = "#ffcc00";
      enemies.forEach(enemy => {
        if (enemy.alive) {
          ctx.fillRect(enemy.x * tileSize, enemy.y * tileSize, tileSize, tileSize);
        }
      });
    }

    function canMove(x, y) {
      return map[y] && map[y][x] === 0;
    }

    function updateUI() {
      statusEl.textContent = `HP: ${player.hp}`;
    }

    function showLog(text) {
      logEl.textContent = text;
    }

    function battle(enemy) {
      showLog("戦闘開始!");
      const battleInterval = setInterval(() => {
        // プレイヤーの攻撃
        let playerDmg = Math.floor(Math.random() * 3) + 1;
        enemy.hp -= playerDmg;
        showLog(`あなたの攻撃! 敵に${playerDmg}ダメージ!`);
        
        if (enemy.hp <= 0) {
          showLog("敵を倒した!");
          enemy.alive = false;
          clearInterval(battleInterval);
          gameLoop();
          return;
        }

        // 敵の攻撃
        let enemyDmg = Math.floor(Math.random() * 3) + 1;
        player.hp -= enemyDmg;
        updateUI();
        showLog(`敵の反撃! あなたは${enemyDmg}ダメージを受けた!`);

        if (player.hp <= 0) {
          showLog("あなたは倒れた… GAME OVER");
          clearInterval(battleInterval);
          document.removeEventListener("keydown", handleKey);
        }

      }, 1000);
    }

    function checkEnemy(x, y) {
      for (let enemy of enemies) {
        if (enemy.x === x && enemy.y === y && enemy.alive) {
          battle(enemy);
          return true;
        }
      }
      return false;
    }

    function gameLoop() {
      ctx.clearRect(0, 0, canvas.width, canvas.height);
      drawMap();
      drawEnemies();
      drawPlayer();
      updateUI();
    }

    function handleKey(e) {
      let nx = player.x;
      let ny = player.y;

      if (e.key === "ArrowUp") ny--;
      if (e.key === "ArrowDown") ny++;
      if (e.key === "ArrowLeft") nx--;
      if (e.key === "ArrowRight") nx++;

      if (canMove(nx, ny)) {
        player.x = nx;
        player.y = ny;
        if (!checkEnemy(nx, ny)) {
          showLog(""); // 戦闘中じゃないならログを消す
        }
      }

      gameLoop();
    }

    document.addEventListener("keydown", handleKey);
    gameLoop();
  </script>
</body>
</html>