243 lines
8.9 KiB
Markdown
243 lines
8.9 KiB
Markdown
# ai.verse UE5実装ガイド
|
||
|
||
## プロジェクト概要
|
||
**ai.verse** - Unreal Engine 5.6で開発中の惑星規模3Dメタバース
|
||
|
||
### 基本情報
|
||
- **エンジン**: Unreal Engine 5.6
|
||
- **開発手法**: Blueprint中心、繰り返し再実装による改善
|
||
- **特徴**: 惑星規模のシームレスワールド、atproto統合
|
||
|
||
## 現在の実装状況
|
||
|
||
### 完成済み機能
|
||
- ✅ 惑星規模の地球・月・太陽(WorldScape + UDS)
|
||
- ✅ シームレスな宇宙移動(大気圏→宇宙が一つのマップ)
|
||
- ✅ 月面着陸・クレーター探索
|
||
- ✅ キャラクターアクション(GASP + SFA統合)
|
||
- ✅ 飛行システム
|
||
|
||
### 再実装予定機能(./book/に詳細記録)
|
||
|
||
#### atproto統合
|
||
- **ログイン機能** (`/json/02_atproto.md`)
|
||
- syui.ai (bsky.social) / syui.syu.is認証
|
||
- PDSLSでの情報確認
|
||
- **データ連携**
|
||
- アイテム取得→レコード更新
|
||
- カードシステム(画像URL管理)
|
||
- ゲームデータ管理(ai.syui.game.system)
|
||
|
||
#### UI/UX
|
||
- **タイトル画面** (実装ドキュメント未発見)
|
||
- **ゲームUI** (`/ui/01_list.md`, `/crs/02_boss.md`)
|
||
- ListView実装(WBP_player, WBP_text)
|
||
- HPゲージ(ProgressBar 0.0-1.0)
|
||
- ステータス表示
|
||
|
||
#### 戦闘システム
|
||
- **ボスバトル** (`/crs/02_boss.md`)
|
||
- Control Rig Sample Mech使用
|
||
- Look At bone modifier
|
||
- ダメージ処理(Event Any Damage)
|
||
- Niagara破壊エフェクト
|
||
- **武器システム** (`/gasp/12_weapon.md`)
|
||
- Socket設定(武器装着)
|
||
- 抜刀/納刀アニメーション
|
||
- BP_WeaponSword実装
|
||
- **剣技システム** ([Blueprint実装](https://blueprintue.com/blueprint/cu104wg0/))
|
||
- Montage切り替えによる3段攻撃
|
||
- 複雑なBranch処理で攻撃段階管理
|
||
- Trail effectsのNiagara実装
|
||
- **キャラスキル** ([Niagara Collision実装](https://blueprintue.com/blueprint/h2ktbf6-/))
|
||
- Niagara CollisionでAoEダメージ
|
||
- クールダウンシステム
|
||
- レベル連動の変身システム(Lv1で飛行可能)
|
||
- スキル習得アイテムドロップ
|
||
|
||
#### 移動・アクション
|
||
- **基本移動** (`/gasp/README.md`)
|
||
- WASD移動、Space跳躍、Shift疾走
|
||
- **ジャンプシステム** (`/gasp/02_jump.md`)
|
||
- TraversalAction高度変更(275→475)
|
||
- **段階的移動** (`/gasp/11_run.md`)
|
||
- スプリントアニメーション切替
|
||
- Layered blend per bone実装
|
||
|
||
#### アイテムシステム
|
||
- **ドロップシステム** (`/plan/04_item.md`, `/crs/02_boss.md`)
|
||
- Nice Interaction System使用
|
||
- AC_PC_Interaction / AC_GS_Interaction
|
||
- "E"キーでのアイテム取得
|
||
|
||
## 技術スタック
|
||
|
||
### プラグイン
|
||
- **WorldScape**: 惑星地形生成
|
||
- **Ultra Dynamic Sky (UDS)**: 天候・時間システム
|
||
- **GASP**: Game Animation Sample
|
||
- **SFA**: SuperHero Flight Animation
|
||
- **VRM4U**: VRMアバター統合(予定)
|
||
|
||
### 現在直面している課題
|
||
|
||
#### 1. 重力システム
|
||
- **問題**: 惑星の横から入ると坂になり、反対側から進入不可
|
||
- **原因**: 球体重力の実装が不完全
|
||
|
||
#### 2. 天候システム(UDS)
|
||
- **Manual Rain**: 動作するが雲の上でも降り続ける
|
||
- **Random Rain**: 惑星規模では機能しない
|
||
- **惑星裏側**: Weather有効時にレンダリング異常
|
||
- **回避策**: Weather無効化で解決するが、晴れ/曇り表現が失われる
|
||
|
||
##### 解決策:CharacterBPベースの雨エフェクト
|
||
- **実装方法**: CharacterBPにSceneRain追加
|
||
- **制御**: 高度とUDS天候状態で有効/無効切替
|
||
- **利点**: UDSの雲表現を維持しつつ適切な雨表現
|
||
- **実装済み**: [雨エフェクトBlueprint](https://blueprintue.com/blueprint/8kty-cvm/)
|
||
- SceneRain子要素をForEachで制御
|
||
- Niagara/PostProcessを個別判定
|
||
- 機能するが実装に改善余地あり
|
||
|
||
#### 3. ビジュアルスタイル
|
||
- **課題**: WorldScapeのデフォルト地形が現実的すぎる
|
||
- **目標**: 原神のようなアニメ調スタイル
|
||
- **検討**: So Stylized Environmentとの統合
|
||
|
||
## atproto統合アーキテクチャ
|
||
|
||
### 認証方式
|
||
**WebAPI直接連携**を採用(PixelStreamingに依存しない)
|
||
|
||
### データ構造
|
||
```
|
||
GameInstance (BP_Config)
|
||
├── 環境変数
|
||
│ ├── API設定
|
||
│ ├── 認証情報(Token等)
|
||
│ └── システムデータ(JSON)
|
||
│
|
||
├── 管理者アカウント
|
||
│ └── ai.syui.game.system
|
||
│ ├── キャラクターステータス
|
||
│ ├── アイテム効果
|
||
│ └── カード情報(ID→画像URL)
|
||
│
|
||
└── プレイヤーデータ
|
||
└── 個人レコード(atproto collection)
|
||
```
|
||
|
||
### 実装フロー
|
||
1. GameInstance起動時にシステムデータ一括取得
|
||
2. Castによる都度参照・更新
|
||
3. プレイヤーアクション→atprotoレコード更新
|
||
|
||
## Blueprint実装の課題と解決策
|
||
|
||
### JSON処理
|
||
**課題**: UE5標準のJSON処理が複雑
|
||
**解決策**:
|
||
- VaRest Plugin(無料)を独自ビルドで使用
|
||
- 公式はUE5.5/5.6非対応のため自前でビルド
|
||
- メンテナンスされていないが動作は安定
|
||
- JSON Parser Plugin(有料)も併用
|
||
- UE5.6サポートは不明(更新が遅れる可能性)
|
||
|
||
**今後の課題**:
|
||
- プラグイン依存のリスク(UEバージョンアップ時)
|
||
- C++でのユーティリティクラス実装も検討必要
|
||
|
||
### Widget画像表示
|
||
**実装**: Widget Browserで直接URL表示(キャッシュなし)
|
||
|
||
### 非同期処理
|
||
**実装**: GameInstanceでの一元管理とCast利用
|
||
|
||
## ゲームデザイン哲学
|
||
|
||
### 開発方針
|
||
- **作り直しの効果**: 1週間の実装→数時間で改善版完成
|
||
- **積極的な再実装**: 動くコードがあっても、より良い実装のために作り直す
|
||
- **学習重視**: UEへの理解を深めながら、段階的に改善
|
||
- **技術的負債回避**: ゴチャゴチャしたコードは捨てる勇気
|
||
- **シンプル重視**: 複雑なゲームより長く続く体験
|
||
- **配信親和性**: 同じ画面でも個性が出る設計
|
||
|
||
### 作り直しのメリット
|
||
- 新バージョンの機能を最大限活用
|
||
- 以前の問題への解決策が見つかる
|
||
- コードがスマートでシンプルになる
|
||
- UEへの理解が深まるたびに品質向上
|
||
|
||
### 新機能案
|
||
- **宇宙カジノ**: 移動中の暇つぶし要素
|
||
- **釣りシステム**: レアドロップ(ドラゴン0.0001%)
|
||
- **30秒投稿**: atproto自動投稿との連携
|
||
|
||
## UE5.6デモゲーム統合計画
|
||
|
||
### 発見されたUE5.6デモゲーム
|
||
1. **Variant_Combat**: 格闘ゲーム、物理演算での吹っ飛び
|
||
2. **Variant_Shooter**: 銃ゲーム、弾痕が残る、アイテム拾得
|
||
3. **Variant_TwinStick**: 大爆発演出、スロー効果
|
||
|
||
### ai.verseへの活用方針
|
||
- **Variant_Combat → ボスシステム**: 物理演算による自然な反応
|
||
- **Variant_Shooter → アイテムシステム**: 武器収集、環境破壊
|
||
- **Variant_TwinStick → スキル演出**: 大技の派手な演出
|
||
|
||
### City Sample統合の可能性
|
||
- **自動で動く街**: Mass Entity Systemによる生きた都市
|
||
- **車両物理演算**: Chaos Physicsによるリアルな挙動
|
||
- **WorldScapeとの組み合わせ**: 惑星表面の都市環境
|
||
|
||
### 飛行システムの改良案
|
||
- **泳ぐような操作感**: 常時微細な揺れ、左右上下の自然な動き
|
||
- **加速システム**: 溜め動作による推進力、羽ばたき演出
|
||
- **物理ベース**: Air Resistance、慣性重視の操作感
|
||
|
||
### 2Dステージ統合
|
||
- **切り替えシステム**: 特定エリアで2D視点に変更
|
||
- **横スクロール**: UE5.6の2Dデモベース
|
||
- **3D世界復帰**: クリア後のポータルシステム
|
||
|
||
## 今後の実装予定
|
||
|
||
### 短期目標
|
||
1. UE5.6での基本システム再構築
|
||
2. atproto認証の再実装
|
||
3. タイトル画面・ログインUI
|
||
|
||
### 中期目標
|
||
1. OAuth認証への移行
|
||
2. カード連携システム
|
||
3. PixelStreaming統合(Web配信)
|
||
|
||
### 長期目標
|
||
1. VTuber配信プラットフォーム化
|
||
2. Play-to-Work経済システム
|
||
3. ai.gpt NPCの統合
|
||
|
||
## 技術メモ
|
||
|
||
### UE5.6変更点
|
||
- WorldScapeがEarthサイズ対応
|
||
- GASPのBP構造変更
|
||
- SFAのアニメーション改善
|
||
|
||
### パフォーマンス最適化
|
||
- 惑星規模でのUDS維持設定
|
||
- シームレス移動の最適化
|
||
|
||
### 参考リソース
|
||
- [古い実装ドキュメント](https://syui.github.io/m/post/ue/)
|
||
- [Blueprint実装記録](https://blueprintue.com/profile/ai/)
|
||
- [剣技Blueprint](https://blueprintue.com/blueprint/cu104wg0/)
|
||
- [スキルBlueprint](https://blueprintue.com/blueprint/h2ktbf6-/)
|
||
- [WorldScape公式ドキュメント](https://iolacorp-1.gitbook.io/worldscape-plugin)
|
||
- [So Stylized Environment](https://docs.google.com/document/d/147wCDvZg6-9jZNyqSxX-I_HQkE2tGINZIhyjc2QHirY)
|
||
|
||
---
|
||
|
||
*このドキュメントは開発の進捗に応じて随時更新されます* |