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
FlashToUnityについて
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Cygames
PRO
November 30, 2015
Programming
1
5k
FlashToUnityについて
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
8.5k
【CEDEC+KYUSHU2025】学生・若手必見!テクニカルアーティスト 大全 ~仕事・スキル・キャリアパス、TAの「わからない」を徹底解剖~
cygames
PRO
0
950
【TiDB User Day2025】リリース時のアクセス急増をいかにしてノーメンテで乗り越えたか 〜『Shadowverse: Worlds Beyond』におけるTiDB採用のゲームサーバー設計〜
cygames
PRO
1
2.4k
【CEDEC2025】『Shadowverse: Worlds Beyond』二度目のDCG開発でゲームをリデザインする~遊びやすさと競技性の両立~
cygames
PRO
2
680
【CEDEC2025】大規模言語モデルを活用したゲーム内会話パートのスクリプト作成支援への取り組み
cygames
PRO
2
2.2k
【CEDEC2025】現場を理解して実現!ゲーム開発を効率化するWebサービスの開発と、利用促進のための継続的な改善
cygames
PRO
0
1.6k
【CEDEC2025】ブランド力アップのためのコンテンツマーケティング~ゲーム会社における情報資産の活かし方~
cygames
PRO
0
1.6k
【CEDEC2025】『ウマ娘 プリティーダービー』における映像制作のさらなる高品質化へ!~ 豊富な素材出力と制作フローの改善を実現するツールについて~
cygames
PRO
0
600
【CEDEC2025】LLMを活用したゲーム開発支援と、生成AIの利活用を進める組織的な取り組み
cygames
PRO
1
4.6k
Other Decks in Programming
See All in Programming
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
760
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
560
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
260
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜
kuro_kurorrr
3
1.9k
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
1.2k
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
720
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
170
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
140
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.3k
SourceGeneratorのマーカー属性問題について
htkym
0
180
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
490
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
290
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
How STYLIGHT went responsive
nonsquared
100
6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
630
Speed Design
sergeychernyshev
33
1.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
120
The Spectacular Lies of Maps
axbom
PRO
1
610
The Curious Case for Waylosing
cassininazir
0
270
Site-Speed That Sticks
csswizardry
13
1.1k
Transcript
あとで画像を貼り付けます。
自己紹介 • 諫山英世 • テクニカルデザイナー (一般的にはテクニカルアーティストの位置づけ) • エンジニアとデザイナーの間にたって、ゲーム 開発がしやすいようなデータ構成を考えたり、 DCCツールの便利なスクリプトを開発したりし
ています。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
アジェンダ • FlashToUnityについて • Unityでの再生 • 開発経緯 • TIPS •
まとめ $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
FlashToUnityについて $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
FlashToUnityとは・・・! FlashをUnityで再生するツールです ! わかりやすい・・・! $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
で・・・ どんなことができるのか? $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
その 1 複雑なFlashアニメが再生可能です ただし仕様があります。 用法を正しく守って頂く事が必要です $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD
"MM3JHIUT3FTFSWFE
仕様は以下のような構成で ① export ここに入っているMCがプレファブに ② mc エクスポート外のMCの格納場所 ③ mc_image 原点中心の画像MC格納場所
④ tx_image ビットマップファイル ⑤ tx_symbol テクスチャ化するシンボル 1 2 3 4 5 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
その 2 ラベル再生に対応しています アクションスクリプトは gotoAndPlay()、stop()に対応 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD
"MM3JHIUT3FTFSWFE
その 3 テクスチャは自動アトラス化しています 2048*2048を超え始めたら 自動で二枚目のテクスチャに振り分けします。 JSFLで判定し、分けています。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
その 4 テクスチャは基本的に カラー、アルファに分割しています 圧縮テクスチャを使って容量削減 ※他のフォーマットも使えるように対応しています。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
その 5 Unityで階層構造の視覚化しています Flashがなくてもプログラムが書けます $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
その 6 通常、加算、乗算などの ブレンドに対応しています 異なるブレンドはドローコールが増えるのですが、 線形で増えないように最適化しています。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
その 7 テキストに対応しています 枠、影に対応しています。 最終的にUnityのTextMeshなので RichTextもそのまま使えるようにしています。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
その 8 アンカー対応をしています フラグを付けることで、 画面の角にくっつけたりできます。 ちょっとしたUIも組めます。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
その 9 レイヤー、 ソーティングオーダー、 ソーティングレイヤー に対応 しています。 基本的にUnityベースで考えているので、 独自のソートではないので、 他の半透明系との相性が考えやすいです。
$POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
その 10 データはScriptableObjectに格納 容量最小化と読取りの高速化 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
そのデータは構成は以下のとおり ① テクスチャアトラス情報を格納 ② 位置情報などの格納 ③ カラーとアルファテクスチャ ④ 出力プレファブ 1
2 3 4 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
その 11 プログラムは専用のFindなどを用意 使うのはクラスは FlRoot、FlMotion、FlPlane、FlText など限られたものとなります。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
Unityでのプログラム方法 • ルートコンポーネント取得 FlRoot flRoot = gameObject.GetComponentInChildren<FlRoot>(); • モーション(ムービークリップ)の取得 FlMotion
motion = FlUtility.FindUI<FlMotion>(flRoot, rootObject, "MOT_test0"); • モーション(ムービークリップ)の再生 motion.SetMotionPlay("Loop"); $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
その 12 動くUIを作成可能 Cygamesの一部タイトルは FlashでUIや2Dアニメーションが組まれています。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD
"MM3JHIUT3FTFSWFE
Unityでの再生 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
開発経緯 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
凄く動くUIを作りたい ! という思いで、 あるアプリ開発とともに FlashToUnityの開発が始まりました $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD
"MM3JHIUT3FTFSWFE
ところで・・・ Unityでしっかりしたアニメーションを つけたことありますでしょうか? 非常に面倒ですし、大変ですよね・・・。 なので他のツールからコンバートできないか と考えました。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
2Dアニメーションを組むにはFlash、AfterEffect などなどのDCCツールがあります。 FlashはScaleformで採用されていること、 ムービークリップの入れ子構造が 便利なため採用しました。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD
"MM3JHIUT3FTFSWFE
またCygamesにはFlashデザイナーが 多く在籍しています。 将来的に人材を活かせるので採用しました。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
そもそも世の中にFlashをUnityで 動かすツールは多く存在しています。 まずそれらを検索して、実際に検証しました。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
検証したFlash系アセットは主に以下となります。 ・Scaleform ・LWF ・GAF ・UniSWF など $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
Cygamesの要望は以下のとおり 60FPSでも処理負荷少なく ・UIが作れる ・テクスチャのとりまわしができる ・ソースコードが存在している など これらの要望を満たすツールは 正直ありませんでした・・・。 $POGJEFOUJBM $PQZSJHIU
$ZHBNFT *OD "MM3JHIUT3FTFSWFE
そこで開発を自社ですることにしました。 結果、臨機応変に要望やバグに対応できる ツールとなり、発展しております。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
TIPS $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
TIPS その1 テキストデータ、XMLデータなどからデータを読 むのは、非常に遅いです。 UnityのScriptableObjectはバイナリ形式になり ますし、データを格納する手段として非常に有効 でした。 容量的にも速度的にも有用だと思います。 $POGJEFOUJBM $PQZSJHIU
$ZHBNFT *OD "MM3JHIUT3FTFSWFE
TIPS その2 MonoBehaviourの多用はやめましょ う。 開発当初は右図のGameobject全て にアタッチしていたのですが、ロード や処理負荷が重すぎてやめました。 現在はMOT_rootにFlRootがアタッ チされているだけとなっています。 これが下層オブジェクトの更新を管
理しています。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
TIPS その3 Gameobjectはランタイムで作成したほうが速い。 Gameobjectをプレファブにあらかじめ格納する か、ランタイムで作り出すかを比較したところ、あ るゲームではロード時間が約3倍改善しました。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
おわりに $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE
実は私はMayaなどのDCCツールの スクリプト開発がメインだったのですが、 動くUIを作りたいという思いから、 Unity、C#を勉強して ツールの開発をさせていただきました。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD
"MM3JHIUT3FTFSWFE
Cygamesはチャレンジできる会社ですので、 今後も大きな挑戦をしていくために、 協力していただける方を募集しております。 ※エンジニアだけでなく、テクニカルデザイナー、 3D、2Dデザイナーも広く募集しております。 詳しくは採用ページをご覧ください。 よろしくお願い致します。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT
*OD "MM3JHIUT3FTFSWFE
以上となります。 ご清聴ありがとうございました。 $POGJEFOUJBM $PQZSJHIU $ZHBNFT *OD "MM3JHIUT3FTFSWFE