LoginSignup
4
3

More than 1 year has passed since last update.

JavaScriptでVRMのモデルビューワーを作る[PlayCanvas]

Last updated at Posted at 2019-12-06

※ 2020 1月

現在はこのようなスクリプトで読み込むことができます。

/*jshint esversion: 6, asi: true, laxbreak: true*/

class LoadGlb extends pc.ScriptType {
	initialize () {
		// 1. ローカルのURLからglbファイルをインポートし、モデルを置き換える
		this.app.assets.loadFromUrl(this.url, 'container', (err, asset) => {
			// 2. 現在のモデルコンポーネントを削除
			this.entity.removeComponent('model')

			// 3. リソースを置き換える
			this.entity.addComponent('model', {
				type: 'asset',
				asset: asset.resource.model,
				castShadows: true
			})
            if(asset.resource.animations){
			    this.entity.removeComponent('animation')
		        this.entity.addComponent('animation', {
				    assets: asset.resource.animations
			    })
            }
		})
	}
}

pc.registerScript(LoadGlb)
LoadGlb.attributes.add('url', {
	type: 'string',
	default: 'http://localhost:5000/character3.glb',
})

LoadGlb.attributes.add('castShadows', { type:"boolean", default: true})

    

はじめに

PlayCanvas アドベントカレンダー6日目です!

PlayCanvasとは

PlayCanvasの開発はイギリスのPlayCanvas社(現在はSnapChatのSnap)が行っております。

公式ドキュメントによると

PlayCanvasは、インタラクティブなウェブコンテンツ用のビジュアル開発プラットフォームです。作成するツールとウェブアプリは、どちらもHTML5を使用しています。 プラットフォームはウェブでホストされているため、インストールするものは何もなく、対応されているウェブブラウザを実行する任意のデバイスからアクセスできます。

https://developer.playcanvas.com/ja/user-manual/introduction/

PlayCanvasでVRMのモデルビューワーを作る

1. BlenderでFBXに変換をして表示をする

PlayCanvasではFBXやOBJなどのエディター上でサポートされている形式であればそのまま表示できますのでBlederなどのモデリングツールで変換をする方法があります。現状PlayCanvasでモデリングツールを作る場合にはこの方法を取るとエディター上でVRMのモデルを表示することができます。

VRoid→Blender→PlayCanvasでwebに3Dキャラクターを表示してみる

VRMのモデルを表示する

VRMはglTF2.0という形式がベースとなっており、GLBのモデルを読み込む事ができれば表示できます。

GLTFの読み込めるJavaScriptライブラリ

gltfが読み込めるライブラリは、Three.jsやBabylon.jsなど他にも様々存在します。これからライブラリを選定されている方は、んUnityなどの挙動なども網羅的にまとめられている@cx20さんのこのリポジトリを確認すると良さそうです。
PlayCanvasについてもこちらで比較されています。

lib.PNG

GitHub ★ 120↑ gltf-test

PlayCanvas EditorでVRMを使う

1. PlayCanvasのエディターを使用するためにPlayCanvasに登録

https://playcanvas.jp

2. 自分のプロジェクト一覧にアクセスをする

Projet

  1. https://playcanvas.comにアクセスする
  2. Projectsをクリックする

3. 新規プロジェクトを作成する

  1. NEWボタンから新規プロジェクトを作成する
    new

4. Model Viewer Starter Kitを選択

  • Model Viewer Starter Kit

Model Viewer Starter Kitにはカメラやカメラを操作するスクリプトが最初から入っております。

ModelViewer.PNG

5. シーンの選択画面の説明

作成したモデルビューワーを起動するとこのようなシーンを作成画面が出てきます。

https://blobscdn.gitbook.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-Ln6IBXaqxl-ZPewffQr%2F-LngitHilFlR66-2BNhe%2F-LngitzvlqKuHtkwM4u6%2Fdemostart.png?generation=1567339817366292&alt=media

画面の説明としては以下のようなものになります。

① ここからシーンを選択してプロジェクトの編集ができます
② シーンを追加できます
③ BUILDSでは今までのビルド一覧が見られます
④ PUBLISHではPlayCanvasプロジェクトの公開ができる
⑤ VERSION CONTROLではバージョン管理をできます
⑥ シーンの削除をできます

6. モデルビューワーが表示される

image.png

7. 起動する

作成されたモデルビューワーの起動はLaunchボタンを押すと起動できます。
kidou.PNG

Launchボタンが押されると別タブでPlayCanvasゲームを起動することができます。

起動するとマウスやキーボードを使用してモデルをグリグル見ることの出来るビューワーが作られました。こちらのプロジェクトではデフォルトでマウスとキーボードを使用してモデルをグリグリ操作できるスクリプトが入っています。
kidoudekita.PNG

モデルビューワのモデルをVRMに置き換える

PlayCanvasで現在表示されているモデルをVRMのモデルに置き換える

modelViewer2.PNG

vrmファイルを、glb形式に変更しアップロードしてください。

現状、PlayCanvasではglb形式のファイルをアップロードすることでモデルデータを表示できます。

PlayCanvas開発で参考になりそうな記事の一覧です。 入門 応用 その他の記事はこちらになります。 その他関連 - [PlayCanvasタグの付いた記事一覧](https://qiita.com/tags/playcanvas)

PlayCanvasのユーザー会のSlackを作りました!

少しでも興味がありましたら、ユーザー同士で解決・PlayCanvasを推進するためのSlackを作りましたので、もしよろしければご参加ください!

日本PlayCanvasユーザー会 - Slack

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3