Skip to content

Commit

Permalink
Merge pull request #7 from michaeldegroot/development
Browse files Browse the repository at this point in the history
0.0.8
  • Loading branch information
absolute-quantum committed Nov 27, 2017
2 parents 2aa486d + 1e3479d commit 41bba52
Show file tree
Hide file tree
Showing 21 changed files with 1,027 additions and 450 deletions.
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
__pycache__
cats blender plugin_updater
.idea
cats_updater
.idea
*.pyc
.cache
tmp
*.blend
tests/armatures/*.png
.coverage
46 changes: 46 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
language: python
cache:
apt: true
pip: true

python:
# Use the Python version that comes with blender 2.79
- "3.5.3"

before_install:
- sudo apt-get update -qq
# install blender from official sources.
# This will most propably install an outdated blender version,
# but it will resolve all system dependencies blender has to be able to run.
- sudo apt-get install blender
- sudo apt-get install unzip
- pip install coveralls
- pip install coverage
# - printf 'import coverage\ncoverage.process_startup()\n' > "/home/travis/virtualenv/python${TRAVIS_PYTHON_VERSION}/lib/python${TRAVIS_PYTHON_VERSION}/sitecustomize.py"

install:
# Then update blender
- mkdir tmp && cd tmp
- wget http://mirror.cs.umn.edu/blender.org/release/Blender2.79/blender-2.79-linux-glibc219-x86_64.tar.bz2
- tar jxf blender-2.79-linux-glibc219-x86_64.tar.bz2
- mv blender-2.79-linux-glibc219-x86_64 blender
- rm blender-2.79-linux-glibc219-x86_64.tar.bz2

- cd ..

# Make sure to install mmd_tools plugin
- wget https://github.com/powroupi/blender_mmd_tools/archive/dev_test.zip
- unzip dev_test.zip
- rm dev_test.zip
- cd blender_mmd_tools-dev_test
- mv mmd_tools/ ../tmp/blender/2.79/scripts/addons

- cd ..

# make sure to install cats plugin
- sudo ln -s ${PWD} ${PWD}/tmp/blender/2.79/scripts/addons/cats

# Start unit testing and coverage
script:
- coverage run --source=. tests.py ./tmp/blender/blender
- coverage report -m
172 changes: 87 additions & 85 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@

A tool designed to shorten steps needed to import and optimise MMD models into VRChat

Development branch: ![](https://api.travis-ci.org/michaeldegroot/cats-blender-plugin.svg?branch=development)

Master branch: ![](https://api.travis-ci.org/michaeldegroot/cats-blender-plugin.svg?branch=master)

## Features
- Creating texture atlas
- Optimizing armature with one click!
- Creating mouth visemes
- Creating eye tracking
- Creating texture atlas
- Creating root bones for Dynamic Bones
- Translating various objects: textures, materials, bones, meshes etc
- Fixing your armature by parenting
- Optimising armature by removing unnecessary bones
- Translating shape keys, bones, textures, materials and meshes
- Auto updater

*More to come!*

## Installation
1. download the plugin: [Cats Blender Plugin](https://github.com/michaeldegroot/cats-blender-plugin/raw/downloads/Cats%20Blender%20Plugin.zip)

**Important!!**
You are downloading an older version of the plugin here, which is required: You will need to check the update tab of the plugin and update it to the latest version from there!
1. download the plugin: [Cats Blender Plugin](https://github.com/michaeldegroot/cats-blender-plugin/archive/master.zip)

2. Install the the addon in blender like so:

Expand Down Expand Up @@ -81,68 +81,55 @@ You are downloading an older version of the plugin here, which is required: You
- Added: Armature: Neitri's zero weight and bone constraint code implemented (there are some small issues with this at the moment, should be fixed soon)
- Fixed: Viseme: Mesh selection in visemes function would not have effect on the shape key selection list
- Fixed: Viseme: Script would error depending on current mode selection
- Fixed: Viseme & Eyetracking: After operations; the shape key index should be reset to Basis, this fixes a weird bug with models in VRC
- Fixed: Viseme & Eye tracking: After operations; the shape key index should be reset to Basis, this fixes a weird bug with models in VRC
- Changed: Translate: Translate does a MMD_TOOLS translate first, then google translate
- Changed: Viseme: Adjusted some viseme shape key definitions to be more realistic

#### 0.0.7
- Fixed: Hotfix for mmd_tools locator, this fixed a unjust error explaining mmd_tools was not present or activated
- Fixes: Creating visemes would be stuck indefinitely when too few shape keys existed
- Fixed: Updating from older version would place the panels in the wrong order
- Added: Armature fix now removes third upper chest (bleeding)

#### 0.0.8
- Added: Autofills as much forms as possible
- Added: Armature: Now fixes more models with one click
- Added: Credits: Link to the unofficial VRcat forum
- Added: Dependencies: Now shows whether mmd_tools is outdated or not installed
- Added: Eye tracking: Warning when bone hierarchy is incorrect
- Added: Eye tracking & Visemes: Automatic search and fill in for fitting bones and shape keys (you should still check them)
- Added: Panels: Improved bone and shape key sorting
- Added: Continuous integration @ github: this will allow us to see errors before we make releases
- Fixed: Visemes not being exported by Blender
- Fixed: Tons of other bugs

## Code contributors:
- Hotox
- Shotariya
- Neitri

## Texture atlas
![](https://i.imgur.com/qiD9jAA.png)

**Texture atlas is the process of combining multiple textures into one to save processing power to render one's model**
If you are unsure about what to do with the margin and angle setting, then leave it default. The most important setting here is texture size and target mesh.

### Properties

##### Margin
Margin to reduce bleed of adjacent islands

##### Angle
Lower for more projection groups, higher for less distortion

##### Texture size
Lower for faster bake time, higher for more detail.

##### Area Weight
Weight projections vector by faces with larger areas

##### Target mesh
The mesh that you want to create an atlas from

##### Disable multiple textures
Texture baking and multiple textures per material can look weird in the end result. Check this box if you are experiencing this.
**If any experienced blender user can tell me how to fix this more elegantly please do let me know!**

## Mouth visemes
![](https://i.imgur.com/XEnStln.png)
## Armature
![](https://i.imgur.com/wJGaxot.png)

**Mouth visemes are used to show more realistic mouth movement in-game when talking over the microphone**
The script generates 17 shape keys from the 3 shape keys you specified. It uses the mouth visemes A, OH and CH to generate this output.
*This is still an experimental feature and will be fine tuned over the course of time*
A combination of Neitri and Shotariya's blender plugins, it deals with fixing and optimising your armature

### Properties
##### Delete zero weight bones
Cleans up the bones hierarchy, because MMD models usually come with a lot of extra bones that don't directly affect any vertices.

##### Mesh
The mesh with the mouth shape keys
##### Delete bone constraints
Deletes constraints that restrict the pose of MMD models.

##### Viseme AA
Shape key containing mouth movement that looks like someone is saying "aa"
##### Fix armature
Fixes your armature by correctly parenting the bones together.

##### Viseme OH
Shape key containing mouth movement that looks like someone is saying "oh"
## Translation

##### Viseme CH
Shape key containing mouth movement that looks like someone is saying "ch". Opened lips and clenched teeth
![](https://i.imgur.com/fkZRIry.png)

##### Shape key mix intensity
Controls the strength in the creation of the shape keys. Lower for less mouth movement strength.
**Can translate certain entities from any language to english** Works by sending a request to the Google translate service. This feature can be slow for entities with a large amount of items.

## Eye tracking
![](https://i.imgur.com/HNkxN4p.png)
![](https://i.imgur.com/x9NqvUO.png)

**Eye tracking is used to artificially track someone when they come close to you**
It's a good idea to check the eye movement in pose mode after this operation to check the validity of the automatic eye tracking creation.
Expand Down Expand Up @@ -176,9 +163,33 @@ The name of the shape key that controls lowerlid right
##### Experimental eye fix
Script will try to verify the newly created eye bones to be located in the correct position, this works by checking the location of the old eye vertex group. It is very useful for models that have over-extended eye bones that point out of the head

## Mouth visemes
![](https://i.imgur.com/z6imAYn.png)

**Mouth visemes are used to show more realistic mouth movement in-game when talking over the microphone**
The script generates 15 shape keys from the 3 shape keys you specified. It uses the mouth visemes A, OH and CH to generate this output.
*This is still an experimental feature and will be fine tuned over the course of time*

### Properties

##### Mesh
The mesh with the mouth shape keys

##### Viseme AA
Shape key containing mouth movement that looks like someone is saying "aa"

##### Viseme OH
Shape key containing mouth movement that looks like someone is saying "oh"

##### Viseme CH
Shape key containing mouth movement that looks like someone is saying "ch". Opened lips and clenched teeth

##### Shape key mix intensity
Controls the strength in the creation of the shape keys. Lower for less mouth movement strength.

## Bone parenting

![](https://i.imgur.com/xErA2QW.png)
![](https://i.imgur.com/mgadT4R.png)

**Useful for Dynamic Bones where it is ideal to have one root bone full of child bones**
This works by checking all bones and trying to figure out if they can be grouped together, which will appear in a list for you to choose from. After satisfied with the selection of this group you can then press 'Parent bones' and the child bones will be parented to a new bone named RootBone_xyz
Expand All @@ -192,53 +203,44 @@ This will clear the group bones list cache and rebuild it, useful if bones have
##### Parent bones
This will start the parent proces

## Translation

![](https://i.imgur.com/DPY7byw.png)

**Can translate certain entities from any language to english** Works by sending a request to the Google translate service. This feature can be slow for entities with a large amount of items.

##### Bones
Translate bones

##### Shape keys
Translate shape keys

##### Objects
Translate hierachy objects (meshes etc)

##### Textures
Translate textures
## Texture atlas
![](https://i.imgur.com/qiD9jAA.png)

##### Materials
Translate materials
**Texture atlas is the process of combining multiple textures into one to save processing power to render one's model**
If you are unsure about what to do with the margin and angle setting, then leave it default. The most important setting here is texture size and target mesh.

## Armature
![](https://i.imgur.com/pQPZzlZ.png)
### Properties

A combination of Neitri and Shotariya's blender plugins, it deals with fixing and optimising your armature
##### Margin
Margin to reduce bleed of adjacent islands

### Properties
##### Angle
Lower for more projection groups, higher for less distortion

##### Fix bone parenting
Fixes your armature by correctly parenting the bones together
##### Texture size
Lower for faster bake time, higher for more detail.

##### Delete zero weight bones / vertex groups
Delete zero weight bones and vertex groups
##### Area Weight
Weight projections vector by faces with larger areas

##### Delete bone constraints
Removes all bone constraints
##### Target mesh
The mesh that you want to create an atlas from

##### Disable multiple textures
Texture baking and multiple textures per material can look weird in the end result. Check this box if you are experiencing this.
**If any experienced blender user can tell me how to fix this more elegantly please do let me know!**

## Update Plugin
There is an auto updater in the plugin so you don't have to keep checking for new version, this is actually required if you install the plugin for the first time. This is how to check for updates:
There is an auto updater in the plugin so you don't have to keep checking for new version. This is how to check for updates:

![](https://i.imgur.com/LbO7Xst.gif)

## Roadmap
- MOAR Updates on the armature code
- Texture translation should have an option to rename the filename also
- Automatic lower lid creation for eye tracking


## Feedback
Send your feedback to this discord server https://discord.gg/up9Zqsu and look for givemeallyourcats ;)
Do you love this plugin or have you found a bug?
Post a response in this thread or send your feedback to this discord server https://discord.gg/up9Zqsu and look for givemeallyourcats ;)
Loading

0 comments on commit 41bba52

Please sign in to comment.