Skip to content

Commit

Permalink
Merge pull request vrm-c#417 from vrm-c/update/20240703
Browse files Browse the repository at this point in the history
Update/20240703
  • Loading branch information
ousttrue authored Jul 3, 2024
2 parents f21ab97 + 793bc15 commit 47b3260
Show file tree
Hide file tree
Showing 18 changed files with 310 additions and 272 deletions.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
4 changes: 4 additions & 0 deletions blog/2024-01-05-vrm_application.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 対応Applicationの登録

[こちら](/vrm/showcase)

6 changes: 3 additions & 3 deletions blog/2024-01-12-blog-post.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ https://github.com/vrm-c/vrm.dev/issues/315

[showcase](/showcase)

登録方法は **[こちら](/site/vrm_application)** です。
登録方法は **[こちら](/vrm/showcase)** です。
PullReq じゃなくても issue で受け付けております。
以前に登録済みの方の文言変更などもどうぞ。

## updated: 2024-01-17

- [記事更新](/site/contributing)
- [翻訳](/site/translation)
- [記事更新](/blog/2024/01/01/contributing/)
- [翻訳](/blog/2024/01/02/translation/)

sphinx から docusaurus への変更に付随する作業はこれで完了の予定です。

Expand Down
12 changes: 12 additions & 0 deletions blog/2024-07-03.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
title: 202407
authors: [vrmc]
tags: [maintenance]
---

blog と site をまとめてサイト管理に。

- VRM-1.0 を UniVRM-1.0 に変更。一部 VRM 下に移動。
- VRM Animation を VRM 下に移動。
- VRM-1.0 の SpringBone の記事

File renamed without changes
2 changes: 1 addition & 1 deletion docs/release/112/v0.124.0.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# v0.124.0 FixBlendShapeBake
# 🔥 v0.124.0 FixBlendShapeBake

https://github.com/vrm-c/UniVRM/releases/tag/v0.124.0

Expand Down
7 changes: 7 additions & 0 deletions docs/release/112/v0.125.0.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# 🚧 v0.125.0 bones NullReferenceException

## 🔥 正規化バグ

https://github.com/vrm-c/UniVRM/pull/2339

:::danger `v0.124` BlendShape Bake のバグ
:::

## SkinnedMeshRenderer.bones に null が含まれていてもエクスポートできるようにする

- [Do not throw an exception even if SkinedMeshRenderer.bones contains null. · Issue #2326 · vrm-c/UniVRM · GitHub](https://github.com/vrm-c/UniVRM/issues/2326)
2 changes: 2 additions & 0 deletions docs/release/112/v0.127.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# 🚧 v0.127.0

41 changes: 0 additions & 41 deletions docs/site/vrm_application.md

This file was deleted.

19 changes: 11 additions & 8 deletions docs/vrm/vrm_about.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,18 @@ weight: 1

VRM では「人型」の「キャラクター・アバター」を取り扱うことができます。

- **Unity で VRM ファイルを読み書きする標準実装(UniVRM)が提供されます**
- ➡️ [Download](https://github.com/vrm-c/UniVRM/releases)
- フォーマットは **glTF ベース** なので **クロスプラットフォーム** です。他のゲームエンジンや Web でも取り扱うことが可能です。
- ➡️ [glTF](https://www.khronos.org/gltf/)
- フォーマットは **クロスプラットフォーム****[glTF](https://www.khronos.org/gltf/) ベース** です。ゲームエンジンや Web で取り扱うことが可能です。
- ➡️ [plugins](http://localhost:3000/showcase/?flags=8)
- **Unity で VRM ファイルを読み書きする UniVRM が提供されます**
- ➡️ [UniVRM](https://github.com/vrm-c/UniVRM/releases)

### 内容

- ヒューマノイドを定義しているのでモーションキャプチャーや人型向けの汎用のモーションを再生できます。
- テクスチャやマテリアルなどすべてのデータが1ファイルにまとまり、**簡単に実行時にロード** できます。
- ヒューマノイドを定義し、モーションキャプチャーなどのモーションを再生できます。

- ➡️ 関連して [VRM Animation](/vrma) があります。

- テクスチャやマテリアルも含めたすべてが1ファイルにまとまり、**簡単に実行時ロード** できます。
- 「喜怒哀楽」「瞬き」「あいうえお」といった標準の顔操作が定義されていて以下のようなことができます。
- ユーザー操作で表情を選択
- 音声からリップシンク
Expand Down Expand Up @@ -71,8 +74,8 @@ VR(Virtual Reality)や VTuber などにおいて **「キャラクターや人
- 座標系が異なっていたり (Y-UP, Z-UP, 右手系、左手系)。
- スケールが異なっていたり(メートル単位、cm 単位)。
- 初期姿勢が異なっていたり(T-Pose, A-Pose, Z+向き、Z-向き)。
- 表情の表現方法が異なっていたり(Morph, Bone, 識別方法)。
- 骨(ボーン)の入れ方も状況によって異なっていたり(ボーンの識別方法、親子、リグ)。
- 表情の表現方法が異なっていたり(Morph, Bone, 識別(命名)方法)。
- 骨(ボーン)の入れ方も状況によって異なっていたり(ボーンの識別(命名)方法、親子、リグ)。
- 3D モデルデータを取り扱うフォーマットは、各社各様で仕様が必要以上に複雑であったり、必要な情報が足りなかったりしている。
- 対応ソフトが多い「FBX ファイル」はアプリケーションごとに読めたり読めなかったり。どのアプリケーションのどのバージョンで出力した FBX なのか…というのを気にしたかたも多いと思います。
- ゲームエンジンはアセットとして取り込むことはできても、ランタイムロードは想定されていないことが多い。
Expand Down
57 changes: 39 additions & 18 deletions docs/vrm/vrm_development.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,39 @@ weight: 6

# VRMで開発する

* [programming](/api/)
- [programming](/api/)

## VRMの特徴(開発者的な視点)

* 右手系Y-UPである ➡️ [Coordinate](/api/coordinate)
* メートル単位である ➡️ 1が、1メートルなのか、1cmなのか心配がありません
* 人型モデルでありボーン構成が決まっている ➡️ 汎用の人型モーションやモーションキャプチャーが使いやすい
* 初期姿勢が決まっている(Z-向きのT-Pose) ➡️ TPS的な用途でそのまま使えます
* 初期姿勢で回転・スケールが無いことが保証されている ➡️ 初期姿勢を加味したコードを書く負担が軽減できます
* 初期姿勢でボーンとMeshが重なることが保証されている(スキニングのBind行列に移動しか含まれていない) ➡️ Meshを加工する前にBakeするなどの負担が軽減できます
* 表情・視線操作が統一されている ➡️ [BlendShapeProxy](/api/0_58_blendshape)
* 物理でない揺れものがセットアップ済み ➡️ 物理と干渉せずに揺れるのでゲームのギミックと干渉したり、暴れたりしません
* VRの設定が含まれている ➡️ [FirstPerson](/api/firstperson)
* ライセンス情報が定義されている ➡️ モデルの持ち主の意思にそぐわない使用を回避できます
- `vrm-0.x` `vrm-1.0` 右手系Y-UPである ➡️ [Coordinate](/api/coordinate)
- `vrm-0.x` `vrm-1.0` メートル単位である ➡️ 1が、1メートルなのか、1cmなのか心配がありません
- `vrm-0.x` `vrm-1.0` 人型モデルでありボーン構成が決まっている ➡️ 汎用の人型モーションやモーションキャプチャーが使いやすい
- `vrm-0.x` `vrm-1.0` 初期姿勢が決まっている(`0.x Z-` `1.0 Z+` 向きのT-Pose) ➡️ TPS的な用途でそのまま使えます
- `vrm-0.x` 初期姿勢で回転・スケールが無いことが保証されている ➡️ 初期姿勢を加味したコードを書く負担が軽減できます

:::tip
技術的に VRM-0.X は bake 済みの T-Pose を介して FK の humanoid motion を共有する仕組みです。

T-Pose bake をVrm-0.X 正規化と呼んでいます。

VRM-1.0 は bake しない T-Pose を介して humanoid motion を共有する仕組みです。
そのため異なる T-Pose 同士での retarget 手法を VRM-Animation で補完しました。

- [VRM 1.0](/vrm1)
- [VRM Animation](/vrma)

VRM-1.0 に対応するためには、FK retarget の実装が必要になります。
VRM-0.x(各ボーンの rotation を代入するだけ) に比べて RunTime の実装難易度がやや高くなります。

- [ポーズデータの互換性について](https://github.com/vrm-c/vrm-specification/blob/master/specification/VRMC_vrm_animation-1.0/how_to_transform_human_pose.ja.md)
:::

* `vrm-0.x` 初期姿勢でボーンとMeshが重なることが保証されている(スキニングのBind行列に移動しか含まれていない) ➡️ Meshを加工する前にBakeするなどの負担が軽減できます
* `vrm-1.0` 初期姿勢でボーンとMeshが重なることが保証できない。Bind行列に制限を課すことができなかった。
* `vrm-0.x` `vrm-1.0` 表情・視線操作が統一されている ➡️ [BlendShapeProxy](/api/0_58_blendshape)
* `vrm-0.x` `vrm-1.0` 物理でない揺れものがセットアップ済み ➡️ 物理と干渉せずに揺れるのでゲームのギミックと干渉したり、暴れたりしません
* `vrm-0.x` `vrm-1.0` VRの設定が含まれている ➡️ [FirstPerson](/api/firstperson)
* `vrm-0.x` `vrm-1.0` ライセンス情報が定義されている ➡️ モデルの持ち主の意思にそぐわない使用を回避できます

従来のゲーム開発のようにプロジェクトにアセットとして作り込むというよりは、
ランタイムにロードして動かす、という用途が想定されます。
Expand All @@ -30,23 +49,25 @@ weight: 6
UniVRM は Asset(Prefab) を作成せずに、シーン上に直接 GameObject を作ります。
ロードした GameObject は、Instanciate した Prefab と同様に扱うことができます。

* [runtime load](/api/runtime-import)
- [runtime load](/api/runtime-import)

## UniVRMで ランタイムエクスポートする

ランタイムで UniVRM の エクスポート機能 を使うことができます。
この機能を使って、キャラクタークリエーションツール を実装することができます。

* [samples](/api/sample/)
- [samples](/api/sample/)

`Assets/VRM.Samples/Scenes/VRMRuntimeExporterSample.unity`

が例です。

## UniVRM以外の実装

* https://github.com/ruyo/VRM4U
* https://github.com/saturday06/VRM_IMPORTER_for_Blender
* https://github.com/virtual-cast/babylon-vrm-loader/
* https://github.com/pixiv/three-vrm/
* https://github.com/V-Sekai/godot-vrm
[showcase](http://localhost:3000/showcase/?flags=8)

- https://github.com/ruyo/VRM4U
- https://github.com/saturday06/VRM_IMPORTER_for_Blender
- https://github.com/virtual-cast/babylon-vrm-loader/
- https://github.com/pixiv/three-vrm/
- https://github.com/V-Sekai/godot-vrm
2 changes: 2 additions & 0 deletions docs/vrma/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ VRM アニメーションを利用することで、人型モデルに対する

## VRM アニメーションが使えるアプリケーション

[showcase](/showcase/?flags=2)

:::warning

VRM アニメーションの仕様を検討するにあたり、多くのアプリケーションに draft 仕様への対応にご協力いただきました。VRM アニメーション仕様は正式リリースされたばかりです。draft 版に対応したアプリケーションを利用する場合、正式版の仕様と動作が異なったり、想定通りの動作をしない場合があります。
Expand Down
26 changes: 7 additions & 19 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,18 +74,6 @@ const config: Config = {
sidebarId: "vrmSidebar",
position: "left",
},
{
label: "VRM-1.0",
type: "docSidebar",
sidebarId: "vrm1Sidebar",
position: "left",
},
{
label: "🎉VRM Animation🎉",
type: "docSidebar",
sidebarId: "vrmaSidebar",
position: "left",
},
{ to: "/showcase", label: "ShowCase", position: "left" },
// {
// label: "UniVRM-1.0",
Expand All @@ -99,13 +87,18 @@ const config: Config = {
sidebarId: "univrmSidebar",
position: "left",
},
{
label: "UniVRM-1.0",
type: "docSidebar",
sidebarId: "vrm1Sidebar",
position: "left",
},
{
label: "glTF",
type: "docSidebar",
sidebarId: "gltfSidebar",
position: "left",
},
{ to: "/blog", label: "Blog", position: "left" },
//
{
label: "UniVRM-API",
Expand All @@ -120,12 +113,7 @@ const config: Config = {
sidebarId: "releaseSidebar",
position: "right",
},
{
label: "Site",
type: "docSidebar",
sidebarId: "siteSidebar",
position: "right",
},
{ to: "/blog", label: "Site", position: "right" },
{
type: "localeDropdown",
position: "right",
Expand Down
Loading

0 comments on commit 47b3260

Please sign in to comment.