MkItYs

MkItYs > 音楽・漫画・VR・自律制御 > 

images

簡易なMRによるキャラメイクとアニメーション作成:VaM, VaM (Timeline) , SteamVR, ALVR/ALXR

images

細かい作業を行えるデスクトップ画面と、直観的に操作できるVRーーこれにパススルーを加え、簡易なMRによるキャラメイクとアニメーション作成を体験します。


このツール自体は、じっさいの制作に役立つものではありませんーーこういう制作環境があれば、これだけの体験ができる、ということを示すものです。
このページの内容は一般向けですが、ツールの一部に成年向けのアプリを使っていますーーその技術上の理由や倫理上の問題(MODの是非などもふくめ)は、次に記載しています:
VRによるキャラメイクと、成年向けアプリ:VaM, CM3D2/COM3D2, HS, Koikatu, EmoCre

関連


VaM でアニメ調の表現(トゥーンレンダリング/セルルック):VaM (Anime/Cell Effect)
PC向けのVRアプリを、スタンドアロンのHMDで体験させる:Quest 2, Oculus, ALVR/ALXR, Virtual Desktop
擬似的なパススルー:Quest 2, ALVR/ALXR

概要


3D制作アプリ(Blender )やゲームエンジン(Unity )では、MRによる造形はまだ限定的なものにとどまりますーーこれはツール側が、編集時のVR対応を基本的に想定していないためです。

VRに特化したキャラクタのサンドボックスアプリのひとつに、「VaM 」がありますーーキャラにはDAZ のモデルが使われ、Unity からビルドされているので、それらの知見を流用できますーーこの仕様から、VR空間でのキャラメイクやアニメーション作成が容易になっています。

VaM は成年向けのアプリですが、ツールそのものは用途を限定するものではないので、ここではこれを使って簡易なMRによる造形を体験します。

導入


アニメーションの作成は、次の作者によるプラグインを使います:

https://hub.virtamate.com/resources/timeline.94/

手順


MRによるキャラメイク(リアル調)[※2]
MRによるアニメーション作成(リアル調)[※2]
MRによるキャラメイク(アニメ調)[※3]
MRによるアニメーション作成(アニメ調)[※3]
※1
このMRの試みでは、キャラがプレイヤ(利用者自身)の方向を向きませんーーVR時にデスクトップモードを選択すると、「プレイヤ」はデスクトップ側のカメラになるためですーーたとえば次のようなスクリプトをプラグインにすることで、MR時でも、VR側のカメラをプレイヤにすることができます(LookATを使うこともできますが、Gazeを使う方が自然でしょうしーーなお、このスクリプトを安全に使うためには、名前空間を指定すべきです):
using UnityEngine;

public class <plugin_name>: MVRScript {
  private Atom tgtlgh;
  private Camera tgtslf;
  void Start() {
    tgtlgh = containingAtom;
    tgtslf = SuperController.singleton.lookCamera;
  }
  void Update() {
    tgtlgh.mainController.transform.position = tgtslf.transform.position;
    tgtlgh.mainController.transform.rotation = tgtslf.transform.rotation;
  }
}
※2
この3Dモデルの服は、次の作者から提供されています:
https://www.patreon.com/wunderwise/membership
※3
この3Dモデルは、次の作者から提供されていますーーただしファンアート系のモデルなので、デザインのオリジナルは、次の作品にあります(3Dのモデリングは作者自身によるものですーーとはいえ、提供先の利用形態は容易に推測できるので、作品ごとの利用規約には則っていない可能性があります):
https://www.patreon.com/wunderwise/membership
C]
アンジェラ(聖剣伝説3/スクウェア)

効果


このアプリはキャラクタに物理演算を実装しているので、自然なモノどうしの相互作用をアニメーションで表現できます(空間における排他性や、ぶつかったときの摩擦・反動、など)ーーとはいえ、この物理演算はたんにオブジェクト(アトム)を空間に貼りつけているだけなので、重力による重みなどの表現は、アニメーションのモーションで表現するしかありませんが。[※1][※2]


※1
物理演算の効いた(ダイナミクスの)ボーンは、(通常のアニメーションの手法である)キネマティクスで動かすことはできませんーーこのアプリでは、対象のボーンをスプリングジョイントなどでキネマティクスのハンドルと結びつけ、そのハンドルを動かすことで、間接的にボーンに力を加えていると予想されますーーしたがって関節の動きも、FK/IKといったものではなく、ボーン間のジョイントの設定によるもののはずです。
※2
それを解決する手段のひとつが、自律制御(進化計算や強化学習)です。