Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TsukinoEngine SpringBoneについて
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
山﨑愛
September 28, 2026
Research
2
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TsukinoEngine SpringBoneについて
Demo Stage Summer で登壇した際の登壇資料です。
自作エンジンのTsukinoEngineと、SpringBpne機能について詳しく触れています。
山﨑愛
September 28, 2026
More Decks by 山﨑愛
See All by 山﨑愛
TsukinoEngine 技育展2026
tsukino
0
3
Other Decks in Research
See All in Research
超効率化への挑戦:1bit LLMの現状と展望
yumaichikawa
0
880
Santé et fertilité des sols : ce que nous disent les pratiques dans les systèmes de polyculture-élevage
institutdelelevage
PRO
0
130
Sleuthcon Keynote - How Cybercriminals (ab)use AI
fr0gger
0
390
ハードウェア研究で国際トップ会議を目指す!IROS 2027での論文採択を目指して
ayatokanada
7
4.1k
IA for theory
gpeyre
1
500
Pretrain Where? Investigating How Pretraining Data Diversity Impacts Geospatial Foundation Model Performance
satai
3
180
完全自律LLMエージェントでDIVER OSINT CTF 2026に挑戦してみた
analokmaus
0
770
L’albédo:levier d’atténuation du changement climatique dans les systèmes fourragers
institutdelelevage
PRO
0
140
論文紹介:Doc-to-LoRA: Learning to Instantly Internalize Contexts
yukako_nakano
0
200
学術バーQ AI研究最前線:自己教師あり学習による画像モデルの事前学習
naok615
0
170
量子サマースクール2026「量子計算機アーキテクチャ分野の概観」
youten622
1
980
Pesée et pointage par imagerie 3D : PHENO3D entre en phase de test terrains
institutdelelevage
PRO
0
110
Featured
See All Featured
We Are The Robots
honzajavorek
0
400
HDC tutorial
michielstock
2
960
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Building the Perfect Custom Keyboard
takai
2
910
Building Flexible Design Systems
yeseniaperezcruz
330
41k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Transcript
TsukinoEngine SpringBoneについて OCA大阪デザイン&テクノロジー専門学校 スーパーゲームIT科 山﨑愛
1.TsukinoEngineについて/作成モチベーション あらゆる要求を叶えるエンジニアになりたかった 開発ゲームの一例 ・今までは、既存のフレームワークやエンジンを使用して開発をしていた (右画像) ・C++のフレームワークやライブラリ (右上画像は DxLib)ではシェーダーやレンダリングなどの制 約がボトルネックに ・Unityでは機能のブラックボックス化が顕著で、なぜできるかわかってないのになぜか実装が
できる状況に ・将来は技術研究側に携わりたいのに、アプリケーション側だけの開発を行って内部の仕組み を理解しないのは良くないと思った ・シェーダーが美しくて興味があったのので、レンダリングパイプラインを自分で改造できるよう になりたかった ・まずは自分が欲しい機能の要求に応えられないと、誰かの ”欲しい”にも応えられない。 ・内部構造を理解した状態で、フルスクラッチでゲームを作れることが作成モチベーションだっ た
1.TsukinoEngineについて/TsukinoEngineの機能 リソース管理 レンダリング オブジェクト管理 物理演算 インポート機能 描画パイプライン エンティティ管理 当たり判定 キャッシュ機能
PBRシェーダー ECSレジストリ SpringBone アセットシステム トーンマッピング ECSシーン Rigidbody 組み込みアセット シャドウマップ EventBus collisionデバッグ
2.SpringBoneについて/SpringBoneとは SpringBoneは、揺れものを動かす軽量物理シミュレーション 目的 ・キャラクターの動きに合わせて自然な揺れを表現する ・アプリ作成者が数値を触って揺れ具合を調整する 特徴 ・比較的軽量な演算により、リアルタイム向けのシミュレーションになる ・少ないパラメータで直感的に調整可能 利用例 ・キャラクターの髪の毛の揺れ
・マントや布の揺れ表現 ・キャラクターのアクセサリや体の一部の揺れを表現
2.SpringBoneについて/実装動機 キャラクターの魅力を引き出す機能 ・装飾品や耳などの揺れにこだわりを感じた。 ・体の一部が揺れるだけで生命感が一気に増す。 ・目が肥えてるので、アニメーションだけだと少し硬い 印象がある アニメーションのみのモデル描画
2.SpringBoneについて/障壁 スキニングとの兼ね合い ・アニメーション処理に、追加で頂点に対して演算が必要 ・レンダリングにも関わる部分のため、実装が絡まりやすい ・行列のかけ順が複雑になりがち ・物理実装自体も個人開発ではなかなかハード モデルデータが必要 ・アニメーション可能なノード構成(無料範囲ならmixamorigが現実的)かつ、追加で揺れもの用ボーンが必要 ・モデルには利用規約があるので、使用していいものかつ、いい感じのアセットがないと、デバッグすらできない 等々…
3.SpringBoneの実装/機能の全体像 アプリケーション側との懸け橋 SpringBoneComponent スキニング後に SpringBoneComponentを参照 AnimationSystem 物理演算を移譲 SpringBonePhysics
3.SpringBoneの実装/SpringBoneComponent SpringBoneComponentは、主にSpringBoneChain(どのボーンチェーンをどのくらい揺らすかの設定)の配列で構成 SpringBoneChainの主なメンバ SpringBoneノードの配列 nodes アンカーの移動を子に伝える率 元の姿勢に戻ろうとする強さ stiffness 重力倍率 gravityScale
揺れの減衰率 前フレームのアンカー位置 drag previousAnchorPosition inertia
3.SpringBoneの実装/スキニング 元のアニメーションに加え、チェーンを追加で演算 アニメーションデータのみのスキニング演算 アニメーションに加え、SpringBoneChainを 追加で演算
4.SpringBoneの物理/慣性 上のボーンが揺れものボーン inertiaKeep = 1.0 - clamp(inertia, 0.0, 1.0) inertiaKeep
は慣性での残り具合の係数 前フレーム(説明のために直立) アニメーションスキニングのみ 慣性があるから本来はこうなるはず
4.SpringBoneの物理/Verlet積分 Verlet積分は、減衰・移動・重力を実際に適用する演算 減衰後の維持率を計算 dragKeep = 1.0f - std::clamp(drag, 0.0f, 1.0f)
速度の算出(減衰考慮) velocity = (currentPosition - prevPos) * dragKeep 速度と重力を考慮し、ノード(ボーン)の位置を再計算 newPos = currentPosition + velocity + gravityStep
5.3Dモデルアセットの作成/ボーン追加 mixamoのヒューマノイドボーンには、揺れものがないので手動で追加する必要がある mixamoのオートリギング済みのモデル 手動でボーンを追加 反対側にもコピー
5.3Dモデルアセットの作成/頂点に重み付け ボーンが各頂点にどのくらい影響を与えるか(Weight)の設定が必要 Weightを設定していく(WeightPaint) 重みを正規化(すべての頂点グループで1.0に収める)
ご清聴ありがとうございました