yushimatenjin / playcanvas-vrm

https://github.com/yushimatenjin/playcanvas-vrm-viewer
2 stars 0 forks source link

VRM 0.x 実装 #4

Open yushimatenjin opened 2 months ago

yushimatenjin commented 2 months ago

VRM 0.x 実装

このIssueはPlayCanvasにおけるVRM 0.xサポートの実装についてまとめます。

1 #2 の議論をもとに作成をしてみます。

実装項目

考慮事項

yushimatenjin commented 1 month ago

まだこちら作業中となりますが、MToonの実装についてPlayCanvasのアウトラインの実装について調査と実装を進めさせていただきました。今週末あたりにまとめて別のリポジトリにPushさせていただければと思います!

viewer-001

ビューワー: https://playcanvas-vrm-viewer-eta.vercel.app/viewer


マテリアルの実装について

マテリアルの実装ですが、Materialを拡張することで作成する事ができそうです。 下記のようにマテリアルを作成して利用ができそうです。

import MToonMaterial from "./mtoon-material";

const material = new MToonMaterial();
material.color = new Color(1, 0, 0, 1); // 赤色
material.shadeColor = new Color(0, 1, 0, 1); 

this.entity.render.material = material; // マテリアルをエンティティに設定

Particle Materialの実装を参考にすることができそうです。

シェーダーの実装について

three-vrm-materials-mtoonのリポジトリを参考にシェーダーの実装を進めることができそうです。

実装URL

PlayCanvas MToonマテリアル: https://playcanvas-vrm-viewer-eta.vercel.app/feature-test

マテリアルごとのアウトラインの実装について

meshInstance

マテリアルごとに個別にアウトラインを生成をする場合には、MeshInstancesを作成時にアウトライン用のメッシュとアウトライン用のマテリアルを持つ、MeshInstanceを渡すことができそうです。

アウトライン: https://playcanvas-vrm-viewer-eta.vercel.app/outline