• Stars
    star
    464
  • Rank 94,450 (Top 2 %)
  • Language
    C#
  • License
    MIT License
  • Created over 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

VRM Software for Windows to move avatar with minimal devices.

English Readme

Logo

Logo: by @otama_jacksy

v3.2.2

  • 作成: 獏星(ばくすたー)
  • 2023/06/28

WindowsでVRMを表示し、追加のデバイスなしで動かせるアプリケーションです。

  1. できること
  2. ダウンロード
  3. 質問など
  4. (開発者向け)ビルド手順
  5. OSS等のライセンス
  6. ローカリゼーションについて

1. できること

  • VRMを読み込み、キャラクターの上半身を表示します。
  • キーボードとマウス操作をモーションとして反映します。
  • 可変のクロマキーが適用できます。

キーボードとマウス操作のみでキャラクターが動く特徴から、以下のシチュエーションで活躍します。

  • 機材の準備が面倒な時の配信
  • ライブコーディング中の賑やかし
  • デスクトップマスコット

2. ダウンロード

Boothから取得可能です。

Windows 10/11環境でお使いいただけます。

操作方法についてはマニュアルをご覧下さい。

3. 質問など

4. (開発者向け)ビルド手順

4.1. レポジトリの配置

適当なフォルダに本レポジトリを配置します。配置先について、空白文字を含むようなフォルダパスは避けて下さい。

Unity 2020.3系でUnityプロジェクト(本レポジトリのVMagicMirrorフォルダ)を開き、Visual Studio 2022でWPFプロジェクトを開きます。

メンテナの開発環境は以下の通りです。

  • Unity 2020.3.22f1 Personal
  • Visual Studio Community 2022 (17.0.0)
    • 「.NET Desktop」コンポーネントがインストール済みであること
    • 「C++によるデスクトップ開発」コンポーネントがインストール済みであること
      • UnityのBurstコンパイラ向けに必要なセットアップです。

4.2. アセットの導入

FinalIK, Dlib FaceLandmark Detector, OpenCV for Unityの3つは有償アセットであることに注意してください。

NuGetForUnityNAudioを導入するために使用しています。

"Fly,Baby." および "LaserLightShader"はBOOTHで販売されているアセットで、ビルドに必須ではありませんが、もし導入しない場合、タイピング演出が一部動かなくなります。

Dlib FaceLandmark Detectorについては、アセットに含まれるデータセットをStreamingAssetsフォルダ以下に移動します。導入にあたっては、Dlib FaceLandmark Detector本体のサンプルプロジェクト(WebCamTextureExample)を動かすなどして、ファイルが正しく置けているか確認します。

SharpDXは次の手順で導入します。

  • 2つのNuGetギャラリーのDownload packageから.nupkgファイルを取得し、それぞれ.zipファイルとして展開します。
  • 展開したzip内のlib/netstandard1.3/フォルダにそれぞれSharpDX.dllおよびSharpDX.DirectInput.dllがあるので、これらをUnityプロジェクト上の適当な場所に追加します。

RawInput.Sharpもほぼ同様の導入手順です。

  • NuGetギャラリーから取得した.nupkgを展開し、中のlib/netstandard1.1/RawInput.Sharp.dllを取得します。
  • 取得したDLLを、Unityプロジェクト上でAssets以下にRawInputSharpというフォルダを作り、その下に追加します。

OpenCVforUnityについては導入後、DisposableOpenCVObject.csを次のように書き換えます。

    abstract public class DisposableOpenCVObject : DisposableObject
    {

//        internal IntPtr nativeObj;
        //Change to public member
        public IntPtr nativeObj;

以上のほか、手作業での導入は不要ですが、Unity Package Managerで下記を参照しています。

特に初回にプロジェクトを開くとコンパイルエラーになります。これを解決するにはNuGetForUnityの導入後にNAudioLipSyncContext.cs冒頭の#defineのコメントアウトを解除し、一時的にコンパイルエラーを抑制します。 するとNAudioがNuGetから取得できます。取得後、#defineの行をコメントアウトすることで、リップシンクが有効な状態になります。

//下記を一旦コメントアウト解除したのち、ふたたびコメントアウトする
#define TEMP_SUPPRESS_ERROR

4.3. ビルド

4.3.1. コマンドラインからビルドする

Batchesフォルダ内のコマンドからビルドが可能です。 バッチファイル等の引数の指定方法については、ファイル内のコメントを参照して下さい。

Unityについては諸々のアセットを導入済みであることが必要なこと、およびbuild_unity.cmdで厳格にUnityバージョンが指定されていることに注意して下さい。 2021/11/18時点では2020.3.22f1をビルドに使用しています。 事情があって異なるバージョンのUnityエディタを用いる場合は、build_unity.cmd内のUnityのパスを修正します。

また、create_installer.cmdを使用するにはInno Setupのインストールが必要です。

# WPFプロジェクトをビルド
build_wpf.cmd standard dev

# Unityプロジェクトをビルド
build_unity.cmd standard dev

# WPF/Unityプロジェクトをビルド後に呼ぶことでインストーラを作成
create_installer.cmd standard dev v1.2.3

# version.txtに書いてあるバージョン値を用いて、ビルドおよびインストーラの作成までを実行
job_release_instraller.cmd

4.3.2. プロジェクトを開いてビルドする

Binなど、出力先フォルダを準備します。以下はフォルダ名がBinである想定での説明ですが、他のフォルダ名でも構いません。

  • Unityでのビルド時にはBinフォルダを指定します。
  • WPFでのビルドでは、VMagicMirrorConfigプロジェクトを右クリックし、発行を指定してフォルダ上にアプリケーションを配置します。
    • プロファイル設定は次のようにします。
      • 構成: Release | x86
      • ターゲットフレームワーク: netcoreapp3.0
      • 配置モード: 自己完結
      • ターゲットランタイム: win10-x86
      • ターゲットの場所: PC上の適当なフォルダ
    • 上記の設定で発行すると、ターゲットのフォルダ上にVMagicMirror.exeを含むファイル群が出力されます。これらのファイルをBin/ConfigApp/以下にコピーします。

フォルダ構成を確認したい場合、実際に配布されているVMagicMirrorも参考にしてください。

5. OSS等のライセンス

5.1. OSSライセンス

GUI中でOSSライセンスを掲載しており、その文面は下記ファイルで管理しています。

https://github.com/malaybaku/VMagicMirror/blob/master/WPF/VMagicMirrorConfig/VMagicMirrorConfig/Resources/LicenseTextResource.xaml

過去に使用したものも含むライセンス情報は以下に記載しています。

https://malaybaku.github.io/VMagicMirror/credit_license

5.2. ゲームパッドモデルについて

このレポジトリに含まれるGamepad.fbxは #616 に於いて導入しており、Attribution 4.0 International (CC BY 4.0)に従います。

作成者: Negyek

VMagicMirrorでは元モデルに対し、他のデバイスとの一貫性を保つためにマテリアルを適用しているほか、カスタマイズのためにテクスチャを変更可能にしています。

6. ローカリゼーションについて

日本語、英語以外のローカリゼーションでのContributionに興味がある場合、about_localization.mdを参照して下さい。

More Repositories

1

AnimationClipToVrmaSample

Sample Project to Convert AnimationClip to VRM Animation (.vrma) in Unity
C#
44
star
2

WindForVRM

Sample repository to introduce wind effect for VRM.
C#
17
star
3

ShachikuChanTyping

C#
15
star
4

harriet

open source desktop mascot.
C#
13
star
5

VMagicMirror_MotionExporter

Utility to export humanoid motion data, especially for VMagicMirror.
C#
12
star
6

BakuLibQiDotNet

.NET Wrapper for Aldebaran's Qi Framework
C#
9
star
7

VMagicMirrorConfig

Configuration application for VMagicMirror.
C#
8
star
8

QumarionDotNet

.NET(C#) wrapper for Qumarion SDK
C#
5
star
9

KinectForPepper

Softwares to drive Softbank Pepper with Microsoft Xbox One Kinect Sensor
C#
5
star
10

BakuIrasutoyaPpt

PowerPoint Add-in to use images by Irasutoya.
C#
4
star
11

SynchroGazerTypeB

Desktop application to use the mouse by your eyes, with the eye tracking device.
C#
4
star
12

DesktopIconGetExample

Sample project to show how to get the icon name and bound in Windows.
C#
4
star
13

RawInputSharpUnity

Wrapper library for RawInput.Sharp to use on Unity.
C#
3
star
14

KuinStudio

Kuin Language support for Visual Studio.
C#
3
star
15

QumarionForMMM

MikuMikuMoving向けのQUMARIONプラグインです。
C#
2
star
16

MagicMirror

Remote control client for Nao and Pepper.
C#
2
star
17

BakuLibqiDotNetDoc

Documentation for Baku.LibqiDotNet project
1
star
18

QumarionSamplesForUnity

Sample scripts to use QumarionDotNet on Unity
C#
1
star
19

PinArtBox

Application example to show the web camera image as if it is PinArt on Looking Glass
C#
1
star
20

LibqiDotNetAnimatedSaySample

A sample for using LibqiDotNet, for low-layer API access.
C#
1
star
21

T5_4_V

Example repository to use Tobii Eye Tracker 5 for avatar head and eye motion in Unity, with VRM.
C#
1
star
22

PokemonGoPlusPlus

This application is automation solution to push the button of Pokemon GO Plus, using Raspberry Pi 2.
Python
1
star
23

VMagicMirrorManual

Manual Repository for VMagicMirror. Might be removed when the doc is integrated to origin repo.
JavaScript
1
star
24

RoslynScriptForMMM

C#スクリプトをMMM上で実行するためのサンプルです。
C#
1
star
25

BakuLibqiDotNetTutorial

Tutorial documentation for Baku.LibqiDotNet project
CSS
1
star