デスクトップにMMDモデルを住まわせてみませんか？

# １、概要
　皆さんは、MikuMikuDance(MMD)をご存じでしょうか？　たくさんの可愛いモデルがいますよネ。　でも、ほとんどのモデルはMMD以外での使用が禁止されています。 
　ある日ネットの海を彷徨っていましたら、日テレさん（クリエイティブ・コモンズ・ライセンスの対象）や株式会社ディアステージさん（ねむりおんライセンスの対象）がそれぞれ太っ腹なライセンスでMMDモデルの使用許諾をしていることを知りました。　それで次の画面のようにPCのデスクトップにMMDモデルを住まわせてみることにしました。
![DeskTopMascot.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408707/09fba5f6-5673-624d-d275-f04e8ae81c4e.gif)
本プログラムは、「[デスクトップマスコットの作り方 - Qiita](https://qiita.com/massoumen/items/2985a0fb30472b97a590)」を参考に作成しました。　そこには、DXライブラリを使用してMMDモデルを表示する方法が詳細に記載されています。　なお、本プログラムで使用させていただいたMMDデータは次の通りです。　各データの製作者様に感謝いたします。

- MMDモデル  
(1) 綾瀬陽菜: ©NTV http://www.ntv.co.jp/ichara/mmd.html  
(2) 小林咲彩: ©NTV http://www.ntv.co.jp/ichara/mmd.html  
(3) 夢眠ネム: ©DEARSTAGE inc. https://www.vocaloidnews.net/yumemi-nemu-official-mmd-model-released/  
- MMDモーション  
(1) ラジオ体操第一 by ガンプラP  
(2) ラジオ体操第二 by にぼさない  
(3) JOJO体操 by せっけんP  
(4) Rain by ふぃぎゅ＠たっち https://twitter.com/anna_mirrors 
  
各モデルあるいはモーションの著作権等は各製作者様が所有しています。

# ２、ファイル構成
　下記に示すファイルは、全て次のGitHubからダウンロードできます。　なお、ダウンロードしたZIPファイルを解凍し「DeskTop_Mascot.sln」をダブルクリックすると、Visual Studio（インストールしている場合）が立ち上がりますので、修正あるいは実行ファイルを作成することができます。
　本プログラムを起動した場合、タスクトレイの右側にサルのアイコンが表示（隠れていることもある）されますので、右クリックするとメニューが表示され、終了、モデルの変更、モーションの選択、カメラアングルの調整等が可能です。　また、モデルをマウスドラッグすることで移動も出来ます。 

- [GITHUB: 3D_DeskTop_Mascot_with_MMD_Models](https://github.com/To-Fujita/3D_DeskTop_Mascot_with_MMD_Models)   
 
###【ダウンロード対象のファイル構成】
「bin」：自動で作成されるフォルダ（コンパイル時に実行ファイルが格納される）
「obj」：自動で作成されるフォルダ（コンパイルに必要なファイルが生成される）
「Properties」：自動で作成されるフォルダ（コンパイルに必要なファイルが生成される）
「Resources」：リソース管理を選択した場合に自動で作成されるフォルダ（ここにプログラムで使用するリソースが格納される）
「App.config」：自動で作成されるファイル（アプリケーション設定ファイル）
「DeskTop_Mascot.csproj」：自動で作成されるファイル（プロジェクトの設定用ファイル）
「DeskTop_Mascot.sln」：自動で作成されるファイル（ソリューション・ファイル：ソリューション全体を管理するための情報が格納されている）
「DxDLL.cs」：DXライブラリ（C#用）
「Form1.cs」：自動で作成されるファイル（フォームの挙動を記述するC#ファイル：ユーザが詳細を記述する）
「Form1.Designer.cs」：自動で作成されるファイル（フォームの外観等が自動で記述される）
「Form1.resx」：自動で作成されるファイル（XMLリソース・ファイル）
「HAL_Icon.ico」：私（サル）のアイコン
「Program.cs」：自動で作成されるファイル（メイン関数、Form1.csを実行するための記述がある）

# ３、新規モデル、新規モーションの設定方法
　本プログラムでは、プログラム本体を修正することなく色々なモデルやモーションを表示することができます。　その手順を次に示します。
## Step-1:
　お好きなモデルやモーションをMMDダウンロードサイトから入手します。　但し、それぞれの著作権・制限事項を遵守してください。　もちろん御自分で作成しても構いません。
　入手したモデルやモーションを「3D_DeskTop_Mascot_with_MMD_Models-main/bin/Debug/Data/フォルダー名」に保存してください。　次に、入れたモーションデータのファイル名を変更します。　名前は「モデル名+000.vmdから始まる連番」です。
#### モーションデータのファイル名変更例：
- モデルのファイル名が右の場合：　YumemiNemu_mmd.pmx  
- モーション１のファイル名：　Walk.vmd -> YumemiNemu_mmd000.vmd  
- モーション２のファイル名：　Run.vmd -> YumemiNemu_mmd001.vmd  
- モーション３のファイル名：　Skip.vmd -> YumemiNemu_mmd002.vmd  

## Step-2:
　DXライブラリを「[DXライブラリ置き場](https://dxlib.xsrv.jp/)」からダウンロードします。　ダウンロードしたDXライブラリを解凍し、ビューワ「\Tool\DxLibModelViewer\DxLibModelViewer_64bit.exe」を用いて「.mv1」ファイルを作成します。　これは、ファイルの読み込み時間を短縮するためです。　なお、モーションファイルが少ない場合には、Step-1でファイル名を変更したものをそのまま使用しても構いません。 

## Step-3:
　最後に「3D_DeskTop_Mascot_with_MMD_Models-main/bin/Debug/Data/DeskTopMascot_Setting.csv」ファイルを修正します。　Model, Motion, Scheduleの行は最低１行分残してください。　

- Model  
(1) B列にモデルのファイル名を「Data/」からのパスで記載してください。 使用できるモデルの拡張子は「.pmd」、「.pmx」、「.mv1」です。   
(2) C列には、モデルの名前（日本語可）を記載してください。  
- Motion  
(1) B列に「0」から始まるモーション番号を連番で入力してください。  
(2) C列にはモーションの名称（日本語可）を記載してください。  
(3) D列は、入力しなくても結構ですが、モーションのトータルフレーム数を記載すると、スケジュールを作成する時にモーションの長さを確認することができます。  
- Schedule  
(1) B列にスケジュールの開始時間（時）を入力します。  
(2) C列にスケジュールの開始時間（分）を入力します。  
(3) D列には、モーション番号を入力します。  
(4) E列にアニメーションスピードを入力します。  
(5) F列には、物理演算の有無をON/OFFで入力します。  
(6) G列にループ表示の有無をLoop/One-Shotで入力します。  
(7) H列には、ランダムでの実施を指定します。　この場合、同一時間で指定したモーション番号が対象になります。

　なお、「DeskTopMascot_Setting.csv」のサンプルは、次の通りです。
![DeskTopMascot_Setting.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/408707/608d9c68-2b15-3bae-854d-3f4c2b214bac.png)

# ４、Reference
- [VisualStudio](https://visualstudio.microsoft.com/ja/)  
- [MMDのはじめかた](https://w.atwiki.jp/vpvpwiki/pages/187.html)  
- [DXライブラリ置き場](https://dxlib.xsrv.jp/)  
- [デスクトップマスコットの作り方 - Qiita](https://qiita.com/massoumen/items/2985a0fb30472b97a590)  
- [MMDダウンロード｜アイキャラ4｜日本テレビ](https://www.ntv.co.jp/ichara/mmd.html)  
- [夢眠ネム・兎眠りおん公式サイト](https://nemurion.com/)  
- [3D_DeskTop_Mascot_with_MMD_Models - GITHUB](https://github.com/To-Fujita/3D_DeskTop_Mascot_with_MMD_Models)