モデルの差し替え - noonworks/a-l2d GitHub Wiki
使用できるモデルについてを確認し、モデルのデータをエクスポートしておきます。
以降では以下の MyModel
モデルを例に解説します。
MyModel : モデル1つに1つのフォルダを作る
│
├─MyModel.512 : テクスチャ画像フォルダ
│ └─texture_00.png : テクスチャ画像
│
├─MyModel.moc3 : モデル情報ファイル
├─MyModel.model3.json : モデル情報ファイル
├─MyModel.cdi3.json : モデル情報ファイル
│
├─MyModel_wait.motion3.json : モーションファイル(使いたい数だけ、好きな名前)
│ ...
└─MyModel_click.motion3.json
用意したサーバーの assets
フォルダに、 MyModel
フォルダをアップロードします。
assets
フォルダは以下のようになります。
assets
├─Haruto : サンプルモデル(1)
├─Koharu : サンプルモデル(2)
└─MyModel : 追加したフォルダ
モデルをどこに表示するか、モーションをどの順番で表示するかなどの設定ファイルを作成します。
サンプルの設定をコピーし、必要な部分を書き換えて使用します。
- デモフォルダ内の
Haruto.json
をコピーし、MyModel.json
を作ります。 - 後述の説明を見ながら、必要な部分を書き換えます。
{
"models": [
{
"id": "MyModel",
"x": 0.5,
"y": 0.5,
"assets": {
"model3": "assets/MyModel/MyModel.model3.json",
"motion1": "assets/MyModel/MyModel_01.motion3.json",
"motion2": "assets/MyModel/MyModel_02.motion3.json",
"motion3": "assets/MyModel/MyModel_03.motion3.json",
"motion4": "assets/MyModel/MyModel_04.motion3.json"
},
"motions": {
"basic": {
"order": "random",
"values": ["motion2", "motion3", "motion4"]
},
"click": {
"order": "random",
"values": ["motion1"]
}
}
}
]
}
モデルの名前を書き換えます。例:MyModel
モデルの表示位置を決めるパラメーターです。通常は、x
とy
のどちらも0.5
にします。
デモ用サンプルでは、Haruto と Koharu のモデルを横に並べるために、x
の値を変更しています。
この値は、実際にモデルを表示できるようになってから微調整するといいでしょう。
モデル情報ファイルの場所や、モーションファイルの場所を設定します。
-
"model3"
:.model3.json
の場所を設定します。ファイル名を書き換えれば OK です。 -
"motion1"
~"motion4"
: モーションファイルの場所を設定します。- モーションが多い場合は、
"motion5"
、"motion6"
……と増やします。 - モーションが少ない場合は、余った項目を削除します。
- 最後の 1 つ以外は、末尾に
,
をつけるのを忘れないようにしてください。
- モーションが多い場合は、
どのモーションをいつ表示するか設定します。
待機時(何もないとき)のモーションを指定します。
- 16 行目:
"order"
モーションを表示する順番の設定です。以下の 3 種類が設定できます。-
"random"
: モーションのリストからランダムに再生します。(同じものが何連続もする可能性があります) -
"order"
: モーションのリストに書かれた順番で再生し、ループします。 -
"unique-random"
: モーションのリストから重複しないようにランダムに再生し、ループします。
-
- 17 行目:
"values"
モーションのリストです。"assets"
に指定したモーションの番号を使って指定します。- 例:
["motion2", "motion3", "motion4"]
で、3 つのモーションを指定します。 - 例:
["motion2"]
で、1 つのモーションを指定します。
- 例:
画面がクリック(タップ)された時のモーションを指定します。
- 20 行目:
"order"
モーションを表示する順番の設定です。以下の 3 種類が設定できます。-
"random"
: モーションのリストからランダムに再生します。(同じものが何連続もする可能性があります) -
"order"
: モーションのリストに書かれた順番で再生し、ループします。 -
"unique-random"
: モーションのリストから重複しないようにランダムに再生し、ループします。
-
- 21 行目:
"values"
モーションのリストです。"assets"
に指定したモーションの番号を使って指定します。- 例:
["motion2", "motion3", "motion4"]
で、3 つのモーションを指定します。 - 例:
["motion2"]
で、1 つのモーションを指定します。 - 例:
[]
で、0 個のモーションを指定=クリック時にはなにもしないと設定します。
- 例:
用意したサーバーに MyModel.json
をアップロードします。
demo.html
ファイルを編集します。
HTML ファイル内でモデルの設定をしているのは以下の部分です。
<a-marker preset="hiro" changeMatrixMode="modelViewMatrix">
<a-l2d src="Haruto.json" id="back"></a-l2d>
<a-l2d src="Koharu.json" position="0 1 0" id="front"></a-l2d>
</a-marker>
この部分を以下のように書き換えます。
(サンプル用のHaruto
を削除し、MyModel
を追加しています)
<a-marker preset="hiro" changeMatrixMode="modelViewMatrix">
<a-l2d src="MyModel.json"></a-l2d>
<a-l2d src="Koharu.json" position="0 1 0" id="front"></a-l2d>
</a-marker>
用意したサーバーに書き換えた demo.html
を上書きアップロードします。
- PC でデモ用マーカーにアクセスし、マーカーを表示します。
- スマートフォンやタブレットで、アップロードしたページにアクセスします。
(https://(自分のURL)/demo.html
) - カメラでマーカーを映し、動作を確認します。
- 3 ~ 7 を繰り返して、モデルの位置やモーションの設定を調整します。
- お好みで
demo.html
のファイル名を変更し、URL を変更します。
Node.js がわかる人向け:
npm run serve:web
を実行すると docs
ディレクトリをローカルサーバーでホストし ngrok
を使って一時的なアドレスを取得して公開します。そのままテストに使用できます。