Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
内製タイムラインツールCuttの紹介
Search
Cygames
PRO
November 30, 2015
Programming
6
12k
内製タイムラインツールCuttの紹介
2015/11/15 Cygames Tech Fes
Cygames
PRO
November 30, 2015
Tweet
Share
More Decks by Cygames
See All by Cygames
【U/Day Tokyo 2025】Cygames流 最新スマートフォンゲームの技術設計 〜『Shadowverse: Worlds Beyond』におけるアーキテクチャ再設計の挑戦~
cygames
PRO
4
6.3k
【CEDEC+KYUSHU2025】学生・若手必見!テクニカルアーティスト 大全 ~仕事・スキル・キャリアパス、TAの「わからない」を徹底解剖~
cygames
PRO
0
780
【TiDB User Day2025】リリース時のアクセス急増をいかにしてノーメンテで乗り越えたか 〜『Shadowverse: Worlds Beyond』におけるTiDB採用のゲームサーバー設計〜
cygames
PRO
1
2.3k
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
2
660
【CEDEC2025】大規模言語モデルを活用したゲーム内会話パートのスクリプト作成支援への取り組み
cygames
PRO
2
2.1k
【CEDEC2025】現場を理解して実現!ゲーム開発を効率化するWebサービスの開発と、利用促進のための継続的な改善
cygames
PRO
0
1.5k
【CEDEC2025】ブランド力アップのためのコンテンツマーケティング~ゲーム会社における情報資産の活かし方~
cygames
PRO
0
1.5k
【CEDEC2025】『ウマ娘 プリティーダービー』における映像制作のさらなる高品質化へ!~ 豊富な素材出力と制作フローの改善を実現するツールについて~
cygames
PRO
0
560
【CEDEC2025】LLMを活用したゲーム開発支援と、生成AIの利活用を進める組織的な取り組み
cygames
PRO
1
4.3k
Other Decks in Programming
See All in Programming
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.3k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
540
CSC307 Lecture 02
javiergs
PRO
1
770
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.8k
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
2026年 エンジニアリング自己学習法
yumechi
0
130
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
270
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
72
The Language of Interfaces
destraynor
162
26k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
270
Agile that works and the tools we love
rasmusluckow
331
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
From π to Pie charts
rasagy
0
120
Code Reviewing Like a Champion
maltzj
527
40k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
160
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Transcript
None
自己紹介 • 中川均 • エンジニア • Unityが得意 • 開発経験は家庭用とスマートフォンの開発 半々ぐらい
• サーバー側やっていたことも • ツールを作るのが結構好き $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
Cuttとは • Cygames Unity Timeline Tool • Unity上に実装したタイムラインエディタ – タイムライン上にKeyを打って任意のパラメータを変更、ア
ニメーション(イーズしたり)する – カメラワークをつけることも可能 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
作成の経緯 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
作成の経緯 • あるプロジェクトでカメラワークを設定するツー ルが必要に • さらに、シーン中のオブジェクトのパラメータを タイムライン上で設定、アニメーションできる必 要も出てきた • カメラワークをつけられるタイムラインツールを
用意することに $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
作成の経緯 • まず、いくつか既存のアセットを調査・検証した – Animator - Timeline Editor – Aperture
Cutscene Editor – uSequencer …など $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
作成の経緯 • 検証のポイント(評価基準) – コード変更可能なライセンスか • 仕様追加、仕様変更にツールが対応できない場合、コー ド修正でなんとかできる可能性 – 機能的に十分か
• 外部からの再生時間操作、カメラワークの設定、オブ ジェクト操作 etc… – かといってオーバースペックすぎはしないか • モバイル向けで、CPUに空きがなさそうな利用タイトル • ランタイムの処理負荷は可能な限り抑えたい $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
作成の経緯 • 検証の結果 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
作成の経緯 • 「これで大丈夫そう!」と言えるものは無かった – ずっと調査と検証ばかりしているわけにもいかな い・・・ $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
作成の経緯 • では自分で作るのか?作れるのか? – 作るものの大枠は分かっている • カメラワーク、タイムライン – 時間は無いこともない •
当面必要な機能は少ない • 詳細な仕様はこれから。徐々に作っていける – リスクはむしろ低い • 全部自分のコード。コード変更も容易 • 根っこのデータ構造から自由にできる $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
作成の経緯 • 覚悟を決めて内製へ … – ねんがんのコードがかけるぞ(心の声 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
そして出来上がったのがこちら (DEMO) $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
Cuttの特徴 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
Cuttの特徴 • インゲームでリアルタイム編集 – リアルタイム=編集しながらプレビューできる • 高速な編集イテレーション – 編集作業すべてをインゲーム(プレイ状態)で行う •
編集時と実際の動作時で違いが発生しずらい – データ構造がツールとランタイムで共通だから可 能 • Unity上に実装されたツールの利点 – といっても、実際には利用タイトル側もインゲーム 編集を考慮した作りにしないとダメ $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
Cuttの特徴 • 結果的に充実した編集補助機能 – 基本的なKey操作、複数Key同時編集 – Keyの検索処理 – スクラッチシート –
フレームのブックマーク機能 – 任意フレーム間のループ再生 – タイムラインのフィルタリング – タイムライン移動のホットキー設定 • まさかこんなに実装することになるとは… $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
Cuttの特徴 • 割とコードを書く必要がある – コーディングレスにするつもりは全くない – 内製の利点は柔軟性 • 新規仕様、仕様変更に柔軟に対応できるようにガチガ チに固めない
– 編集効率を上げるGUI、ワークフローを実現する • 利用タイトルの要望に最適化する • コードを書きたくないなら何か目的にあった既存ツールを… $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
Unity上でのツール作成Tips $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
Cuttタイムラインの描画方法 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • 白いテクスチャ(EditorGUIUtility.whiteTexture)に色 を乗せてひたすらDrawTexture
OnGUIの負荷軽減 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • 大量の描画物&負荷に配慮してないコードで 処理負荷は跳ね上がる
OnGUIの負荷軽減 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE 使い倒してくれてありがとう本当に
OnGUIの負荷軽減 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • 大量の描画物&負荷に配慮してないコードで 処理負荷は跳ね上がる
• 純粋に描画するだけならRepaintイベント時だ けで良い
プレイ状態でPrefabのApplyを行う $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • そもそもPrefabはプレイ中だとApplyできなく なる
プレイ!
プレイ状態でPrefabのApplyを行う $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • なのでスクリプトからApply(NGパターン) Nullが返る
プレイ状態でPrefabのApplyを行う $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • ただしくは
ちっちゃいボタンを出したい! $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • こういうやつ
ちっちゃいボタンを出したい! $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • スタイルが用意されているのでそれを使うだ け!
• EditorStylesには他にもいろんなスタイルがあ ります。
OnGUIでのしつこい例外に $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • 実行されるとどうなっちゃうでしょうか?
OnGUIでのしつこい例外に $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • ウィンドウの閉じるボタンが反応しなくなって、 最終的にUnityごと落とすほかなくなる・・・
• 面倒くさい・・・。 • そこで、保険としてこのコードをおすすめ
OnGUIでのしつこい例外に $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE • これでWindowを閉じることができる
以上です。 ご清聴ありがとうございました $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE