Skip to content

Commit

Permalink
Merge pull request #149 from ynput/AY-1029_Zbrush-integration-documen…
Browse files Browse the repository at this point in the history
…tation

Zbursh Integration documentation
  • Loading branch information
LiborBatek authored Mar 20, 2024
2 parents 025519e + d72a44e commit f0f69b2
Show file tree
Hide file tree
Showing 12 changed files with 199 additions and 6 deletions.
46 changes: 46 additions & 0 deletions website/docs/addon_zbrush_admin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
id: addon_zbrush_admin
title: Zbrush Admin Docs
sidebar_label: Zbrush
---
import ReactMarkdown from "react-markdown";
import versions from '@site/docs/assets/json/Ayon_addons_version.json'

<ReactMarkdown>
{versions.Zbrush_Badge}
</ReactMarkdown>

:::note Work in progress
This part of documentation is still work in progress.
Explain briefly about the pipeline of the zbrush (i.e. zbrushmetadata)
:::

### Intro to Zbrush Workflow with AYON
After launching Zbrush with AYON for the first time, it creates the ``.zrbushmetadata`` folder to store any AYON-relevant data. There are several folders found inside the metadata folder: ``containers``, ``create-context``, ``instances``, and ``context``. **Please do not remove the** ``.zbrushmetadata`` **folder if you are working on the project. If it is removed, all the AYON data would be lost.**

:::note
Before users saving the workfile, ``containers``, ``create_context`` and ``instances`` are always stored as temporary data in the metadata folder. All these data are moved from ``.zbrushmetadata`` to ``.zbrushmetadata/{YOUR_WORKFILE_NAME}`` once users save the workfile with versions.

If you already save the workfile, ``containers``, ``create_context`` and ``instances`` are located in the ``.zbrushmetadata/{YOUR_WORKFILE_NAME}`` folder.

If you publish with workfile instance being enabled or save new version of the workfile, ``containers``, ``create_context`` and ``instances`` are
copied from ``.zbrushmetadata/{YOUR_PREVIOUS_WORKFILE_NAME}`` to
``.zbrushmetadata/{YOUR_CURRENT_WORKFILE_NAME}``

:::

``containers``: A folder persists the container data where users loaded the meshes in Zbrush

``create-context``: A folder keeps the setting data where users preset when creating instances in Zbrush

``instances``: A folder stores the instance data which users create instances for publishing in Zbrush.

``context``: A folder includes the context data which includes the important information of the project(e.g. project name, folder path, task name)

There is a file named ``current_file.txt`` to merely stores the current filepath so that the Zbrush can recognize what the current file is.

:::note Limitation for metadata
All the AYON-related data is only relevant when users use the workfile tool to open and save as the ``.zpr`` file in Zbrush.
If users manually use `Save As` and `Open` from the `File` tool in Zbrush,
the AYON data would not be saved and kept correctly into ``.zbrushmetadata`` folder.
:::
118 changes: 118 additions & 0 deletions website/docs/addon_zbrush_artist.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
---
id: addon_zbrush_artist
title: Zbrush Artist Docs
sidebar_label: Zbrush
---

import ReactMarkdown from "react-markdown";
import versions from '@site/docs/assets/json/Ayon_addons_version.json'

<ReactMarkdown>
{versions.Zbrush_Badge}
</ReactMarkdown>

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

## First Steps With AYON

Locate **AYON Icon** in the OS tray (if hidden dive in the tray toolbar).

> If you cannot locate the AYON icon ...it is not probably running so check [Getting Started](artist_getting_started.md) first.
By clicking the icon ```AYON Menu``` rolls out.

![Menu AYON](assets/3dsmax_tray_OP.png)

Choose ```AYON Menu > Launcher``` to open the ```Launcher``` window.

When opened you can **choose** the **project** to work in from the list. Then choose the particular **asset** you want to work on then choose **task**
and finally **run zbrush by its icon** in the tools.

![AYON Launcher](assets/zbrush_ayon_launcher.png)

:::note Launcher Content
The list of available projects, assets, tasks and tools will differ according to your Studio and need to be set in advance by supervisor/admin.
:::

## Running in the Zbrush

If Zbrush has been launched via AYON Launcher there should be **AYON Menu** visible in Zbrush **top header** after start.
![AYON Menu](assets/zbrush_ayon_menu.png)

The **AYON Menu** is moveable which allows user to drag it to the right corner.

import ayonMenuVideo from './assets/video/zbrush_ayon_menu_draggable.mp4'


<video controls style={{width: "75%" }}>
<source src={ayonMenuVideo}/>
</video>


The AYON menu located in the right corner would look like this:

![AYON Draggable Menu](assets/zbrush_ayon_menu_draggable.png)

This is the core functional area for you as a user. Most of your actions will take place here.


:::note AYON Menu
User should use this menu exclusively for **Opening/Saving** when dealing with work files not standard ```File Tool``` even though user still being able perform file operations via this menu but preferably just performing quick saves during work session not saving actual workfile versions.
:::

## Working With Scene Files

In AYON menu first go to ```Work Files``` menu item so **Work Files Window** shows up.

Here you can perform Save / Load actions as you would normally do with ```Save As ``` and ```Open``` in the Zbrush ```File Tool``` and navigate to different project components like assets, tasks, workfiles etc.
![Zbrush AYON Workfile](assets/zbrush_workfile.png)

You first choose particular asset and assigned task and corresponding workfile you would like to open.

If not any workfile present simply hit ```Save As``` and keep ```Subversion``` empty and hit ```Ok```.

AYON correctly names it and add version to the workfile. This basically happens whenever user trigger ```Save As``` action. Resulting into incremental version numbers like

```workfileName_v001```

```workfileName_v002```

etc.

Basically meaning user is free of guessing what is the correct naming and other necessities to keep everything in order and managed.

## Understanding Context

As seen on our example AYON created pretty first workfile and named it ```il_modelCreature_head_v002.zpr``` meaning it sits in the Project ```il``` being it ```modelCreature``` folder path and workfile being ```head``` task and obviously ```v002``` telling user its first existing version of this workfile.

It is good to be aware that whenever you as a user choose ```folder path``` and ```task``` you happen to be in so called **context** meaning that all user actions are in relation with particular ```folder path```. This could be quickly seen in host application header and ```AYON Menu``` and its accompanying tools.

![Workfile Context](assets/3dsmax_context.png)

> Whenever you choose different ```folder path``` and its ```task``` in **Work Files window** you are basically changing context to the current asset/task you have chosen.
This concludes the basics of working with workfiles in Zbrush using AYON and its tools. Following chapters will cover other aspects like creating multiple folder paths and their publishing for later usage in the production.

---

## Creating and Publishing Instances

:::warning Important
Before proceeding further please check [Glossary](artist_concepts.md) and [What Is Publishing?](artist_publish.md) So you have clear idea about terminology.
:::

### Intro

Current AYON integration supports only ```Model``` product types now.

**Model** product type being any mesh outputted as either ``ABC``, ``FBX`` or ``OBJ`` format, depending on what users choose as export output.

---

### Publishing Model

Go **AYON -> Create** and select **Model**. Make sure to select your geometry in the subtool menu before **Publish**.Users can also choose subdivision level before the export. The subdivision level is set to 0 by default, which asks Zbrush to export the mesh in the current subdivision level.

### Loading Model
You can load the model from other DCCs via **AYON -> Load**. It imports the model in the formats such as ``ABC``, ``FBX``, ``OBJ`` and ``MA``.
11 changes: 6 additions & 5 deletions website/docs/assets/json/Ayon_addons_version.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@
"Maya_Badge" : "[![Maya addon - 0.1.6](https://img.shields.io/badge/Maya_Addon-0.1.6-3190b2)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/maya)",
"Muster_Badge" : "[![Muster Addon - 0.1.1](https://img.shields.io/badge/Muster_Addon-0.1.1-1589b8)](https://github.com/ynput/OpenPype/tree/develop/openpype/modules/muster)",
"Nuke_Badge" : "[![Nuke Addon - 0.1.5](https://img.shields.io/badge/Nuke_Addon-0.1.5-fab41a?logo=nuke&logoColor=fab41a)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/nuke)",
"OpenPype_Badge" : "[![OpenPype Addon - 3.7.17](https://img.shields.io/badge/OpenPype_Addon-3.7.17-00d6a1)](https://github.com/ynput/OpenPype)",
"OpenRV_Badge" : "[![OpenRV Addon - 1.0.0](https://img.shields.io/badge/OpenRV_Addon-1.0.0-36a4cb)](https://github.com/ynput/ayon-openrv)",
"Photoshop_Badge" : "[![Photoshop Addon - 0.1.0](https://img.shields.io/badge/Photoshop_Addon-0.1.0-041d36?logo=adobephotoshop)](https://github.com/ynput/OpenPype/tree/develop/server_addon/photoshop)",
"Resolve_Badge" : "[![Davinci Resolve Addon - 0.1.0](https://img.shields.io/badge/Davinci_Resolve_Addon-0.1.0-2f4a67)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/resolve)",
"RoyalRender_Badge" : "[![Royal Render Addon - 0.1.1](https://img.shields.io/badge/Royal_Render_Addon-0.1.1-black)](https://github.com/ynput/OpenPype/tree/develop/openpype/modules/royalrender)",
"OpenPype_Badge" : "[![OpenPype Addon - 3.7.17](https://img.shields.io/badge/OpenPype_Addon-3.7.17-00d6a1)](https://github.com/ynput/OpenPype)",
"OpenRV_Badge" : "[![OpenRV Addon - 1.0.0](https://img.shields.io/badge/OpenRV_Addon-1.0.0-36a4cb)](https://github.com/ynput/ayon-openrv)",
"Photoshop_Badge" : "[![Photoshop Addon - 0.1.0](https://img.shields.io/badge/Photoshop_Addon-0.1.0-041d36?logo=adobephotoshop)](https://github.com/ynput/OpenPype/tree/develop/server_addon/photoshop)",
"Resolve_Badge" : "[![Davinci Resolve Addon - 0.1.0](https://img.shields.io/badge/Davinci_Resolve_Addon-0.1.0-2f4a67)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/resolve)",
"RoyalRender_Badge" : "[![Royal Render Addon - 0.1.1](https://img.shields.io/badge/Royal_Render_Addon-0.1.1-black)](https://github.com/ynput/OpenPype/tree/develop/openpype/modules/royalrender)",
"ShotGrid_Badge" : "[![ShotGrid Addon - 0.2.9](https://img.shields.io/badge/ShotGrid_Addon-0.2.9-3190b2)](https://github.com/ynput/ayon-shotgrid)",
"SitSync_Badge" : "![SiteSync Addon - 1.0.1](https://img.shields.io/badge/SiteSync_Addon-1.0.1-00d6a1)",
"Slack_Badge" : "[![Slack Addon - 1.0.1](https://img.shields.io/badge/Slack_Addon-1.0.1-4A154B?logo=slack&logoColor=a9e3cc)](https://github.com/ynput/ayon-slack)",
Expand All @@ -34,6 +34,7 @@
"TVPaint_Badge" : "[![TVPaint Addon - 0.1.0](https://img.shields.io/badge/TVPaint_Addon-0.1.0-4b89a0)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/tvpaint)",
"Unreal_Badge" : "[![Unreal Addon - 0.1.0](https://img.shields.io/badge/Unreal_Addon-0.1.0-0E1128?logo=unrealengine)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/unreal)",
"Wrap_Badge" : "![wrap - 0.0.1](https://img.shields.io/badge/wrap-0.0.1-2f4249)",
"Zbrush_Badge" : "![zbrush - 0.1.0](https://img.shields.io/badge/zbrush-0.1.0-2f4249)",

"Teamplate_Badge" : "[![Template Badge - #.#.#](https://img.shields.io/badge/Template_Badge-%23.%23.%23-00d6a1)](https://github.com/ynput/OpenPype/tree/develop/openpype/modules/example_addons)"
}
Binary file not shown.
Binary file added website/docs/assets/zbrush_ayon_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/docs/assets/zbrush_ayon_menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/docs/assets/zbrush_workfile.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/docs/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion website/src/data/addons/addons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ export const officialAddons = [
"unreal",
"wrap",
"openrv",
"syncsketch"
"syncsketch",
"zbrush"
] as const;

// COMMUNITY ADDONS
Expand Down
Binary file added website/src/data/addons/data/img/zbrush-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions website/src/data/addons/data/zbrush.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { type Addon } from "../types";
import versions from "@site/docs/assets/json/Ayon_addons_version.json";

const addon: Addon = {
title: "Zbrush",
description:
"Pixologic ZBrush is a digital sculpting software which users can do 3D/2.5D modeling, texturing and painting.",
icon: "zbrush-icon.png",
badge: versions.Zbrush_Badge,
features: [
"workfiles",
"loader",
"publisher",
"sceneManager",
],
products: [
"model",
"workfile",
],
docs: {
user: "addon_zbrush_artist",
admin: "addon_zbrush_admin",
},
github: "https://github.com/ynput/ayon-zbrush/tree/origin/AY-1029_Zbrush-integration/client/ayon_zbrush",
};

export default addon;

0 comments on commit f0f69b2

Please sign in to comment.