Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TsukinoEngine SpringBoneについて

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
山﨑愛
September 28, 2026

TsukinoEngine SpringBoneについて

Demo Stage Summer で登壇した際の登壇資料です。

自作エンジンのTsukinoEngineと、SpringBpne機能について詳しく触れています。

山﨑愛

September 28, 2026

Transcript

14 slides
  1. 1.TsukinoEngineについて/作成モチベーション あらゆる要求を叶えるエンジニアになりたかった 開発ゲームの一例 ・今までは、既存のフレームワークやエンジンを使用して開発をしていた (右画像) ・C++のフレームワークやライブラリ (右上画像は DxLib)ではシェーダーやレンダリングなどの制 約がボトルネックに ・Unityでは機能のブラックボックス化が顕著で、なぜできるかわかってないのになぜか実装が

    できる状況に ・将来は技術研究側に携わりたいのに、アプリケーション側だけの開発を行って内部の仕組み を理解しないのは良くないと思った ・シェーダーが美しくて興味があったのので、レンダリングパイプラインを自分で改造できるよう になりたかった ・まずは自分が欲しい機能の要求に応えられないと、誰かの ”欲しい”にも応えられない。 ・内部構造を理解した状態で、フルスクラッチでゲームを作れることが作成モチベーションだっ た
  2. 1.TsukinoEngineについて/TsukinoEngineの機能 リソース管理 レンダリング オブジェクト管理 物理演算 インポート機能 描画パイプライン エンティティ管理 当たり判定 キャッシュ機能

    PBRシェーダー ECSレジストリ SpringBone アセットシステム トーンマッピング ECSシーン Rigidbody 組み込みアセット シャドウマップ EventBus collisionデバッグ
  3. 4.SpringBoneの物理/慣性 上のボーンが揺れものボーン inertiaKeep = 1.0 - clamp(inertia, 0.0, 1.0) inertiaKeep

    は慣性での残り具合の係数 前フレーム(説明のために直立) アニメーションスキニングのみ 慣性があるから本来はこうなるはず
  4. 4.SpringBoneの物理/Verlet積分 Verlet積分は、減衰・移動・重力を実際に適用する演算 減衰後の維持率を計算 dragKeep = 1.0f - std::clamp(drag, 0.0f, 1.0f)

    速度の算出(減衰考慮) velocity = (currentPosition - prevPos) * dragKeep 速度と重力を考慮し、ノード(ボーン)の位置を再計算 newPos = currentPosition + velocity + gravityStep

More Decks by 山﨑愛

Other Decks in Research