UnityでStandardAssetsをインポートし使った事がある人がほとんどだと思いますが、今回は自分で作った機能をパッケージ化してみたいと思います。
パッケージ化しておけば自分の他のプロジェクトに同じ機能を使おうと思った時にインポートすれば使えますし、
自分の作った機能を他の人に利用してもらう時に便利になります。
なにやら難しい事が始まるんじゃないかと思う人もいるかもしれませんが、非常に簡単です(^_^)v
パッケージにする機能の作成
パッケージ化する前に自前の機能を作成してフォルダにまとめます(特に作る必要もないっちゃないんですが・・・)。
今回パッケージ化するのはキャラクターモデル、モデルにCharacterController、移動スクリプト、AnimatorControllerを取りつけてプレハブ化したもの、キャラクター操作スクリプト、AnimatorController、それらを配置して確認する為のシーンになります。
キャラクター操作スクリプト等を取りつけたキャラクター、床を設置します。
ヒエラルキーが↑のようになります。
シーンを保存し、名前をMySceneとします。
↑が実際の画面です。
床の上に動くキャラクターを配置しMySceneとして保存しているのでパッケージをインポートしてMySceneを開けばすぐに機能を確認出来るようになります。
キャラクターにはCharacterController、移動スクリプト(MyScript)の取り付け、AnimatorにMyAnimatorを設定し、Assetsフォルダにドラッグ&ドロップしプレハブにしておきます。
パッケージ化する
作成したシーン、移動スクリプト、AnimatorController、キャラクターモデル、モデルのテクスチャ、モデルのマテリアル、キャラクター用アニメーション、キャラクターのプレハブを一つのフォルダに集めます(今回はMyPackageフォルダ)。
↑のような感じですね、今回はキャラクターにStandardAssetsのEthanを使っているのでEthanで使用しているテクスチャ、マテリアル、AnimatorControllerで使用しているアニメーションも一緒にパッケージ化する必要があります。
パッケージ化するフォルダを右クリックしExport Package…を選択します。
選択したフォルダ以外も全て表示され選択されている状態になっています。
選択したフォルダのみパッケージ化する場合はInclude dependenciesのチェックを外します。
すると↑のように選択したフォルダのみが表示されます。
Allを押すと全ての表示項目にチェックを入れ、Noneを押すと全てのチェックを外す事が出来ます。
Export…ボタンを押してパッケージを保存したい場所を選択しパッケージの名前を記入し保存します。
これでパッケージ化が終了です。
他のプロジェクトでパッケージをインポートする
簡単な移動キャラクター機能をパッケージ化する事が出来たので他のプロジェクトでそのパッケージをインポートし使ってみましょう。
Assetsフォルダで右クリック→Import Package→Custom Package…を選択します。
先ほど出力したパッケージを選択します。
Unityでパッケージインポート画面が表示されるので、Importボタンを押します。
↑のように自分で作成したパッケージがインポートされました。
しかしキャラクターのEthanを自分のパッケージに組み込んだのでマテリアルの設定等がうまくいっておらずピンク色のEthanになっています。(^_^;)
MyPackageフォルダにあるキャラクターのプレハブにマテリアルを設定します。
↑のEthanBodyとEthanGlassesです。
EthanBodyを選択し、MyMaterialにあるEthan用のマテリアルをドラッグ&ドロップし設定します。
同じようにEthanGlassesにもマテリアルを設定します。
MySceneシーンをダブルクリックしサンプルシーンを開きUnityを実行して確認してみます。
↑のようにパッケージ化した移動キャラクターの動作は問題ないようです。
終わりに
今回はStandardAssetsのEthanのモデルを使ったキャラクターをパッケージ化したのでEthanを構成する要素をパッケージに入れる必要がありました。
その影響でインポートした時にうまく設定が出来ていませんでした。(^_^;)
必要な要素が全て揃っているか確認してからパッケージ化する必要がありますね(当たり前ですが・・・・)。
今回は簡易移動出来るキャラクターをパッケージ化しましたが、エディター拡張機能や単純に自分で作成した便利なスクリプトをまとめただけのものをパッケージ化して利用するのもいいですね。
自分で作成した便利な機能をパッケージ化して配布するのもいいかもしれません。
UnityのAssetStoreで配布するというのもいいかもしれませんね、でも審査があるのかな?
キャラクターモデルやテクスチャ等、自分以外の人が作った物をパッケージに含んで配布する時は著作権の問題があるので気を付けてください(-_-)