Unityで一つの機能をパッケージ化し他のプロジェクトで使用する

UnityでStandardAssetsをインポートし使った事がある人はほとんどだと思いますが、今回は自分で作った機能をパッケージ化してみたいと思います。

パッケージ化しておけば自分の他のプロジェクトに同じ機能を使おうと思った時にインポートすれば使えますし、

自分の作った機能を他の人に利用してもらう時に便利になります。

なにやら難しい事が始まるんじゃないかと思う人もいるかもしれませんが、非常に簡単です(^_^)v

スポンサーリンク

パッケージにする機能の作成

パッケージ化する前に自前の機能を作成してフォルダにまとめます(特に作る必要もないっちゃないんですが・・・)。

今回パッケージ化するのはキャラクターモデル、モデルにCharacterController、移動スクリプト、AnimatorControllerを取りつけてプレハブ化したもの、キャラクター操作スクリプト、AnimatorController、それらを配置して確認する為のシーンになります。

キャラクター操作スクリプト等を取りつけたキャラクター、床を設置します。

パッケージ化するオブジェクト

ヒエラルキーが↑のようになります。

シーンを保存し、名前をMySceneとします。

パッケージ化するサンプルシーン

↑が実際の画面です。

床の上に動くキャラクターを配置しMySceneとして保存しているのでパッケージをインポートしてMySceneを開けばすぐに機能を確認出来るようになります。

キャラクターにはCharacterController、移動スクリプト(MyScript)の取り付け、AnimatorにMyAnimatorを設定し、Assetsフォルダにドラッグ&ドロップしプレハブにしておきます。

パッケージ化するキャラクターのインスペクタ

パッケージ化する

作成したシーン、移動スクリプト、AnimatorController、キャラクターモデル、モデルのテクスチャ、モデルのマテリアル、キャラクター用アニメーション、キャラクターのプレハブを一つのフォルダに集めます(今回はMyPackageフォルダ)。

パッケージ化する物をフォルダにまとめる

↑のような感じですね、今回はキャラクターにStandardAssetsのEthanを使っているのでEthanで使用しているテクスチャ、マテリアル、AnimatorControllerで使用しているアニメーションも一緒にパッケージ化する必要があります。

パッケージ化するフォルダを右クリックしExport Package…を選択します。

Export Packageを選択する

選択したフォルダ以外も全て表示され選択されている状態になっています。

すべてのフォルダ階層が表示される

選択したフォルダのみパッケージ化する場合はInclude dependenciesのチェックを外します。

Include dependenciesのチェックを外す

すると↑のように選択したフォルダのみが表示されます。

Allを押すと全ての表示項目にチェックを入れ、Noneを押すと全てのチェックを外す事が出来ます。

出力する先を決めてExportする

Export…ボタンを押してパッケージを保存したい場所を選択しパッケージの名前を記入し保存します。

これでパッケージ化が終了です。

他のプロジェクトでパッケージをインポートする

簡単な移動キャラクター機能をパッケージ化する事が出来たので他のプロジェクトでそのパッケージをインポートし使ってみましょう。

Assetsフォルダで右クリック→Import Package→Custom Package…を選択します。

パッケージをインポートする

先ほど出力したパッケージを選択します。

インポートするパッケージを選択する

Unityでパッケージインポート画面が表示されるので、Importボタンを押します。

パッケージインポート画面

パッケージがインポートされた

↑のように自分で作成したパッケージがインポートされました。

マテリアルが設定されていない

しかしキャラクターのEthanを自分のパッケージに組み込んだのでマテリアルの設定等がうまくいっておらずピンク色のEthanになっています。(^_^;)

MyPackageフォルダにあるキャラクターのプレハブにマテリアルを設定します。

Ethanの体とサングラスにマテリアルを設定

↑のEthanBodyとEthanGlassesです。

Ethanの体にマテリアルを設定

EthanBodyを選択し、MyMaterialにあるEthan用のマテリアルをドラッグ&ドロップし設定します。

Ethanのサングラスにマテリアルを設定

同じようにEthanGlassesにもマテリアルを設定します。

MySceneシーンをダブルクリックしサンプルシーンを開きUnityを実行して確認してみます。

インポートしたパッケージの機能が問題なく動作した

↑のようにパッケージ化した移動キャラクターの動作は問題ないようです。

終わりに

今回はStandardAssetsのEthanのモデルを使ったキャラクターをパッケージ化したのでEthanを構成する要素をパッケージに入れる必要がありました。

その影響でインポートした時にうまく設定が出来ていませんでした。(^_^;)

必要な要素が全て揃っているか確認してからパッケージ化する必要がありますね(当たり前ですが・・・・)。

今回は簡易移動出来るキャラクターをパッケージ化しましたが、エディター拡張機能や単純に自分で作成した便利なスクリプトをまとめただけのものをパッケージ化して利用するのもいいですね。

自分で作成した便利な機能をパッケージ化して配布するのもいいかもしれません。

UnityのAssetStoreで配布するというのもいいかもしれませんね、でも審査があるのかな?

キャラクターモデルやテクスチャ等、自分以外の人が作った物をパッケージに含んで配布する時は著作権の問題があるので気を付けてください(-_-)

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます