This repository has been archived by the owner. It is now read-only.
MikuMikuDance (32bit) Kinect Interface dll proxy. With this proxy, users can select multiple dlls dynamically.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DxOpenNIDll.cpp
DxOpenNIDll.h
DxOpenNIProxy.cpp
DxOpenNIProxy.sln
README.md
dlg.RES
stdafx.cpp
stdafx.h
targetver.h

README.md

DxOpenNIProxy

概要

MikuMikuDance (32bit) のKinectインタフェースであるDLL (DxOpenNI.dll)を、動的に選択可能とするDLLです。このDxOpenNI.dllから、別のDxOpenNI.dllをこまめにロードしたり手離したりします。 複数のDLLを使い分けたいユーザー、あるいは開発者向けです。

インストールとファイル配置

  1. MikuMikuDance.exeの下のDataフォルダに、DxOpenNIProxyフォルダを作成します。
  2. 作成したDxOpenNIProxyフォルダに、使用するdllを入れます。 複数使用する場合は、区別のつくようにリネームしてください。
  3. MikuMikuDance.exeの下のDataフォルダに、付属のDxOpenNI.dllを置きます。
  4. MikuMikuDance.exeの下のDataフォルダに、DxOpenNIProxy.iniを作成します。文字コードはShift JISにしてください。(Unicode等のワイド文字列は読みません)

インストールとファイル配置

設定ファイルの書き方

各行は「ファイル名」「タブ」「(必要なら)*印」の順に記載します。

*印はデフォルトで選択されるものを現します。

*印がないときでも最後にタブを入れてください。(現状の手抜き仕様)

複数*印つきがあるときは、一番下のものが優先です。 日本語ファイル名は試したことがありません…

(例)
DxOpenNI_nene.dll[Tab]	
DxOpenNI_manaka.dll[Tab]
DxOpenNI_rinko.dll[Tab]

上の例で[Tab]の部分はタブ文字を表します。

操作方法

  • MMDから普通にKinectメニューを選択した場合、設定ファイルで*印のついたdllが使われます。前述の例だとDxOpenNI_manaka.dllが使われます。

  • Shiftを押しながらKinectメニューを選択すると、選択用のダイアログが出て 設定ファイルに記述されたものの中から選択することが出来ます。

今後の予定

ダイアログで選択したものを新しいデフォルトにするとか、 dll名と同じ名前のテキストファイルを開けるボタンをつけるとか アイデアはありますが、今のところユーザーが自分だけなので、後回しになりそうです。 平滑化等のフィルタ系の動作をするものなら、同時使用できる意味もあるかも。等々。

開発者向け情報

  • 序数による呼び出しを使っているので、Exportした関数の並びがオリジナルのDxOpenNI.dllと違っているとセグります。 以下に示す並びを想定。
    [0] ?OpenNIClean@@YGXXZ
    [1] ?OpenNIDepthTexture@@YGXPAPAUIDirect3DTexture9@@@Z
    [2] ?OpenNIDrawDepthMap@@YGX_N@Z
    [3] ?OpenNIGetSkeltonJointPosition@@YGXHPAUD3DXVECTOR3@@@Z
    [4] ?OpenNIGetVersion@@YGXPAM@Z
    [5] ?OpenNIInit@@YG_NPAUHWND__@@_NPAUIDirect3DDevice9@@PA_W@Z
    [6] ?OpenNIIsTracking@@YGXPA_N@Z
  • 古いバージョンのDLLの読み込み

GetVersionの値を見て、MMD最新バージョンに合わせた挙動をエミュレートするために いくつか独自の動作をさせています。

  • version 1.10のDLL

BP_Vector[15]が無いので、BP_Vector[0] (センター)を返すようにしています。 oniファイル読み込み機能が無いので、ファイル読み込みをさせると常に失敗を返します。

ライセンス / License

-GNU LESSER GENERAL PUBLIC LICENSE version 3


作者