Skip to content

enitimeago/make-it-mmd

Repository files navigation

Make It MMD

GitHub release (latest by date)

Make It MMD is a set of non-destructive Unity extensions to help VRChat avatars support MMD worlds.

Installation

Usage

You can find usage on the website. The docs are also located in the docs/ folder of this repo.

Acknowledgements

Make It MMD bundles and redistributes code from third-party software. The licenses for these software may be found in the headers of their respective source files. The author would like to acknowledge the developers of these third-party software:

Development

Release management

All development occurs on the main branch:

  • New releases are cut from the main branch as appropriate, so long as it is green.
  • There is no develop branch.
  • Therefore, main will have changes that may not be ready for broader release.
  • Older releases are supported by cherry-picking to support/x.x branches, a practice inspired by GitFlow.

Setup

Windows

Run prepare.py from the repo root, or run dotnet build from third_party/Linguini/PluralRules.Generator.

macOS

Run prepare.py from the repo root, or run dotnet build from third_party/Linguini/PluralRules.Generator.

Then you will need vrc-get which you can install with brew install vrc-get.

Then run:

vrc-get resolve --project .

Dependency management

Copybara is used to clone some external dependencies into this repo directly. Usage is motivated by two reasons:

  1. Applying significant patches reproducibly
  2. Avoiding submodules so this repo can work independent from upstream

If upstream hasn't broken the patches then you don't have to touch Copybara, the GitHub Action .github/update-third-party.yml abstracts updates.

Some notes in case you do have to touch it:

  • Downloading the pre-compiled .jar is much easier than compiling from scratch
  • On Windows you can work around the missing $HOME error by specifying --output-root
    • e.g. java -jar copybara_deploy.jar --output-root C:\Users\[USERNAME]\copybara\out help
  • On Windows PowerShell if you use --dry-run then the correct way to check is $env:GIT_DIR='foo'; git log

Code style

This project uses dotnet format with .editorconfig to enforce style guidelines.

These lints will run automatically when creating pull requests.

You can also run these manually:

dotnet format .\enitimeago.non-destructive-mmd.editor.csproj
dotnet format .\enitimeago.non-destructive-mmd.runtime.csproj
dotnet format .\enitimeago.non-destructive-mmd.tests.csproj