Unity × Sprite Animation 株式会社Whomor 木下 智弘 遠藤 有 発表者 • 木下 智弘 • 遠藤 有 • 株式会社フーモア • 開発事業部 • エンジニア • 株式会社フーモア • CG開発室 • ディレクター フーモア書籍 Agenda 1. ゲームに必要な要素 2. スプライトアニメーションとは 3. アニメーションのワークフローを確認 4. ソフトウェアを検証 Agenda 1. ゲームに必要な要素 2. スプライトアニメーションとは 3. アニメーションのワークフローを確認 4. ソフトウェアを検証 ゲームに必要な要素 Architect Art Scenario Program Music 「Art」に着目 Architect Art Program Scenario Music ゲームで必要となる 「Art」とは ゲームに登場する「Art」の一例 ICON Character Item etc… Back ground 「Art」の表現例 UI イラスト Art 3DCG アニメー ション Agenda 1. ゲームに必要な要素 2. スプライトアニメーションとは 3. アニメーションのワークフローを確認 4. ソフトウェアを検証 スプライトアニメーションの構成 イラスト (素材) スプライト アニメー ション スプライト アニメー ション スプライトアニメーションの種類 • コマアニメ(連番画像)方式 • • • • 【手法】スプライトの画像を随時切り替え 【メリット】CPU負荷が小さい 【デメリット】画像容量が増える 【例】GIF画像 • キーフレーム方式 • • • • 【手法】キーフレーム毎にアニメーションの値を設定し計算表示 【メリット】動きが滑らか 【デメリット】実装工数が高い 【例】Flashアニメーション 画像とエンジニアの力で どこまで表現できるか 2Dゲームの開発で 挑戦してみた チャレンジ内容 1.スプライトの表示 2.ただひとつのアニメーション 3.複数のアニメーション チャレンジ内容 1.スプライトの表示 2.ただひとつのアニメーション 3.複数のアニメーション 1. スプライトの表示 スプライトとして画像を 表示させるだけ 問題ない! 補足 • トゥイーンを設定 • • • • var tweenScale = startButtonObject.AddComponent<TweenScale>(); tweenScale.to = new Vector3(0.8f, 0.8f); tweenScale.style = UITweener.Style.Loop; tweenScale.animationCurve = new AnimationCurve(new Keyframe(0f, 0f), new Keyframe(0.5f, 1f), new Keyframe(1f, 0f)); • クリックイベントを追加 • var startUiButton = startButtonObject.AddComponent<UIButton>(); • EventDelegate.Add(startUiButton.onClick, () => { /*クリック時の処理*/}); ※NGUIアセットを利用 チャレンジ内容 1.スプライトの表示 2.ただひとつのアニメーション 3.複数のアニメーション 2. ただひとつのアニメーション 画像を連番で変更させるだけ 問題ない!! 補足 • 画像のコマ送り • • • • • • • private int currentSpriteNo = 1; private UISprite ui; private float time; private float waitingTime = .1f; void Start() { this.ui = gameObject.GetComponent<UISprite>(); • } • • • • • • • • • • • • • void FixedUpdate() { this.time += Time.deltaTime; if (this.time > this.waitingTime) { this.ui.spriteName = "blink" + "_" + this.currentSpriteNo.ToString("00"); if (this.currentSpriteNo == 15) this.currentSpriteNo = 1; else this.currentSpriteNo++; this.time = 0f; } } ※NGUIアセットを利用 チャレンジ内容 1.スプライトの表示 2.ただひとつのアニメーション 3.複数のアニメーション 3. 複数のアニメーション 大変… 複数のアニメーションを実装するためには 連番画像を大量に用意 連番画像のセットを指定 アニメーション間の繋ぎを調整 これらの準備をキャラクタ毎に すべて用意する? やれなくはないが… 工数の観点から 厳しい!!! スプライトアニメーション ソフトウェアの 導入が正義!! そこで、本題の スプライトアニメーション ソフトウェアにフォーカス スプライトアニメーションソフトウェアの歴史 1993年 1996年 2002年 2005年 2008年 2013年 2014年 After Effects Flash Maya Sprite Studio Cocos Studio Sprite Builder Spine Puppet2D SpriterPro スプライトアニメーション ソフトウェアは 色々あるが・・・ 注目のソフトウェアを ピックアップ Agenda 1. ゲームに必要な要素 2. スプライトアニメーションとは 3. アニメーションのワークフローを確認 4. ソフトウェアを検証 スプライトアニメーション制作に 必要な工程 アニメーションワークフロー ワークフローを確認する前に… それぞれのソフトウェアで 実際の動きを確認してみましょう デモ実演 それでは デザイナとエンジニアの側面から フローを確認してみましょう!! まずは デザイナのフローを確認 ソフトウェア共通 1.イラストを描く 2.パーツを分割 3.スクリプトでレイヤーを書き出し ソフトウェア共通 1.イラストを描く 2.パーツを分割 3.スクリプトでレイヤーを書き出し ソフトウェア共通 1.イラストを描く 2.パーツを分割 3.スクリプトでレイヤーを書き出し ソフトウェア共通 1.イラストを描く 2.パーツを分割 3.スクリプトでレイヤーを書き出し ここまでは全ソフトウェア 共通の流れ 1. 2. 3. 4. シェーダーの制作 プレーンの制作 リグの制作 アニメーションの制作 最後にfbxで書き出し 作業が大変! MELScriptで効率化すべき!! 1. スプライト読込み 2. リグの制作 3. アニメーションの 制作 慣れると楽!!! 慣れると楽!!! 慣れるまでは大変!!! 次に エンジニアのフローを確認 Spine 基本 ~Skelton Animation~ 1. 公式SDKをUnityにインポート 2. Spineデータをインポート 3. 「Skelton Animation」でオブジェクトを生成 4. アニメーションを名前で指定・切り替え Spine 応用 ~Mecanim~ 1. 公式SDKをUnityにインポート 2. Spineデータをインポート 3. 「Mecanim」でオブジェクトを生成 4. 「Animator Controller」を作成 2015年2月公式が Mecanimに対応!! 簡単なアニメーションから 複雑なアニメーションまで エンジニアに優しい設計思想!!! Maya 1.FBXデータをUnityにインポート 2.Animationをモーション別に分割 3.「Animator Controller」を作成 Animationの準備が特殊であることから 仕様変更があると 手戻りが発生することも Puppet2D 1.「Animator Controller」を作成 デザイナーに用意してもらえれば ほとんど工数が発生しない ただし、デザイナーと レギュレーションをしっかり握る 必要あり Agenda 1. ゲームに必要な要素 2. スプライトアニメーションとは 3. アニメーションのワークフローを確認 4. ソフトウェアを検証 デザイナー 三者の視点からソフトウェアを 比較検証しました マネージャー エンジニア デザイナー まずは、デザイナーの視点から マネージャー エンジニア デザイナーの視点で検証 Spine Maya Puppet2D 工数 表現力 柔軟力 ◎ × ○ ◎ ◎ × ○ ○ ○ デザイナー 次に、エンジニアの視点から マネージャー エンジニア エンジニアの視点で検証 Spine Maya Puppet2D 工数 表現力 柔軟力 ○ ○ ◎ × ◎ ○ ○ ○ × デザイナー 最後に、マネージャーの視点から マネージャー エンジニア マネージャーの視点で検証 Spine Maya Puppet2D 費用 サポート 分業 ○ ○ ◎ × ◎ ◎ × ○ × 三者検証の結果… まとめ 1. Spine • バランスが良い • 万人向け 2. Maya • 機能的に最高 • 十分にプリプロダクションするチーム向け 3. Puppet2D • Unityのインタフェースの改善に期待 • Unityの操作性に慣れているチーム向け 御社・あなたはどのソフトウェアを 選択する? ご清聴ありがとうございました
© Copyright 2024