...
Some components, like /wiki/spaces/AG/pages/11974855, Launcher, Logger and VHMsg, are open source, while others are binary-only, including NPCEditor, NVBG and MultiSense. SmartBody has its own SourceForge page which you can access here. See the /wiki/spaces/VHTK/pages/14582311 License Agreement page for licensing information.
...
- The Toolkit and any of its components is to only be used for academic research and US Government purposes.
- Cite us appropriately when using the Toolkit or any of its components for published research. See Papers for details.
- Toolkit users are required to honor all licenses of components and supporting software as defined in Exhibit A of the License Agreement.
...
The Toolkit as a whole is currently targeted for the Microsoft Windows platform only, in particular Windows 710, both 32 and 64 bit. Note that MultiSense works best on Windows 7 and is not supported on Windows 10. Some components are multi-platform, most notably SmartBody and the NPCEditor, as well as the Launcher and Logger. C# components should work on Mac OS when using Mono. We do no currently support non-Windows platforms. Build instructions for other platforms can be found here.
...
For all SmartBody related questions, see the dedicated SmartBody website.
...
NVBG
I am asking my character a predefined question, but he doesn't respond. How can I solve that?
...
How do I add a new Character?
Edit the run-toolkit-NVBG-C#-all.bat by adding "-create_character <CharacterName> <CharacterFile>.ini" (without quotes). The .ini files are found in data\nvbg-toolkit. It's recommended to use Brad.ini or Rachel.ini to get started.
NPCEditor
How do I add a new Character?
- Click on the Settings Tab
- Click on Speaker in the Categories column on the left side of the application
- Click the Add button under Tokens
I am asking my character a predefined question, but he doesn't respond. How can I solve that?
There could be a number or reasons why this is happening:
- First, see if the answer you expect comes up on the Chat panel in the NPCEditor. If it does, you know the right answer is selected by the NPCEditor and that something further down the pipeline might be going wrong; see points 7 and higher for more options. If the answer does not show up, continue with the other steps:
- Check that the question has an answer associated with it. You can see this by looking at the column that has the hash symbol at top ('#'). This shows you the number of answers linked to this question.
- Check that you are asking the question exactly as it appears on the left hand side of the Utterance panel. Even though the NPCEditor can handle questions that are only similar to predefined questions, this is a good step to test if something is wrong.
- Make sure the ID for the human speaker (the person interacting with the character) is consistent between the NPCEditor and the AcquireSpeech client. This means that the Domain variable on the question (left-hand) side of NPCEditor is either Anybody (i.e., all speakers are accepted), or matches exactly the ID of the human speaker (the Speaker ID as defined in the AcquireSpeech module). You can change the AcquireSpeech speaker ID in the batch file startup script in \tools\launcher-scripts.
- Select the question you are asking on the left hand side of the NPCEditor, and order the rows by the strength of the link between questions and answers. You can do this by clicking on the associated column name at the top. This is likely the third column, which has a dash at the top ('-'), in between the error column and the Score column. Click on the column name (the dash) to order all rows. Do the same thing on the right hand side, the answers. On the answer side, select all answers associated with the particular question. First, select a single answer that is linked to the questions you have selected. This will unselect any previous answers. Now, hold CTRL and click all answers that have a link value (this value is usually 6). This in turn will highlight all questions that are linked to these answers. While holding CTRL, also select all the questions that are linked to this selection of answers. You now have selected a set of questions, together with the set of all linked answers. You can scroll through both the questions as well as answers list. Ideally, you only see white and green rows (although any selected row will be blue). If you see yellow rows, it means that the selected sets are not completely linked 1 to 1. Although this is not always necessary, the NPCEditor might have trouble if sets of answers and questions are overlapping. Try creating unique sets of questions, that link to unique sets of answers.
- If you have added a lot of new data to the NPCEditor, you might want to retrain it. To do this, go to the classifier, select the domain you want to train (this is the Addressee variable, which corresponds to the character), make sure the 'Test on training data' box is checked, and click 'Start Training'. If you see more than one Addressee, it means you have defined more than one domain on the answer side. This is likely due to the default Anybody domain. If you only have one character, you should usually only have one domain. In order to achieve this, go to the Utterances tab, select all answers (CTRL + A) and select one value from the Domain pull down list at the bottom.
- Make sure that all modules use the same character ID (like 'brad' in the example). For SmartBody, this is defined in the sequence file. For the Nonverbal Behavior Generator in the startup batch file, and for the NPCEditor in the Speaker variable (accessible from the Speaker tab).
- Make sure that on the answer side, all rows have a Speaker defined. This is the character ID that will be send out to the Nonverbal Behavior Generator (NVBG). By default the speaker will be empty, which results in the NPCEditor sending out a request to the NVBG, which the latter ignores, because it is only listening for request for specific characters.
Why do I hear Brad's voice twice?
- Ensure that you have only one NPCEditor open. In the case where you have more than one NPCEditors running and you ask a question, this is sent to both NPCEditors that are running and they both send a reply, therefore duplicating Brad's voice.
- If after closing one NPCEditor and that doesn't solve the problem, kill the NPCEditor and launch it again.
How do I delete local or user specific NPCEditor data?
If you have installed previous versions of the toolkit and used it before on your system, then the NPCEditor would most likely have created user setting files on your machine. Once in a while, a change from our side to NPCEditor's settings will need to be propogated to the users, which will require them to delete these user files on their machines so that they don't interfere/override the new settings.
The NPCEditor creates .plist files which it stores in the user directory for Windows. These files contain NPCEditor specific information.
So if you need to delete these user settings from your machine, follow the below steps.
Depending on which OS you are using, these files will be present in the mentioned folders
Windows 7:
If you are using Windows 7, then you should look under
Your Primary Drive:\Users_Your user name_\AppData\Roaming\NPCEditor\people
...
- the NPCEditor in the Speaker variable (accessible from the Speaker tab).
- Make sure that on the answer side, all rows have a Speaker defined. This is the character ID that will be send out to the Nonverbal Behavior Generator (NVBG). By default the speaker will be empty, which results in the NPCEditor sending out a request to the NVBG, which the latter ignores, because it is only listening for request for specific characters.
Why do I hear Brad's voice twice?
- Ensure that you have only one NPCEditor open. In the case where you have more than one NPCEditors running and you ask a question, this is sent to both NPCEditors that are running and they both send a reply, therefore duplicating Brad's voice.
- If after closing one NPCEditor and that doesn't solve the problem, kill the NPCEditor and launch it again.
How do I delete local or user specific NPCEditor data?
If you have installed previous versions of the toolkit and used it before on your system, then the NPCEditor would most likely have created user setting files on your machine. Once in a while, a change from our side to NPCEditor's settings will need to be propogated to the users, which will require them to delete these user files on their machines so that they don't interfere/override the new settings.
The NPCEditor creates .plist files which it stores in the user directory for Windows. These files contain NPCEditor specific information.
So if you need to delete these user settings from your machine, follow the below steps.
Depending on which OS you are using, these files will be present in the mentioned folders
Windows 7:
If you are using Windows 7, then you should look under
Your Primary Drive:\Users_Your user name_\AppData\Roaming\NPCEditor\people
You should see files with the extension ".plist". These are the local files created by the NPCEditor on your machine to save user settings. Delete these files. If these files don't exist, then it shouldn't matter.
Windows XP:
Under Windows XP, These files should be present under
Your Primary Drive:\Documents and Settings_Your user name_\Application Data\NPCEditor\people
These are the local files created by the NPCEditor on your machine to save user settings. Delete these files. If these files don't exist, then it shouldn't matter.
Windows XP:
Under Windows XP, These files should be present under
Your Primary Drive:\Documents and Settings_Your user name_\Application Data\NPCEditor\people
These are the local files created by the NPCEditor on your machine to save user settings. Delete these files. If these files don't exist, then it shouldn't matter.
Once you delete these files, then the NPCEditor will, by default, use the .plist files that the installer has copied within the toolkit folder, with the new settings.
Note: The AppData/ApplicationData folder under both OS's are hidden folders. So you will not be able to see them unless you make sure that hidden folders are visible in Windows Explorer. In order to do this, open any Explorer window and in the dropdown menu on top, go to 'Tools->Folder Options'. Go to the 'View' tab. Under 'Advanced settings', check the button that says "Show hidden files, folders, and drives".
This will display hidden folders in Windows Explorer.
Unity
What keyboard commands can I use in Unity?
- W,A,S,D - camera movement. Q & E - camera up/down
- J - mouse visibility toggle - mouse look mode
- L - toggles the fake recognizer text box
- O - toggles the user's recognized text
- M - toggles speech recognition mode. When on, click and hold and talk in the mic. Release to quit talking.
- X - reset camera
- Z - show debug statistics
- I - Toggles character subtitles
- P - Toggle entire GUI
- Alt-enter - toggle windowed / fullscreen
- Escape - quit
What console commands can I use in Unity?
Use the ~ key to bring up the console.
Commands:
...
.
Once you delete these files, then the NPCEditor will, by default, use the .plist files that the installer has copied within the toolkit folder, with the new settings.
Note: The AppData/ApplicationData folder under both OS's are hidden folders. So you will not be able to see them unless you make sure that hidden folders are visible in Windows Explorer. In order to do this, open any Explorer window and in the dropdown menu on top, go to 'Tools->Folder Options'. Go to the 'View' tab. Under 'Advanced settings', check the button that says "Show hidden files, folders, and drives".
This will display hidden folders in Windows Explorer.
Unity
What keyboard commands can I use in Unity?
- W,A,S,D - camera movement. Q & E - camera up/down
- J - mouse visibility toggle - mouse look mode
- L - toggles the fake recognizer text box
- O - toggles the user's recognized text
- M - toggles speech recognition mode. When on, click and hold and talk in the mic. Release to quit talking.
- X - reset camera
- Z - show debug statistics
- I - Toggles character subtitles
- P - Toggle entire GUI
- Alt-enter - toggle windowed / fullscreen
- Escape - quit
What console commands can I use in Unity?
Use the ~ key to bring up the console.
Commands:
- q - quit
- play_intro - Play intro sequence
- vhmsg ... - Send vhmsg out to system. 'vhmsg sbm ...' for sending a smartbody command
- set_resolution x y - Set_resolution to 'x' x 'y'. Example 'set_resolution 1024 768'
- toggle_fullscreen - toggle windowed / fullscreen
- set_loco_char_name - ...
How do Unity and SmartBody interact?
We have a c++ dll, called the vhWrapper, that wraps API calls into SmartBody. This dll is loaded into Unity and its functions are exposed in the SmartbodyExternals.cs file in Unity. These function are then called from the SmartbodyManager.cs class (also inside of unity). This dll is used for 2-way interaction between Unity and SmartBody. For example, you can send python commands from Unity to Smartbody using the function SmartbodyManager.PythonCommand(..) or play an animation using SmartbodyManager.SBPlayAnim(..);
Each frame, unity passes it’s time step to SmartBody and SmartBody returns to Unity all the positions/rotations of the joints of each character. You can see the structures that are marshaled between the c# and c++ worlds in SmartbodyCharacterWrapper and UnityCharacterData structs. These structs contain all the data that is passed from Unity to Smartbody and back each frame.
Look at SmartbodyManager.LateUpdate and GetUnityCharacterData and UnitySmartbodyCharacter.OnBoneTransformations() functions to see how the data is used
Ogre
To what extent Is Ogre supported?
...
If all else fails
Look at the /wiki/spaces/VHTK/pages/14583665 Support page for an overview of available support.
...
A run-time Toolkit component that is part of the toolkit architecture. Modules are essential for running a virtual character, as opposed to tools or libraries which just play a support role.
NVBG
Generates nonverbal behavior, based on textual input. One of the Toolkit modules. Often referred to with acronym NVBG. Developed at the Institute for Creative Technologies.
...