ユニパラ向けにユーザーモデルをセットアップする方法について解説します。
ユーザーモデル作成前に、アプリの利用規約を熟読して守って頂きますようお願いします。
ユーザーモデルはUnityのアセットバンドル形式となります。
Unity上でモデルをセットアップする必要があります。
■モデルセットアップに必要な物
・Unity3D 2017.2(無料でダウンロード、セットアップできます)
・Unity3D使用の基本知識
・3Dモデル
・ファイルアップロードできるWebサーバー(dropboxはファイル毎にアドレスが違うので不可)
1.Unity3Dをダウンロードする
Unity3Dがインストールされてない人はダウンロードしてください。
https://unity3d.com/jp/get-unity/download/archive
アプリは2017.2で作成されているのでUnity2017.2をダウンロードしてください。
Unityはパーソナルプランなら無料で使用できます。
2.GitHubからユニパラモデルSDKをダウンロードする
GitHubの↓のページからユニパラモデルSDKをダウンロードします。
https://github.com/umiyuki/UniparaModelSDK
ページのClone or DownloadからDownload Zipを選んでダウンロードしたzipを解凍してください。
Unityを起動してOpen→zipファイルの中のディレクトリを開いてください。
必須では無いですが、Build SettingsからビルドプラットフォームをiOSに変更しておくのがオススメです。
3.モデルを用意する
説明のためここではニコニ立体ちゃんをダウンロードしてセットアップする事にします。
↓のページからモデルをダウンロードします。
http://3d.nicovideo.jp/works/td14712
Alicia.zipの中のAlicia.unitypackageをUnityにドロップしてインポートします。
この時点で遺憾ながらニコニ立体ちゃんのスクリプトでエラーが出てしまいました。
ニコニ立体ちゃんのスクリプトは今回の作業に必要無いのでAlicia/Scriptのフォルダごと削除しましょう。
プロジェクトビューのAlicia/Prefabs/Alicia_solidをシーンに配置します。足元に座標(0,0,0)が来るように、シーンのAlicia_solidのPositionを(0,0,0)に設定します。
・モデル説明の追加
シーンに配置した一番親のオブジェクト(今回の場合Alicia_solid)に、ModelDescriptionコンポーネントを貼り付けます。
各項目を入力します。
・Model Name → モデルの名称
・Model Owner → モデル制作者
・Model Version → モデルのバージョン
・Dopyright → 必要なコピーライト表記(スクリーンショット撮影時に画面左下に表示されます)
・表情変更機能の設定
この設定は任意ですが、モデルの表情変更機能を使いたい人は設定してください。
モデルの親オブジェクトに、ModelExpressionコンポーネントを貼り付けます。
Target Skinned Mesh Rendererには表情を変更したいSkinned Mesh Rendererを設定します。
今回はAlicia_solid/faceをドロップします。
最初にデフォルトの表情を設定に追加します。
Model Expressionコンポーネントの右上の歯車をクリックして、AddNowMorphParamを選択します。
List Morp Paramに要素が追加されるので、デフォルトの表情という事で、Nameに”デフォルト”(なんでもいいです)と入力してください。
faceオブジェクトのSkinned Mesh RendererコンポーネントのBlendShapesの値を変更して好きな表情を作ってください。
表情ができたらまたModel ExpressionからAddNowMorphParamする事で現在の表情が追加されます。
ClearModelMorphを選択すれば現在の表情パラメータをリセットできます。
これを繰り返して好きな数の表情を設定すれば表情設定は完了です。
・ポーズ機能の設定
この設定も任意ですが、ポーズ機能を使いたい人は設定してください。
モデルの親オブジェクトに、Simple Animationコンポーネントを貼り付けてください。
アニメーション形式はGenericでもHumanoidでもかまいませんが、ニコニ立体ちゃんにはアニメーションが内蔵されてないので、他から持ってきたHumanoid形式のアニメーションを設定する事にします。
アニメーションは何でもいいですが今回はさしあたってAssets→Import Package→Charactersをインポートします。
プロジェクトビューのAlicia/Models/Alicia_solidを選んでImport SettingsのRigタブからAnimation TypeをGenericからHumanoidに変更します。
Simple AnimationコンポーネントのAnimationの項目にHumanoidのアニメーション(例:Standard Assets/Characters/ThirdpersonCharacter/HumanoidIdle/HumanoidIdle)を設定します。これはデフォルトのアニメーションになります。
AnimationsのSizeに設定したいアニメーションの数を入力して、それぞれアニメーションの名前とアニメーションクリップを設定すれば、設定完了です。
・視線機能の設定
この設定も任意ですが、視線機能を使いたい人は設定してください。
モデルの親オブジェクトに、Look At Cameraコンポーネントを貼り付けてください。
これだけで設定終了です。
ただし、このコンポーネントはHumanoid形式のモデルでないと機能しません。
・フォロー機能の設定
この設定も任意ですが、フォロー機能を使いたい人は設定してください。
モデルの親オブジェクトに、Follow Meコンポーネントを貼り付けてください。
Idle Animation、Walk Animationの項目にそれぞれ待機、歩行アニメーションを設定してください。
これらのアニメーションはループアニメーションである必要があります。
・アセットバンドルのビルド
モデルの設定が完了したらいよいよアセットバンドルをビルドします。
シーン上のセットアップされたAlicia_solidをプロジェクトビューにドロップしてプレハブにします。
UnityのメニューのCustom→CreateAssetBundleを選択すると、Create Asset Bundleウインドウが表示されます。
Targetsにプレハブ化したAlicia_solidを設定します。
Encryptにチェックを付けるとアセットバンドルが暗号化されます。
暗号化しない場合は生のUnityアセットバンドルになるので他のアプリなどで流用されてしまう可能性があります。(暗号化しても絶対安全とは限りません)
Createボタンを押すとビルドが始まります。
Output/iOSの下にalicia_solidとalicia_solid.checkという2つのファイルができています。
この2つのファイルをサーバにアップロードします。
alicia_solid.metaやalicia_solid.check.metaというファイルもありますが、これはアップロードする必要はありません。
AssetBundles/iOSの下にも色々できてますが、そっちは要らないので削除してかまいません。
・アセットバンドルのアップロード
Webサーバの同じディレクトリにalicia_solid(アセットバンドル本体)とalicia_solid.check(更新確認用ファイル)をアップしてください。
・QRコードの生成
アップしたモデルのURLを直接入力してもダウンロードできますが、QRコードからURLを読み取れれば便利です。
Unityに戻ってメニューのCustom→CreateQRCodeを選択すると、Create QRCodeウインドウが開きます。
URLにアセットバンドルまたはチェックファイルのURLを入力してCreateボタンを押せば、QRCodeOutputフォルダにQRコード画像ができています。
アプリからオプション→追加モデルダウンロード→QRコードからURL読み取りを選んでカメラでQRコードを読み取ると、URLが入力されるので、ダウンロード実行をすればモデルがダウンロードできます。
無事に表示できました。
表情機能、ポーズ機能、目線機能、フォロー機能の動作を確認してください。
・QRコードの公開
動作確認出来たらtwitterやブログにQRコードをアップしてシェアしましょう!
二次配布が禁止されてるモデルはシェアしてはいけません。
利用規約を守ってアプリを使ってください。