Skip to content

プロトタイプの作成#2

Merged
haruto-kamijo merged 3 commits intodevelopfrom
feat/harujo/make-main-scene
May 7, 2026
Merged

プロトタイプの作成#2
haruto-kamijo merged 3 commits intodevelopfrom
feat/harujo/make-main-scene

Conversation

@haruto-kamijo
Copy link
Copy Markdown
Collaborator

@haruto-kamijo haruto-kamijo commented May 7, 2026

概要

MediaPipeUnityPluginを用いた骨格認識と花火エフェクトを組み合わせた、ARハナビのプロトタイプを実装しました。
カメラ映像から複数人の骨格をリアルタイムに認識し、特定のジェスチャーに応じて花火を打ち上げる一連の機能を確認できます。

開発内容

システム構成

  • PoseEventBus.cs — ジェスチャーイベントの仲介(Singletonパターン)
  • PoseLandmarkDetector.cs — MediaPipeによる骨格検出・カメラ映像取得
  • GestureDetector.cs — ジェスチャー判定ロジック
  • SkeletonRenderer.cs — 骨格のLineRenderer描画
  • FireworkLauncher.cs — ジェスチャーに応じた花火発射制御
  • CameraBackgroundController.cs — WebCamTextureの管理・背景表示

実装した機能

  • MediaPipe PoseLandmarkerによる複数人同時骨格認識(最大5人)
  • 以下3種類のジェスチャー検出
    • 両手上げ(0.5秒維持で発火)→ 豪華な花火を2発
    • 片手上げ(0.5秒維持で発火)→ 通常花火を1発
    • ジャンプ(急激な腰座標の変化)→ ランダム位置に花火を1発
  • 人ごとに異なる色でスケルトンをリアルタイム描画
  • カメラ映像をQuadで3D背景として表示
  • 花火エフェクト(打ち上げ・炸裂・Bloom・夜空背景)
  • MediaPipeコールバックのスレッドセーフなキュー処理

テスト内容

  • カメラ映像が背景に正しく表示される
  • 骨格認識が起動し、スケルトンが描画される
  • 複数人(2人)の同時認識が動作する
  • 両手上げで花火が打ち上がる
  • 片手上げで花火が打ち上がる
  • ジャンプで花火が打ち上がる
  • ニュートラル状態では花火が打ち上がらない
  • ジェスチャーのクールダウンが正常に機能する
  • アプリ終了時にカメラ・MediaPipeが正常に解放される

既知の問題・今後の課題

  • PCの性能によってMediaPipeの処理が重く、カメラ映像が断続的に止まることがある
  • ジェスチャー判定の閾値(handUpThresholdjumpThreshold)は環境によって調整が必要
  • スケルトンの座標とカメラ映像の位置がズレる場合がある
  • GPU非対応のため、CPUモードでの動作に限定される(Windows環境)

備考

  • MediaPipeUnityPlugin(com.github.homuler.mediapipe-0.16.3.tgz)も同様にREADMEを参照してください
  • ジェスチャー判定パラメータはすべてInspectorから調整可能です

Copy link
Copy Markdown
Collaborator

@nakatashingo nakatashingo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@haruto-kamijo haruto-kamijo merged commit 0823e3b into develop May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants