greeさんのlwfsのサンプルでアニメーションを再生します。覚書をかねています。

Lwfの導入

導入方法 – LWF Wiki

やりかたは書いてあるとおりですが、LWFS_workフォルダ、LWFS_work_outputフォルダの場所を変更しています。

環境変数の指定場所はOSにより、若干違います。
Windows7なので、コントロールパネル > システム > システムの詳細設定 > 環境変数
OKしてもシステム環境変数は反映されないです。アプリstart.jseの再起動が必要です。

導入がうまくいくと、Flash CS6側に、コマンド > publish for lwfのコマンドが追加されています。

unity側の環境構築として、下記からlwf.unitypackageをダウンロードしてインポートします。

参考:Unity LWFデータの組み込み – LWF Wiki

その上でpublish for lwfで書き出したデータを入れます。

スポンサーリンク

Unity5のLwfでアニメーションを再生

まず基本。2Dゲームに利用しますが、Unity2dでもUnity3dでも一緒だと思われます。

using UnityEngine;
using System.Collections;



public class LWFPlayer : LWFObject {

	void Start () {
		Debug.Log("LWFPlayerスタート");
		// Load(“.bytesファイルのResourcesからのパスと名前(.bytes拡張子除く)”,
		//“テクスチャファイルがあるフォルダのパス(通常、.bytesファイルのパスと同じ)”);
		Load("LWFS_work_examples/01_animated_building", "LWFS_work_examples/");
	}
}
スポンサーリンク

Unity5でLwfの座標の制御

しかし、エラーはでていないけど、シーンビューだけではなく、ゲームビューに何も表示されないのです。どうせカメラの座標がずれているか表示がうまくいっていないんでしょう、とぐぐるべしヾ(。・ω・)ノ゚。

とりあえず、カメラ設定は、ProjectionをOrthographicに。

古い情報にちょっと引きずりまわされましたが(カメラには座標を指定する必要はありません。)、公式サイトにシンプルな回答があり、次のようなコードになりました。

using UnityEngine;
using System.Collections;

[ExecuteInEditMode] //Scene画面でもLWFを描画
public class LWFPlayer : LWFObject {

	void Start () {

		Debug.Log("LWFPlayerスタート");
		// Load(“.bytesファイルのResourcesからのパスと名前(.bytes拡張子除く)”,
		//“テクスチャファイルがあるフォルダのパス(通常、.bytesファイルのパスと同じ)”);
		Load("LWFS_work_examples/01_animated_building", "LWFS_work_examples/");
		//通常はFlashのステージの左上の座標なので、ステージの中心にする
		FitForHeight( (int)Camera.main.orthographicSize * 2 );
	}
}

テストするとき、シーン画面でも描画しないとうまくいっているのかわかりにくいため、[ExecuteInEditMode]を一応追加しました。