Skip to content

概要 ​

ようこそ!このページでは、Instant Destruction の基本的な概要を解説します。

Instant Destructionとは? ​

Instant Destructionは、Unityのプロジェクトに「直感的で簡単な破壊システム」を追加するアセットです。複雑なスクリプトを書かなくても、オブジェクトにコンポーネントを追加するだけで、破壊表現を実現できます。

AddtoMyAssets

主な特徴 ​

  • ダイナミックなゲームフィール

    • 衝撃を受けた位置からダイナミックに破片が飛び散ります。印象的なヒットフラッシュ(わずかな遅延付き)と、衝撃の力に応じた方向への飛散により、非常に気持ちの良い破壊体験と視覚的な満足感を提供します。
  • 処理負荷ゼロのパフォーマンス

    • Compute ShaderとShader Graphを活用して重い計算をGPUにオフロード。オブジェクトが破壊される瞬間の急激なラグ(スパイク)を防ぎ、メインスレッドへの負荷を排除することで、スムーズなフレームレートを維持します。
  • アタッチするだけの手軽さ

    • 複雑なメッシュ解析、メモリ管理、シェーダーの連携といった面倒な処理はすべて内部で完結しています。最小限のプロパティ設定で最大のビジュアル効果を得られ、マップの仕掛けに便利な自動リセット機能も標準搭載しています。

動作の仕組み ​

本アセットは以下のステップで動作します:

  1. メッシュ解析とメモリ確保: メッシュの構造を解析して破片データを生成し、GPUへ一括転送するためのCompute Bufferを確保・割り当てます。
  2. ウォームアップ: シーン開始時の数秒間、バックグラウンドでウォームアップ処理を実行し、実際の着弾時に非同期シェーダーコンパイルによるスタッター(カクつき)が発生するのを未然に防ぎます。
  3. 着弾検知とパラメータ書き込み: レイキャストや物理衝突イベントによって着弾点を検出します。
  4. 飛び散り方向の計算: 着弾点を中心とした初期の拡散方向ベクトルやランダムな回転・加速度パラメータを、GPU上で全破片分まとめて超高速に一括計算します。
  5. 頂点変形と視覚効果のアニメーション: Compute Shader が出力したバッファデータを読み込み、Vertex処理で破片の飛散軌道をアニメーションさせつつ、Fragment処理でヒットフラッシュを描画します。
  6. インパクト演出: 着弾点を中心としてパーティクルを生成します。

サポート環境 ​

  • Unityバージョン: Unity 6.3 以降
  • レンダリングパイプライン: URP (Universal Render Pipeline) 専用

次のステップ ​