hkrn / MMDAI

[DEVELOPMENT HAS BEEN DISCONTINUED] The successor of MMDAI is https://github.com/hkrn/nanoem / MMDAI was a fork project of MMDAgent and VPVM a.k.a. MMDAI2 was an application to create a motion compatible with MMD for OSX/Linux that is extended from MMDAI
126 stars 28 forks source link

problem loading .fst, .mdf, .ojt files #17

Closed mameisam closed 13 years ago

mameisam commented 13 years ago

Hi,

After MMDAI has been built, I copied it to README_QtMMDAI_lnx32 with all the config files for the model, stage, etc. However, nothing seem to show in the window. I suspect .fst, .mdf and .ojt files do not get loaded. Could you advise me how to actually load them?

Thanks, Max

maxim@sal:~/tmp/MMDAI$ ls Accessory INSTALL.sh.sample MMDAI Model README Voice AppData LICENSES MMDAI.fst Motion README_QtMMDAI_lnx32 DOCS MMDAgent_Example-beta MMDAI.mdf Plugins Stage Expression MMDAgent_win32-beta MMDAI.ojt QtMMDAI start.sh

maxim@sal:~/tmp/MMDAI$ padsp ./MMDAI "[INFO] 2011/08/01 01:19:20 GLSceneRenderEngine.h:1010 Shadow mapping disabled " Object::connect: No such slot QMAAquesTalk2Plugin::load(MMDAI::SceneController,QString) Object::connect: No such slot QMAAquesTalk2Plugin::unload() Object::connect: No such slot QMAAquesTalk2Plugin::receiveCommand(QString,QList) Object::connect: No such slot QMAAquesTalk2Plugin::receiveEvent(QString,QList) Object::connect: No such signal QMAAquesTalk2Plugin::commandPost(QString,QList) Object::connect: No such signal QMAAquesTalk2Plugin::eventPost(QString,QList) "[INFO] 2011/08/01 01:19:20 QMAScenePlayer.cc:1132 QMAAquesTalk2Plugin was loaded successfully " Object::connect: No such slot QMAAudioPlugin::load(MMDAI::SceneController,QString) Object::connect: No such slot QMAAudioPlugin::unload() Object::connect: No such slot QMAAudioPlugin::receiveCommand(QString,QList) Object::connect: No such slot QMAAudioPlugin::receiveEvent(QString,QList) Object::connect: No such signal QMAAudioPlugin::commandPost(QString,QList) Object::connect: No such signal QMAAudioPlugin::eventPost(QString,QList) "[INFO] 2011/08/01 01:19:20 QMAScenePlayer.cc:1132 QMAAudioPlugin was loaded successfully " QSystemTrayIcon::setVisible: No Icon set Object::connect: No such slot QMAJuliusPlugin::load(MMDAI::SceneController,QString) Object::connect: No such slot QMAJuliusPlugin::unload() Object::connect: No such slot QMAJuliusPlugin::receiveCommand(QString,QList) Object::connect: No such slot QMAJuliusPlugin::receiveEvent(QString,QList) Object::connect: No such signal QMAJuliusPlugin::commandPost(QString,QList) Object::connect: No such signal QMAJuliusPlugin::eventPost(QString,QList) "[INFO] 2011/08/01 01:19:20 QMAScenePlayer.cc:1132 QMAJuliusPlugin was loaded successfully " Object::connect: No such slot QMALookAtPlugin::load(MMDAI::SceneController,QString) Object::connect: No such slot QMALookAtPlugin::unload() Object::connect: No such slot QMALookAtPlugin::receiveCommand(QString,QList) Object::connect: No such slot QMALookAtPlugin::receiveEvent(QString,QList) Object::connect: No such signal QMALookAtPlugin::commandPost(QString,QList) Object::connect: No such signal QMALookAtPlugin::eventPost(QString,QList) "[INFO] 2011/08/01 01:19:20 QMAScenePlayer.cc:1132 QMALookAtPlugin was loaded successfully " Object::connect: No such slot QMAOpenJTalkPlugin::load(MMDAI::SceneController,QString) Object::connect: No such slot QMAOpenJTalkPlugin::unload() Object::connect: No such slot QMAOpenJTalkPlugin::receiveCommand(QString,QList) Object::connect: No such slot QMAOpenJTalkPlugin::receiveEvent(QString,QList) Object::connect: No such signal QMAOpenJTalkPlugin::commandPost(QString,QList) Object::connect: No such signal QMAOpenJTalkPlugin::eventPost(QString,QList) "[INFO] 2011/08/01 01:19:20 QMAScenePlayer.cc:1132 QMAOpenJTalkPlugin was loaded successfully " Object::connect: No such slot QMAVILuaPlugin::load(MMDAI::SceneController,QString) Object::connect: No such slot QMAVILuaPlugin::unload() Object::connect: No such slot QMAVILuaPlugin::receiveCommand(QString,QList) Object::connect: No such slot QMAVILuaPlugin::receiveEvent(QString,QList) Object::connect: No such signal QMAVILuaPlugin::commandPost(QString,QList) Object::connect: No such signal QMAVILuaPlugin::eventPost(QString,QList) "[INFO] 2011/08/01 01:19:20 QMAScenePlayer.cc:1132 QMAVILuaPlugin was loaded successfully " Object::connect: No such slot QMAVIManagerPlugin::load(MMDAI::SceneController*,QString) Object::connect: No such slot QMAVIManagerPlugin::unload() Object::connect: No such slot QMAVIManagerPlugin::receiveCommand(QString,QList) Object::connect: No such slot QMAVIManagerPlugin::receiveEvent(QString,QList) Object::connect: No such signal QMAVIManagerPlugin::commandPost(QString,QList) Object::connect: No such signal QMAVIManagerPlugin::eventPost(QString,QList) "[INFO] 2011/08/01 01:19:20 QMAScenePlayer.cc:1132 QMAVIManagerPlugin was loaded successfully

mameisam commented 13 years ago

Actually, after I moved Plugins directory from MMDAI, then padsp ./MMDAI started without any warnings: maxim@sal:~/tmp/MMDAI$ padsp ./MMDAI "[INFO] 2011/08/02 23:23:02 GLSceneRenderEngine.h:1010 Shadow mapping disabled "

But does it mean no plugins are loaded? Also, for sure no .fst, .mdf, ,ojt files are loaded.

So, basically the question is:

  1. How to load fst, .mdf, ,ojt files from QMA/MMDAI ? Basically, how to make QMA/MMDAI work like QtMMDAI in QtMMDAI_lnx32 package.
  2. Have QMA/plugins been build when I build QMA, or do I have to build them separately? If so, then how?

Thanks, Max

hkrn commented 13 years ago
  1. QMA's configuration file (.mdf) is loaded by QMA itself, the script file (.fst) is loaded by QMAVIManagerPlugin, and OpenJTalk configuration file (.ojd) is loaded by QMAOpenJTalkPlugin. So QMAVIManagerPlugin, QMAOpenJTalkPlugin and QMAJuliusPlugin are very important plugins to work like MMDAgent.
  2. I recommend QtCreator for developing MMDAI. What should do is to load QtCreator's project files (.pro), build them, and copy (or link) QMA's plugins (.so) to $MMDAI_BIN/Plugins directory manually.
mameisam commented 13 years ago

I had to do the following modification in QMAAudioPlugin.h:

#include <phonon/Phonon/AudioOutput>
#include <phonon/Phonon/MediaObject>

So I was able to compile all plugins except for Lua. Now, when I run padsp ./MMDAI I get:

maxim@sal:~/h/mmdaim_rel$ padsp ./MMDAI "[INFO] 2011/08/08 13:13:02 GLSceneRenderEngine.h:1010 Shadow mapping disabled " "[INFO] 2011/08/08 13:13:02 QMAScenePlayer.cc:1132 QMAAquesTalk2Plugin was loaded successfully " "[INFO] 2011/08/08 13:13:03 QMAScenePlayer.cc:1132 QMAAudioPlugin was loaded successfully " "[WARNING] 2011/08/08 13:13:03 QMAScenePlayer.cc:117 libQMAJuliusPlugin.so was not loaded by an error: Cannot load library /home/maxim/h/MMDAIM/QMA/debug/Plugins/libQMAJuliusPlugin.so: (/home/maxim/h/MMDAIM/QMA/debug/Plugins/libQMAJuliusPlugin.so: undefined symbol: j_put_header) " "[INFO] 2011/08/08 13:13:03 QMAScenePlayer.cc:1132 QMALookAtPlugin was loaded successfully " bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) "[INFO] 2011/08/08 13:13:03 QMAScenePlayer.cc:1132 QMAOpenJTalkPlugin was loaded successfully " "[INFO] 2011/08/08 13:13:03 QMAScenePlayer.cc:1132 QMAVIManagerPlugin was loaded successfully " ./MMDAI: symbol lookup error: /home/maxim/h/MMDAIM/QMA/debug/Plugins/libQMAAquesTalk2Plugin.so: undefined symbol: Pa_Initialize

Do you have any suggestions? (I switched to Qt 4.7.0, by the way).

Thanks, Max

mameisam commented 13 years ago

After I changed the following in QMAAquesTalk2Plugin.pro, it build OK!

 #LIBS:unix += -lportaudio
 #linux:LIBS += -lAquesTalk2 -lAqKanji2Koe

 # maxim's addition
 unix {
     LIBS +=  -lAquesTalk2 -lAqKanji2Koe -lportaudio
 }
mameisam commented 13 years ago

Is new Julius plugin not OSS-compatible?

Thanks, Maxim

"[INFO] 2011/08/09 00:42:31 QMAScenePlayer.cc:1132 QMALookAtPlugin was loaded successfully " bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) bt_audio_service_open: connect() failed: Connection refused (111) "[INFO] 2011/08/09 00:42:31 QMAScenePlayer.cc:1132 QMAOpenJTalkPlugin was loaded successfully " "[INFO] 2011/08/09 00:42:31 QMAScenePlayer.cc:1132 QMAVIManagerPlugin was loaded successfully " QSystemTrayIcon::setVisible: No Icon set STAT: parsing option string: "-d /home/maxim/tmp/MMDAI//AppData/Julius/lang_m/web.60k.8-8.bingramv5.gz" STAT: parsing option string: "-v /home/maxim/tmp/MMDAI//AppData/Julius/lang_m/web.60k.htkdic" STAT: parsing option string: "-h /home/maxim/tmp/MMDAI//AppData/Julius/phone_m/clustered.mmf.16mix.all.julius.binhmm" STAT: parsing option string: "-hlist /home/maxim/tmp/MMDAI//AppData/Julius/phone_m/tri_tied.list.bin" STAT: include config: /home/maxim/tmp/MMDAI//AppData/Julius/jconf.txt ERROR: m_options: "-input oss": OSS support is not built-in "[WARNING] 2011/08/09 00:42:31 QMAJuliusPlugin.cc:237 Failed loading configuration for Julius: /home/maxim/tmp/MMDAI//AppData/Julius/jconf.txt "

mameisam commented 13 years ago

Fixed the issue with: bt_audio_service_open: connect() failed: Connection refused (111) by sudo apt-get purge bluez-alsa.

Still Julius does not get configured correctly: STAT: parsing option string: "-d /home/maxim/tmp/MMDAI//AppData/Julius/lang_m/web.60k.8-8.bingramv5.gz" STAT: parsing option string: "-v /home/maxim/tmp/MMDAI//AppData/Julius/lang_m/web.60k.htkdic" STAT: parsing option string: "-h /home/maxim/tmp/MMDAI//AppData/Julius/phone_m/clustered.mmf.16mix.all.julius.binhmm" STAT: parsing option string: "-hlist /home/maxim/tmp/MMDAI//AppData/Julius/phone_m/tri_tied.list.bin" STAT: include config: /home/maxim/tmp/MMDAI//AppData/Julius/jconf.txt ERROR: m_options: "-input oss": OSS support is not built-in

mameisam commented 13 years ago

OK... Made it work. the main problem is that one should use new MMDAgent_win32-1.1 files for AppData (and probably all the other stuff, not MMDAgent_win32_beta. It makes sense, I guess, since libjulius.a was compiled from new MMDAgent repository that includes julius4.2, and the original QtMMDAI-lnx32-v0.4-20110227-64daaee.zip used earlier Julius (4.5.1 I think).

Also, leave -input mic in jconf.txt -- that should work ok with portaudio. Default port ALSA:default worked fine. Did not need to set: Stat: adin_portaudio: (you can specify device by "PORTAUDIO_DEV_NUM=number"

Yay! max