Metahuman_DNA_Calibration/docs/index.html
2023-06-30 08:19:08 +02:00

346 lines
27 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MetaHuman DNA Calibration &mdash; DNA Calibration documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/graphviz.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="MetaHuman DNA Calibration" href="index_.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="#" class="icon icon-home"> DNA Calibration
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Contents</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="index_.html">MetaHuman DNA Calibration</a></li>
<li class="toctree-l1"><a class="reference internal" href="index_.html#overview">Overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="index_.html#examples">Examples</a></li>
<li class="toctree-l1"><a class="reference internal" href="index_.html#notes">Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="index_.html#license">License</a></li>
<li class="toctree-l1"><a class="reference internal" href="index_.html#indices-and-tables">Indices and tables</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Repository Organization</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="repository_organization_md.html">Repository Organization</a></li>
<li class="toctree-l1"><a class="reference internal" href="repository_organization_md.html#folder-structure">Folder structure</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">DNACalib</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="dnacalib_md.html">DNACalib</a></li>
<li class="toctree-l1"><a class="reference internal" href="dnacalib_api_md.html">API overview</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">DNAViewer</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="dna_viewer_md.html">DNAViewer</a></li>
<li class="toctree-l1"><a class="reference internal" href="dna_viewer_maya_md.html">Usage in Maya</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">DNAViewer API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="dna_viewer_api_md.html">Environment Setup</a></li>
<li class="toctree-l1"><a class="reference internal" href="dna_viewer_api_md.html#dna">DNA</a></li>
<li class="toctree-l1"><a class="reference internal" href="dna_viewer_api_build_meshes_md.html">Mesh Utilities</a></li>
<li class="toctree-l1"><a class="reference internal" href="dna_viewer_api_build_rig_md.html">Build rig (<code class="docutils literal notranslate"><span class="pre">build_rig</span></code>)</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Technical documentation</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="dna.html">DNA</a></li>
<li class="toctree-l1"><a class="reference internal" href="dnacalib.html">DNACalib</a></li>
<li class="toctree-l1"><a class="reference internal" href="dna_viewer_modules.html">DNAViewer</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">FAQ</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="faq_md.html">Frequently Asked Questions (FAQ)</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="#">DNA Calibration</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="#" class="icon icon-home"></a> &raquo;</li>
<li>MetaHuman DNA Calibration</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/index.md.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="metahuman-dna-calibration">
<h1>MetaHuman DNA Calibration<a class="headerlink" href="#metahuman-dna-calibration" title="Permalink to this headline"></a></h1>
<p>MetaHuman DNA Calibration is a set of tools used for working with MetaHuman DNA files, bundled into a single package.
<a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/docs/dna_md#metahuman-dna"><code class="docutils literal notranslate"><span class="pre">DNA</span></code></a> is an integral part of <a class="reference external" href="https://www.unrealengine.com/en-US/metahuman">MetaHuman</a> identity.
DNA files are created with <a class="reference external" href="https://metahuman.unrealengine.com/">MetaHuman Creator</a> and downloaded with
<a class="reference external" href="https://docs.metahuman.unrealengine.com/en-US/downloading-metahumans-with-quixel-bridge/">Quixel Bridge</a>, and Bifrost in UE5.</p>
<p>MetaHuman DNA Calibration is a set of tools used for working with MetaHuman DNA files, bundled into a single package. We wanted to share this code to help users customize DNA files so they can better integrate the characters they create into their games and experiences.
MetaHuman DNA Calibration tools are provided in a GitHub repository located at this address.</p>
</section>
<section id="overview">
<h1>Overview<a class="headerlink" href="#overview" title="Permalink to this headline"></a></h1>
<p>For an explanation about how the repository is organized, <a class="reference internal" href="repository_organization_md.html"><span class="doc std std-doc">click here</span></a>.</p>
<p>The MetaHuman DNA Calibration repository contains two distinct tools:</p>
<ul class="simple">
<li><p><a class="reference internal" href="dnacalib_md.html"><span class="doc std std-doc">DNACalib</span></a> (and its dependencies)</p></li>
<li><p><a class="reference internal" href="dna_viewer_md.html"><span class="doc std std-doc">DNAViewer</span></a></p></li>
</ul>
<section id="required-knowledge">
<h2>Required Knowledge<a class="headerlink" href="#required-knowledge" title="Permalink to this headline"></a></h2>
<p>To use these tools, you should be familiar with:</p>
<ul class="simple">
<li><p>Rigging in Maya</p></li>
<li><p>Python</p></li>
</ul>
</section>
<section id="optional-knowledge">
<h2>Optional Knowledge<a class="headerlink" href="#optional-knowledge" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>C++ (for <a class="reference internal" href="dnacalib_md.html"><span class="doc std std-doc">DNACalib</span></a> and its <a class="reference internal" href="dnacalib_api_md.html"><span class="doc std std-doc">API</span></a>)</p></li>
</ul>
</section>
<section id="dnacalib">
<h2>DNACalib<a class="headerlink" href="#dnacalib" title="Permalink to this headline"></a></h2>
<p><a class="reference internal" href="dnacalib_md.html"><span class="doc std std-doc">DNACalib</span></a> and its <a class="reference internal" href="dnacalib_api_md.html"><span class="doc std std-doc">API</span></a> are used to inspect and modify DNA files. With <a class="reference internal" href="dnacalib_md.html"><span class="doc std std-doc">DNACalib</span></a>, you can make the following changes in DNA files:</p>
<ul class="simple">
<li><p>Rename joints, meshes, blendshapes, and / or animated maps.</p></li>
<li><p>Remove joints, meshes, and / or joint animation.</p></li>
<li><p>Rotate, scale, and translate the rig.</p></li>
<li><p>Remove LODs.</p></li>
<li><p>Change neutral joint positions, neutral mesh positions, and blendshape delta values.</p></li>
<li><p>Prune blendshapes.</p></li>
<li><p>Remove all blend shape data.</p></li>
</ul>
<p>An overview of the MetaHuman DNA file format can be found <a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/docs/dna_md"><code class="docutils literal notranslate"><span class="pre">here</span></code></a>.</p>
<p><strong>Note</strong>: DNACalib library allows removal and renaming of any joint. However, the following joints are used for connecting head with body and should not be removed or renamed: neck_01, neck_02, FACIAL_C_FacialRoot.</p>
</section>
<section id="external-software-dependencies">
<h2>External Software Dependencies<a class="headerlink" href="#external-software-dependencies" title="Permalink to this headline"></a></h2>
<p>DNACalibs Python wrapper is compiled against Python 3.7 and 3.9. Pre-compiled binaries for Windows and Linux (both 64-bit) are part of the repository.
If you are using a different version of Python, you must recompile it. Any Python 3 version should be fine.
If a user has a different platform or architecture, the library and its dependencies must be compiled.</p>
<p><strong>Important</strong>
DNA files are stored as <a class="reference external" href="https://git-lfs.github.com/">LFS (Large File Storage)</a> files. They are downloaded with the rest of the code if
git-lfs is installed and configured to use. If you are not using git-lfs, you have to download DNA files manually.</p>
<p>Additional information can be found <span class="xref myst">here</span></p>
<p><strong>Warning:</strong>
Python 2 is not supported.</p>
<p>DNACalib can be used in C++ projects as a C++ library.</p>
<p>DNACalib Python wrapper can be used in Python 3.7 and 3.9, <code class="docutils literal notranslate"><span class="pre">mayapy</span></code> (Python interpreter shipped with Maya) shipped with Maya.
Supported Maya versions are 2022 and 2023.</p>
<p>Note: Maya 2022 is bundled with Python 3.7, Maya 2023 is bundled with Python 3.9.</p>
</section>
<section id="environment-setup">
<h2>Environment Setup<a class="headerlink" href="#environment-setup" title="Permalink to this headline"></a></h2>
<p>In order to use MetaHuman DNA Calibration in your scripts, you need to:</p>
<ul class="simple">
<li><p>have Python3 installed, see <span class="xref myst">note</span>,</p></li>
<li><p>add MetaHuman DNA Calibration location to <code class="docutils literal notranslate"><span class="pre">MAYA_MODULE_PATH</span></code> system variable (if you want to use MetaHuman DNA Calibration in Maya)</p></li>
</ul>
<p>If you plan to run the script from command line:</p>
<ul class="simple">
<li><p>in case of Mayas interpreter (mayapy) you will have to initialize maya with:</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">maya.standalone</span>
<span class="n">maya</span><span class="o">.</span><span class="n">standalone</span><span class="o">.</span><span class="n">initialize</span><span class="p">()</span>
</pre></div>
</div>
<ul class="simple">
<li><p>in case of python interpreter you will have to add the following on top of your script:</p></li>
</ul>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">os</span> <span class="kn">import</span> <span class="n">path</span> <span class="k">as</span> <span class="n">ospath</span>
<span class="kn">from</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="n">path</span> <span class="k">as</span> <span class="n">syspath</span>
<span class="kn">from</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="n">platform</span>
<span class="n">ROOT_DIR</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">ospath</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">ospath</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="vm">__file__</span><span class="p">))</span><span class="si">}</span><span class="s2">/..&quot;</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\\</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;/&quot;</span><span class="p">)</span>
<span class="n">MAYA_VERSION</span> <span class="o">=</span> <span class="s2">&quot;2022&quot;</span> <span class="c1"># or 2023</span>
<span class="n">ROOT_LIB_DIR</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">ROOT_DIR</span><span class="si">}</span><span class="s2">/lib/Maya</span><span class="si">{</span><span class="n">MAYA_VERSION</span><span class="si">}</span><span class="s2">&quot;</span>
<span class="k">if</span> <span class="n">platform</span> <span class="o">==</span> <span class="s2">&quot;win32&quot;</span><span class="p">:</span>
<span class="n">LIB_DIR</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">ROOT_LIB_DIR</span><span class="si">}</span><span class="s2">/windows&quot;</span>
<span class="k">elif</span> <span class="n">platform</span> <span class="o">==</span> <span class="s2">&quot;linux&quot;</span><span class="p">:</span>
<span class="n">LIB_DIR</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">ROOT_LIB_DIR</span><span class="si">}</span><span class="s2">/linux&quot;</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">OSError</span><span class="p">(</span>
<span class="s2">&quot;OS not supported, please compile dependencies and add value to LIB_DIR&quot;</span>
<span class="p">)</span>
<span class="c1"># Adds directories to path</span>
<span class="n">syspath</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">ROOT_DIR</span><span class="p">)</span>
<span class="n">syspath</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">LIB_DIR</span><span class="p">)</span>
</pre></div>
</div>
<p>NOTE:
If running on Linux, please make sure to append the LD_LIBRARY_PATH with absolute path to the <code class="docutils literal notranslate"><span class="pre">lib/Maya2022/linux</span></code> or <code class="docutils literal notranslate"><span class="pre">lib/Maya2023/linux</span></code> directory before running the example:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">export</span> <span class="pre">LD_LIBRARY_PATH=$LD_LIBRARY_PATH:&lt;path-to-lib-linux-dir&gt;</span></code></p></li>
</ul>
</section>
<section id="dnaviewer">
<h2>DNAViewer<a class="headerlink" href="#dnaviewer" title="Permalink to this headline"></a></h2>
<p>With DNAViewer, you can:</p>
<ul class="simple">
<li><p>Create functional rigs for Maya.</p></li>
<li><p>Export FBX files.</p></li>
<li><p>Read internal parts of DNA files.</p></li>
</ul>
<p>DNAViewer can be used in <code class="docutils literal notranslate"><span class="pre">mayapy</span></code> (Python interpreter shipped with Maya) or in Maya 2022, except <a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dna_viewer_grab_changes_from_scene_and_propagate_to_dna.py">Propagating changes from Maya scene to dna</a> which can be used just in Maya.</p>
</section>
</section>
<section id="examples">
<h1>Examples<a class="headerlink" href="#examples" title="Permalink to this headline"></a></h1>
<p>Several Python examples are provided for reference and can be found in the <strong>examples</strong> folder:</p>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dnacalib_demo.py">Showcase a few commands</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dnacalib_rename_joint_demo.py">Rename a joint</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dna_demo.py">Create a small DNA from scratch</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dna_binary_to_json_demo.py">Read binary DNA and write it in a human readable format</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dnacalib_lod_demo.py">Create a new DNA from an existing one by extracting specific LODs</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dnacalib_remove_joint.py">Remove a joint</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dnacalib_clear_blend_shapes.py">Clear blend shape data</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dnacalib_neutral_mesh_subtract.py">Subtract values from neutral mesh</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dna_viewer_run_in_maya.py">Simple UI in Maya</a> and some <span class="xref myst">documentation</span> for it</p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dna_viewer_build_rig.py">Generates rig</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dna_viewer_export_fbx.py">Export FBX per LOD</a></p></li>
<li><p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/examples/dna_viewer_grab_changes_from_scene_and_propagate_to_dna.py">Propagating changes from Maya scene to dna</a></p></li>
</ul>
<p>Note: Examples are grouped in three groups: DNA, DNACalib, and DNAViewer. These names are embedded as prefixes: dna_, dnacalib_, and dna_viewer_.</p>
<section id="example-dna-files">
<h2>Example DNA files<a class="headerlink" href="#example-dna-files" title="Permalink to this headline"></a></h2>
<p><a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/data/dna_files">Two demo DNA files</a> are provided for easier testing of this tool. Any DNA generated with <a class="reference external" href="https://www.unrealengine.com/en-US/metahuman">MetaHumanCreator</a>
should work.</p>
<p>The MHC 2023 spring release introduced changes to the rig definition (number of joints increased as well as the number of expressions).
In order to accommodate those changes, we added several files to the repository in <code class="docutils literal notranslate"><span class="pre">/data/mh4</span></code> folder: new <span class="xref myst">gui scene</span>, updated <span class="xref myst">assemble script</span> and example of Adas <a class="reference external" href="https://github.com/EpicGames/MetaHuman-DNA-Calibration/tree/main/data/mh4/dna_files/Ada.dna">DNA file</a>.
If a user wants to switch and use this new rig version it is necessary to update paths in their scripts:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">GUI</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">DATA_DIR</span><span class="si">}</span><span class="s2">/mh4/gui.ma&quot;</span>
<span class="n">ADDITIONAL_ASSEMBLE_SCRIPT</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">DATA_DIR</span><span class="si">}</span><span class="s2">/mh4/additional_assemble_script.py&quot;</span>
</pre></div>
</div>
<p>In case character DNA is downloaded from <a class="reference external" href="https://quixel.com/bridge">Quixel Bridge</a> and we are not sure which rig definition is used, it can be checked with following code:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">dna</span> <span class="kn">import</span> <span class="p">(</span>
<span class="n">BinaryStreamReader</span><span class="p">,</span>
<span class="n">DataLayer_All</span><span class="p">,</span>
<span class="n">FileStream</span><span class="p">,</span>
<span class="n">Status</span><span class="p">,</span>
<span class="p">)</span>
<span class="k">def</span> <span class="nf">load_dna_reader</span><span class="p">(</span><span class="n">dna_file</span><span class="p">):</span>
<span class="n">stream</span> <span class="o">=</span> <span class="n">FileStream</span><span class="p">(</span>
<span class="n">dna_file</span><span class="p">,</span> <span class="n">FileStream</span><span class="o">.</span><span class="n">AccessMode_Read</span><span class="p">,</span> <span class="n">FileStream</span><span class="o">.</span><span class="n">OpenMode_Binary</span>
<span class="p">)</span>
<span class="n">reader</span> <span class="o">=</span> <span class="n">BinaryStreamReader</span><span class="p">(</span><span class="n">stream</span><span class="p">,</span> <span class="n">DataLayer_All</span><span class="p">)</span>
<span class="n">reader</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">Status</span><span class="o">.</span><span class="n">isOk</span><span class="p">():</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">Status</span><span class="o">.</span><span class="n">get</span><span class="p">()</span>
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Error loading DNA: </span><span class="si">{</span><span class="n">status</span><span class="o">.</span><span class="n">message</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">reader</span>
<span class="n">character_dna</span> <span class="o">=</span> <span class="s2">&quot;path_to/character.dna&quot;</span>
<span class="n">reader</span> <span class="o">=</span> <span class="n">load_dna_reader</span><span class="p">(</span><span class="n">character_dna</span><span class="p">)</span>
<span class="k">if</span> <span class="n">reader</span><span class="o">.</span><span class="n">getDBName</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;MH.4&quot;</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Use mh4 folder&quot;</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">reader</span><span class="o">.</span><span class="n">getDBName</span><span class="p">()</span> <span class="o">==</span> <span class="s2">&quot;DHI&quot;</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Use data folder&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Unsupported rig definition!&quot;</span><span class="p">)</span>
</pre></div>
</div>
</section>
</section>
<section id="notes">
<h1>Notes<a class="headerlink" href="#notes" title="Permalink to this headline"></a></h1>
<p>If a user runs examples in Maya 2022, the value for <code class="docutils literal notranslate"><span class="pre">ROOT_DIR</span></code> should be changed and absolute paths must be used,
e.g. <code class="docutils literal notranslate"><span class="pre">c:/MetaHuman-DNA-Calibration</span></code> in Windows or <code class="docutils literal notranslate"><span class="pre">/home/user/MetaHuman-DNA-Calibration</span></code> in Linux. Important: Use <code class="docutils literal notranslate"><span class="pre">/</span></code> (forward slash), Maya uses forward slashes in path.</p>
<p>See the <a class="reference internal" href="faq_md.html"><span class="doc std std-doc">FAQ guide</span></a> for additional specifications.</p>
</section>
<section id="license">
<h1>License<a class="headerlink" href="#license" title="Permalink to this headline"></a></h1>
<p>MetaHuman DNA Calibration is released with <a class="reference internal" href="index_.html#license"><span class="std std-ref">licence</span></a>.</p>
<div class="toctree-wrapper compound">
</div>
</section>
<section id="indices-and-tables">
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline"></a></h1>
<ul class="simple">
<li><p><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></p></li>
<li><p><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></p></li>
</ul>
<div class="toctree-wrapper compound">
</div>
<div class="toctree-wrapper compound">
</div>
<div class="toctree-wrapper compound">
</div>
<div class="toctree-wrapper compound">
</div>
<div class="toctree-wrapper compound">
</div>
<div class="toctree-wrapper compound">
</div>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="index_.html" class="btn btn-neutral float-right" title="MetaHuman DNA Calibration" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2023, Epic Games.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>