all green

プログラム、アプリ作成、Web等備忘録が中心です

UnityでFlashで作成したアニメーションを使用する

ちょっと前にフリーランスとして仕事を始め

いい機会なのでいっちょやってみるかという感じでブログを始めてみました。

主にプラグラム関連(UnityやFlash等)について書いていこうと思っています。

 

 早速ですが、今回はUnityとLWFの話。

 

Flashでアニメーションや演出を作っていた人が

Unity上で同じようにつくろうと思ったら、そのままでは実現できないことが多かったりする。

Flashで作成してflaをそのまま使えたら便利なのにと思ったら

「LWF for Unity」というそれっぽいものを見つけました。

FlashアニメーションをUnity上で再生できるようなので試してみようと思います。

 

LWF for Unity導入手順

1.LWFS(変換ツール)のダウンロードと実行

・ダウンロードする(今回はWindows版を使用)

https://github.com/gree/lwfs/releases/

 

・解凍したファイルを設置

「D:\LWFS」のように「パスに日本語(2バイト文字)が混じらないようにしてください」だそうです

 

・起動

start.jsをコマンドプロンプトから起動

ブラウザが立ち上がりLWFSが起動
webkit系ブラウザでしか動作しないのでGoogle Chromeを使用する

→デスクトップに「LWFS_work」と「LWFS_work_output」が作成される

 

LWFSの準備はこれで完了

 

2.flaファイルを変換

 

・デスクトップに作成されたフォルダ「LWFS_work」に新しくフォルダを作り、flaファイルとswfファイルを入れる

自動で変換がかかります

→がエラー発生

 

f:id:uwanosora22:20140813140748j:plain

ロスレスじゃないとダメなのね。

最初に調べておけよという感じですが、念のため別の制限もないか調べてみる。

検索してみると以下の項目が

 

  • 変換に利用するswfはFlashPlayer8
  • FlashPlayer8で不可能なことはできない
  • Flash CC 利用の場合でもFlashPlayer8相当のことしかできません
  • ベクター画像は使用できない
  • シェイプトゥイーンは使用できない
  • サウンドは使用できない
  • ActionScriptはタイムライン制御やイベント発行など一部のみ対応
  • MovieClipのフィルター、レンダリングには対応していない
  • MovieClipのブレンドは加算のみ一部の環境で対応
  • カラー効果「着色」「詳細」一部環境で対応
  • リンケージ名に使用できない文字はシンボル名でも使用不可

↓制限(注意点)は以下サイトから
http://cr.gree.jp/blog/2014/03/1271/

 

とりあえず画像をロスレスに切り替えてパブリッシュして
flaとswfを差し替えてもう一度LWFSを起動する

 

f:id:uwanosora22:20140813141149j:plain

いったっぽい?
「OK??」ってのが気になるけど・・・。

 

 生成されたファイルとフォルダの状態

f:id:uwanosora22:20140813143036j:plain

 

 3.生成されたファイルをUnityで使用する

・lwf.unitypackageをダウンロードしてインポートする

https://github.com/gree/lwf/tree/master/csharp/unity/dist

 

・UnityにLWFSで生成されたファイルを追加

Resourcesフォルダにフォルダごと追加します

f:id:uwanosora22:20140813143338j:plain

 

・再生用のソースを用意する

LWFTest.cs

using UnityEngine;
using System.Collections;

public class LWFTest : LWFObject {
void Start () {
Load("test/effect_sample", "test/");
}
}

 LWFObjectクラスを継承したクラスを生成してStartのファンクション内でLoadする

(※MonoBehaviorから修正する場合はのUpdateをそのまま残しておくと表示されなかったので注意)

 

 ・アニメーション表示用のGameObjectを作成する

空のGameObjectを作る(シーンに追加)

作成したGameObjectにLWFTest.cs」を追加

 

この状態でUnityの再生ボタンを押すとアニメーションが再生できることが確認出来ます。

(ちょうどいいサイズに表示させるにはカメラの設定変更等が必要)

 

再生するだけの演出ならFlashで作ってもらってもいけそうだなと思いましたが

ちょっとDrawCallの値が気になりました。

Atlasとか使えないのかな・・・。

 

とりあえず今回は以上です。

アニメーションの制御等は次回以降にしたいと思います。

 

参考サイトへのリンク

http://cr.gree.jp/blog/2014/05/1465/

http://lwf-users.org/index.php?title=%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8