Merge branch 'openpype-develop' into openpype-infrastructure

# Conflicts:
#	setup.py
This commit is contained in:
Ondrej Samohel 2021-04-01 15:11:29 +02:00
commit 2e5aa101e2
No known key found for this signature in database
GPG key ID: 02376E18990A97C6
96 changed files with 178 additions and 217 deletions

4
.gitignore vendored
View file

@ -32,6 +32,7 @@ Network Trash Folder
Temporary Items
.apdisk
# CX_Freeze
###########
/build
@ -79,4 +80,5 @@ openpype/premiere/ppro/js/debug.log
# VScode files
.vscode/
.env
dump.sql
dump.sql
test_localsystem.txt

View file

@ -52,7 +52,7 @@ class InstallDialog(QtWidgets.QDialog):
self.setWindowTitle(f"Pype Igniter {__version__} - Pype installation")
self._icon_path = os.path.join(
os.path.dirname(__file__), 'pype_icon.png')
os.path.dirname(__file__), 'openpype_icon.png')
icon = QtGui.QIcon(self._icon_path)
self.setWindowIcon(icon)
self.setWindowFlags(

BIN
igniter/openpype.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

BIN
igniter/openpype_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -247,7 +247,7 @@ class BlendActionLoader(pype.hosts.blender.api.plugin.AssetLoader):
"""Remove an existing container from a Blender scene.
Arguments:
container (avalon-core:container-1.0): Container to remove,
container (openpype:container-1.0): Container to remove,
from `host.ls()`.
Returns:

View file

@ -217,7 +217,7 @@ class BlendAnimationLoader(pype.hosts.blender.api.plugin.AssetLoader):
"""Remove an existing container from a Blender scene.
Arguments:
container (avalon-core:container-1.0): Container to remove,
container (openpype:container-1.0): Container to remove,
from `host.ls()`.
Returns:

View file

@ -216,7 +216,7 @@ class BlendCameraLoader(pype.hosts.blender.api.plugin.AssetLoader):
"""Remove an existing container from a Blender scene.
Arguments:
container (avalon-core:container-1.0): Container to remove,
container (openpype:container-1.0): Container to remove,
from `host.ls()`.
Returns:

View file

@ -251,7 +251,7 @@ class BlendLayoutLoader(plugin.AssetLoader):
"""Remove an existing container from a Blender scene.
Arguments:
container (avalon-core:container-1.0): Container to remove,
container (openpype:container-1.0): Container to remove,
from `host.ls()`.
Returns:
@ -648,7 +648,7 @@ class UnrealLayoutLoader(plugin.AssetLoader):
"""Remove an existing container from a Blender scene.
Arguments:
container (avalon-core:container-1.0): Container to remove,
container (openpype:container-1.0): Container to remove,
from `host.ls()`.
Returns:

View file

@ -211,7 +211,7 @@ class BlendModelLoader(plugin.AssetLoader):
"""Remove an existing container from a Blender scene.
Arguments:
container (avalon-core:container-1.0): Container to remove,
container (openpype:container-1.0): Container to remove,
from `host.ls()`.
Returns:

View file

@ -267,7 +267,7 @@ class BlendRigLoader(plugin.AssetLoader):
"""Remove an existing container from a Blender scene.
Arguments:
container (avalon-core:container-1.0): Container to remove,
container (openpype:container-1.0): Container to remove,
from `host.ls()`.
Returns:

View file

@ -241,7 +241,7 @@ def set_track_item_pype_tag(track_item, data=None):
tag_data = {
"editable": "0",
"note": "Pype data holder",
"icon": "pype_icon.png",
"icon": "openpype_icon.png",
"metadata": {k: v for k, v in data.items()}
}
# get available pype tag if any

View file

@ -110,7 +110,7 @@ def containerise(track_item,
"""
data_imprint = OrderedDict({
"schema": "avalon-core:container-2.0",
"schema": "openpype:container-2.0",
"id": AVALON_CONTAINER_ID,
"name": str(name),
"namespace": str(namespace),

View file

@ -256,7 +256,7 @@ class ReferenceLoader(api.Loader):
Deprecated; this functionality is replaced by `api.remove()`
Arguments:
container (avalon-core:container-1.0): Which container
container (openpype:container-1.0): Which container
to remove from scene.
"""

View file

@ -1,3 +1,4 @@
import os
import nuke
from avalon.api import Session
@ -10,7 +11,7 @@ log = Logger().get_logger(__name__)
def install():
menubar = nuke.menu("Nuke")
menu = menubar.findItem(Session["AVALON_LABEL"])
menu = menubar.findItem(os.environ["AVALON_LABEL"])
# replace reset resolution from avalon core to pype's
name = "Work Files..."
@ -90,7 +91,7 @@ def install():
def uninstall():
menubar = nuke.menu("Nuke")
menu = menubar.findItem(Session["AVALON_LABEL"])
menu = menubar.findItem(os.environ["AVALON_LABEL"])
for item in menu.items():
log.info("Removing menu item: {}".format(item.name()))

View file

@ -1,7 +1,7 @@
#### Basic setup
- Install [latest DaVinci Resolve](https://sw.blackmagicdesign.com/DaVinciResolve/v16.2.8/DaVinci_Resolve_Studio_16.2.8_Windows.zip?Key-Pair-Id=APKAJTKA3ZJMJRQITVEA&Signature=EcFuwQFKHZIBu2zDj5LTCQaQDXcKOjhZY7Fs07WGw24xdDqfwuALOyKu+EVzDX2Tik0cWDunYyV0r7hzp+mHmczp9XP4YaQXHdyhD/2BGWDgiMsiTQbNkBgbfy5MsAMFY8FHCl724Rxm8ke1foWeUVyt/Cdkil+ay+9sL72yFhaSV16sncko1jCIlCZeMkHhbzqPwyRuqLGmxmp8ey9KgBhI3wGFFPN201VMaV+RHrpX+KAfaR6p6dwo3FrPbRHK9TvMI1RA/1lJ3fVtrkDW69LImIKAWmIxgcStUxR9/taqLOD66FNiflHd1tufHv3FBa9iYQsjb3VLMPx7OCwLyg==&Expires=1608308139)
- add absolute path to ffmpeg into pype settings
- add absolute path to ffmpeg into openpype settings
![image](https://user-images.githubusercontent.com/40640033/102630786-43294f00-414d-11eb-98de-f0ae51f62077.png)
- install Python 3.6 into `%LOCALAPPDATA%/Programs/Python/Python36` (only respected path by Resolve)
- install OpenTimelineIO for 3.6 `%LOCALAPPDATA%\Programs\Python\Python36\python.exe -m pip install git+https://github.com/PixarAnimationStudios/OpenTimelineIO.git@5aa24fbe89d615448876948fe4b4900455c9a3e8` and move builded files from `%LOCALAPPDATA%/Programs/Python/Python36/Lib/site-packages/opentimelineio/cxx-libs/bin and lib` to `%LOCALAPPDATA%/Programs/Python/Python36/Lib/site-packages/opentimelineio/`. I was building it on Win10 machine with Visual Studio Community 2019 and
@ -16,11 +16,11 @@ This is how it looks on my testing project timeline
![image](https://user-images.githubusercontent.com/40640033/102637638-96ec6600-4156-11eb-9656-6e8e3ce4baf8.png)
Notice I had renamed tracks to `main` (holding metadata markers) and `review` used for generating review data with ffmpeg confersion to jpg sequence.
1. you need to start Pype menu from Resolve/EditTab/Menu/Workspace/Scripts/**PYPE_MENU**
1. you need to start OpenPype menu from Resolve/EditTab/Menu/Workspace/Scripts/**__OpenPype_Menu__**
2. then select any clips in `main` track and change their color to `Chocolate`
3. in Pype Menu select `Create`
3. in OpenPype Menu select `Create`
4. in Creator select `Create Publishable Clip [New]` (temporary name)
5. set `Rename clips` to True, Master Track to `main` and Use review track to `review` as in picture
![image](https://user-images.githubusercontent.com/40640033/102643773-0d419600-4160-11eb-919e-9c2be0aecab8.png)
6. after you hit `ok` all clips are colored to `ping` and marked with pype metadata tag
7. git `Publish` on pype menu and see that all had been collected correctly. That is the last step for now as rest is Work in progress. Next steps will follow.
6. after you hit `ok` all clips are colored to `ping` and marked with openpype metadata tag
7. git `Publish` on openpype menu and see that all had been collected correctly. That is the last step for now as rest is Work in progress. Next steps will follow.

View file

@ -16,24 +16,24 @@ self = sys.modules[__name__]
self.project_manager = None
self.media_storage = None
# Pype sequencial rename variables
# OpenPype sequencial rename variables
self.rename_index = 0
self.rename_add = 0
self.publish_clip_color = "Pink"
self.pype_marker_workflow = True
# Pype compound clip workflow variable
# OpenPype compound clip workflow variable
self.pype_tag_name = "VFX Notes"
# Pype marker workflow variables
self.pype_marker_name = "PYPEDATA"
# OpenPype marker workflow variables
self.pype_marker_name = "OpenPypeData"
self.pype_marker_duration = 1
self.pype_marker_color = "Mint"
self.temp_marker_frame = None
# Pype default timeline
self.pype_timeline_name = "PypeTimeline"
# OpenPype default timeline
self.pype_timeline_name = "OpenPypeTimeline"
@contextlib.contextmanager
@ -360,13 +360,13 @@ def get_pype_timeline_item_by_name(name: str) -> object:
def get_timeline_item_pype_tag(timeline_item):
"""
Get pype track item tag created by creator or loader plugin.
Get openpype track item tag created by creator or loader plugin.
Attributes:
trackItem (resolve.TimelineItem): resolve object
Returns:
dict: pype tag data
dict: openpype tag data
"""
return_tag = None
@ -389,7 +389,7 @@ def get_timeline_item_pype_tag(timeline_item):
def set_timeline_item_pype_tag(timeline_item, data=None):
"""
Set pype track item tag to input timeline_item.
Set openpype track item tag to input timeline_item.
Attributes:
trackItem (resolve.TimelineItem): resolve api object
@ -399,7 +399,7 @@ def set_timeline_item_pype_tag(timeline_item, data=None):
"""
data = data or dict()
# get available pype tag if any
# get available openpype tag if any
tag_data = get_timeline_item_pype_tag(timeline_item)
if self.pype_marker_workflow:
@ -418,7 +418,7 @@ def set_timeline_item_pype_tag(timeline_item, data=None):
self.pype_tag_name, json.dumps(tag_data))
else:
tag_data = data
# if pype tag available then update with input data
# if openpype tag available then update with input data
# add it to the input track item
timeline_item.SetMetadata(self.pype_tag_name, json.dumps(tag_data))
@ -672,7 +672,7 @@ def _validate_tc(x):
def get_pype_clip_metadata(clip):
"""
Get pype metadata created by creator plugin
Get openpype metadata created by creator plugin
Attributes:
clip (resolve.TimelineItem): resolve's object

View file

@ -44,11 +44,11 @@ class Spacer(QtWidgets.QWidget):
self.setLayout(layout)
class PypeMenu(QtWidgets.QWidget):
class OpenPypeMenu(QtWidgets.QWidget):
def __init__(self, *args, **kwargs):
super(self.__class__, self).__init__(*args, **kwargs)
self.setObjectName("PypeMenu")
self.setObjectName("OpenPypeMenu")
self.setWindowFlags(
QtCore.Qt.Window
@ -58,7 +58,7 @@ class PypeMenu(QtWidgets.QWidget):
| QtCore.Qt.WindowStaysOnTopHint
)
self.setWindowTitle("Pype")
self.setWindowTitle("OpenPype")
workfiles_btn = QtWidgets.QPushButton("Workfiles", self)
create_btn = QtWidgets.QPushButton("Create", self)
publish_btn = QtWidgets.QPushButton("Publish", self)
@ -144,7 +144,7 @@ class PypeMenu(QtWidgets.QWidget):
def launch_pype_menu():
app = QtWidgets.QApplication(sys.argv)
pype_menu = PypeMenu()
pype_menu = OpenPypeMenu()
stylesheet = load_stylesheet()
pype_menu.setStyleSheet(stylesheet)

View file

@ -51,7 +51,7 @@ QLineEdit {
qproperty-alignment: AlignCenter;
}
#PypeMenu {
#OpenPypeMenu {
border: 1px solid #fef9ef;
}

View file

@ -110,7 +110,7 @@ def containerise(timeline_item,
"""
data_imprint = OrderedDict({
"schema": "avalon-core:container-2.0",
"schema": "openpype:container-2.0",
"id": AVALON_CONTAINER_ID,
"name": str(name),
"namespace": str(namespace),
@ -150,7 +150,7 @@ def ls():
def parse_container(timeline_item, validate=True):
"""Return container data from timeline_item's pype tag.
"""Return container data from timeline_item's openpype tag.
Args:
timeline_item (hiero.core.TrackItem): A containerised track item.
@ -187,7 +187,7 @@ def parse_container(timeline_item, validate=True):
def update_container(timeline_item, data=None):
"""Update container data to input timeline_item's pype tag.
"""Update container data to input timeline_item's openpype tag.
Args:
timeline_item (hiero.core.TrackItem): A containerised track item.

View file

@ -25,7 +25,7 @@ class CreatorWidget(QtWidgets.QDialog):
| QtCore.Qt.WindowCloseButtonHint
| QtCore.Qt.WindowStaysOnTopHint
)
self.setWindowTitle(name or "Pype Creator Input")
self.setWindowTitle(name or "OpenPype Creator Input")
self.resize(500, 700)
# Where inputs and labels are set
@ -527,7 +527,7 @@ class PublishClip:
kwargs (optional): additional data needed for rename=True (presets)
Returns:
hiero.core.TrackItem: hiero track item object with pype tag
hiero.core.TrackItem: hiero track item object with openpype tag
"""
vertical_clip_match = dict()
tag_data = dict()
@ -623,7 +623,7 @@ class PublishClip:
"track_data": self.timeline_item_data["track"]
})
# create pype tag on timeline_item and add data
# create openpype tag on timeline_item and add data
lib.imprint(self.timeline_item, self.tag_data)
return self.timeline_item

View file

@ -1,5 +1,5 @@
#!/usr/bin/env python
# TODO: convert this script to be usable with PYPE
# TODO: convert this script to be usable with OpenPype
"""
Example DaVinci Resolve script:
Load a still from DRX file, apply the still to all clips in all timelines.

View file

@ -146,4 +146,4 @@ def setup(env=None):
# synchronize resolve utility scripts
_sync_utility_scripts(env)
log.info("Resolve Pype wrapper has been installed")
log.info("Resolve OpenPype wrapper has been installed")

View file

@ -14,7 +14,7 @@ class ResolvePrelaunch(PreLaunchHook):
app_groups = ["resolve"]
def execute(self):
# TODO: add OTIO installation from `pype/requirements.py`
# TODO: add OTIO installation from `openpype/requirements.py`
# making sure pyton 3.6 is installed at provided path
py36_dir = os.path.normpath(
self.launch_context.env.get("PYTHON36_RESOLVE", ""))

View file

@ -12,7 +12,7 @@ class CreateShotClip(resolve.Creator):
defaults = ["Main"]
gui_tracks = resolve.get_video_track_names()
gui_name = "Pype publish attributes creator"
gui_name = "OpenPype publish attributes creator"
gui_info = "Define sequential rename and fill hierarchy data."
gui_inputs = {
"renameHierarchy": {

View file

@ -26,7 +26,7 @@ class CollectInstances(pyblish.api.ContextPlugin):
data = dict()
timeline_item = timeline_item_data["clip"]["item"]
# get pype tag data
# get openpype tag data
tag_data = resolve.get_timeline_item_pype_tag(timeline_item)
self.log.debug(f"__ tag_data: {pformat(tag_data)}")

View file

@ -6,7 +6,7 @@ import pype
def main(env):
import pype.hosts.resolve as bmdvr
# Registers pype's Global pyblish plugins
# Registers openpype's Global pyblish plugins
pype.install()
bmdvr.setup(env)

View file

@ -10,10 +10,10 @@ log = Logger().get_logger(__name__)
def main(env):
import pype.hosts.resolve as bmdvr
# Registers pype's Global pyblish plugins
# Registers openpype's Global pyblish plugins
pype.install()
# activate resolve from pype
# activate resolve from openpype
avalon.install(bmdvr)
log.info(f"Avalon registred hosts: {avalon.registered_host()}")

View file

@ -14,9 +14,9 @@ class ThisTestGUI(TestGUI):
def __init__(self):
super(ThisTestGUI, self).__init__()
# Registers pype's Global pyblish plugins
# Registers openpype's Global pyblish plugins
pype.install()
# activate resolve from pype
# activate resolve from openpype
avalon.install(bmdvr)
def _open_dir_button_pressed(self, event):

View file

@ -13,9 +13,9 @@ class ThisTestGUI(TestGUI):
def __init__(self):
super(ThisTestGUI, self).__init__()
# Registers pype's Global pyblish plugins
# Registers openpype's Global pyblish plugins
pype.install()
# activate resolve from pype
# activate resolve from openpype
avalon.install(bmdvr)
def _open_dir_button_pressed(self, event):

View file

@ -10,7 +10,7 @@
#------------ COMMON -----------------------------
#-------------------------------------------------
$100 "Pype Tools"
$100 "OpenPype Tools"
$10010 "Workfiles"
$10020 "Load"

View file

@ -99,7 +99,7 @@ class AnimationFBXLoader(api.Loader):
container=container_name, path=asset_dir)
data = {
"schema": "avalon-core:container-2.0",
"schema": "openpype:container-2.0",
"id": pipeline.AVALON_CONTAINER_ID,
"asset": asset,
"namespace": asset_dir,

View file

@ -96,7 +96,7 @@ class SkeletalMeshFBXLoader(api.Loader):
container=container_name, path=asset_dir)
data = {
"schema": "avalon-core:container-2.0",
"schema": "openpype:container-2.0",
"id": pipeline.AVALON_CONTAINER_ID,
"asset": asset,
"namespace": asset_dir,

View file

@ -67,7 +67,7 @@ class AnimationCollectionLoader(api.Loader):
container=container_name, path=asset_dir)
data = {
"schema": "avalon-core:container-2.0",
"schema": "openpype:container-2.0",
"id": pipeline.AVALON_CONTAINER_ID,
"asset": asset,
"namespace": asset_dir,

View file

@ -79,7 +79,7 @@ class StaticMeshFBXLoader(api.Loader):
container=container_name, path=asset_dir)
data = {
"schema": "avalon-core:container-2.0",
"schema": "openpype:container-2.0",
"id": pipeline.AVALON_CONTAINER_ID,
"asset": asset,
"namespace": asset_dir,

View file

@ -274,7 +274,7 @@ class StoreThumbnailsToAvalon(BaseAction):
thumbnail_entity = {
"_id": thumbnail_id,
"type": "thumbnail",
"schema": "pype:thumbnail-1.0",
"schema": "openpype:thumbnail-1.0",
"data": {
"template": thumbnail_template,
"template_data": template_data

View file

@ -31,13 +31,13 @@ log = Logger.get_logger(__name__)
# Current schemas for avalon types
EntitySchemas = {
"project": "pype:project-3.0",
"asset": "pype:asset-3.0",
"config": "pype:config-2.0"
"project": "openpype:project-3.0",
"asset": "openpype:asset-3.0",
"config": "openpype:config-2.0"
}
# Group name of custom attributes
CUST_ATTR_GROUP = "pype"
CUST_ATTR_GROUP = "openpype"
# name of Custom attribute that stores mongo_id from avalon db
CUST_ATTR_ID_KEY = "avalon_mongo_id"
@ -102,11 +102,12 @@ def get_pype_attr(session, split_hierarchical=True, query_keys=None):
"is_hierarchical",
"default"
]
# TODO remove deprecated "avalon" group from query
# TODO remove deprecated "pype" group from query
cust_attrs_query = (
"select {}"
" from CustomAttributeConfiguration"
" where group.name in (\"avalon\", \"{}\")"
# Kept `pype` for Backwards Compatiblity
" where group.name in (\"pype\", \"{}\")"
).format(", ".join(query_keys), CUST_ATTR_GROUP)
all_avalon_attr = session.query(cust_attrs_query).all()
for cust_attr in all_avalon_attr:

View file

@ -6,9 +6,11 @@ from avalon import io
# Copy of constant `pype.modules.ftrack.lib.avalon_sync.CUST_ATTR_AUTO_SYNC`
CUST_ATTR_AUTO_SYNC = "avalon_auto_sync"
CUST_ATTR_GROUP = "openpype"
# Copy of `get_pype_attr` from pype.modules.ftrack.lib
# TODO import from openpype's ftrack module when possible to not break Python 2
def get_pype_attr(session, split_hierarchical=True):
custom_attributes = []
hier_custom_attributes = []
@ -16,8 +18,9 @@ def get_pype_attr(session, split_hierarchical=True):
cust_attrs_query = (
"select id, entity_type, object_type_id, is_hierarchical, default"
" from CustomAttributeConfiguration"
" where group.name in (\"avalon\", \"pype\")"
)
# Kept `pype` for Backwards Compatiblity
" where group.name in (\"pype\", \"{}\")"
).format(CUST_ATTR_GROUP)
all_avalon_attr = session.query(cust_attrs_query).all()
for cust_attr in all_avalon_attr:
if split_hierarchical and cust_attr["is_hierarchical"]:

View file

@ -2,6 +2,7 @@ import pyblish.api
from avalon import io
from copy import deepcopy
class ExtractHierarchyToAvalon(pyblish.api.ContextPlugin):
"""Create entities in Avalon based on collected data."""
@ -148,7 +149,7 @@ class ExtractHierarchyToAvalon(pyblish.api.ContextPlugin):
# Unarchived asset should not use same data
new_entity = {
"_id": entity["_id"],
"schema": "avalon-core:asset-3.0",
"schema": "openpype:asset-3.0",
"name": entity["name"],
"parent": self.project["_id"],
"type": "asset",
@ -162,7 +163,7 @@ class ExtractHierarchyToAvalon(pyblish.api.ContextPlugin):
def create_avalon_asset(self, name, data):
item = {
"schema": "avalon-core:asset-3.0",
"schema": "openpype:asset-3.0",
"name": name,
"parent": self.project["_id"],
"type": "asset",

View file

@ -168,7 +168,7 @@ class IntegrateHeroVersion(pyblish.api.InstancePlugin):
"version_id": src_version_entity["_id"],
"parent": src_version_entity["parent"],
"type": "hero_version",
"schema": "pype:hero_version-1.0"
"schema": "openpype:hero_version-1.0"
}
schema.validate(new_hero_version)

View file

@ -501,7 +501,7 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin):
data.update({'path': dst, 'template': template})
representation = {
"_id": repre_id,
"schema": "pype:representation-2.0",
"schema": "openpype:representation-2.0",
"type": "representation",
"parent": version_id,
"name": repre['name'],
@ -685,7 +685,7 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin):
families.append(_family)
_id = io.insert_one({
"schema": "pype:subset-3.0",
"schema": "openpype:subset-3.0",
"type": "subset",
"name": subset_name,
"data": {
@ -726,7 +726,7 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin):
dict: collection of data to create a version
"""
return {"schema": "pype:version-3.0",
return {"schema": "openpype:version-3.0",
"type": "version",
"parent": subset["_id"],
"name": version_number,

View file

@ -130,7 +130,7 @@ class IntegrateThumbnails(pyblish.api.InstancePlugin):
thumbnail_entity = {
"_id": thumbnail_id,
"type": "thumbnail",
"schema": "pype:thumbnail-1.0",
"schema": "openpype:thumbnail-1.0",
"data": {
"template": thumbnail_template,
"template_data": repre_context

View file

@ -35,9 +35,9 @@ def pype_icon_filepath(debug=None):
debug = bool(os.getenv("PYPE_DEV"))
if debug:
icon_file_name = "pype_icon_dev.png"
icon_file_name = "openpype_icon_staging.png"
else:
icon_file_name = "pype_icon.png"
icon_file_name = "openpype_icon.png"
return get_resource("icons", icon_file_name)
@ -46,7 +46,7 @@ def pype_splash_filepath(debug=None):
debug = bool(os.getenv("PYPE_DEV"))
if debug:
splash_file_name = "pype_splash_dev.png"
splash_file_name = "openpype_splash_staging.png"
else:
splash_file_name = "pype_splash.png"
splash_file_name = "openpype_splash.png"
return get_resource("icons", splash_file_name)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 59 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 69 KiB

Before After
Before After

View file

@ -9,6 +9,18 @@
"resolutionWidth": 1920,
"resolutionHeight": 1080,
"pixelAspect": 1.0,
"applications": [],
"applications": [
"maya_2020",
"nuke_12-2",
"nukex_12-2",
"hiero_12-2",
"resolve_16",
"houdini_18-5",
"blender_2-90",
"harmony_20",
"photoshop_2021",
"aftereffects_2021",
"unreal_4-24"
],
"tools_env": []
}

View file

@ -1,10 +1,4 @@
{
"project_plugins": {
"windows": [],
"darwin": [],
"linux": []
},
"project_environments": {},
"publish": {
"IntegrateHeroVersion": {
"enabled": true
@ -220,5 +214,11 @@
}
}
}
}
},
"project_plugins": {
"windows": [],
"darwin": [],
"linux": []
},
"project_environments": {}
}

View file

@ -459,39 +459,6 @@
0.8,
0.5
]
},
"ReferenceLoader": {
"enabled": true,
"representations": [
"ma",
"mb",
"abc",
"fbx"
]
},
"AudioLoader": {
"enabled": true,
"representations": [
"wav"
]
},
"GpuCacheLoader": {
"enabled": true,
"representations": [
"abc"
]
},
"ImagePlaneLoader": {
"enabled": true,
"representations": [
"jpg",
"png",
"mov"
]
},
"MatchmoveLoader": {
"enabled": true,
"representations": []
}
},
"workfile_build": {

View file

@ -151,32 +151,6 @@
]
}
]
},
{
"type": "schema_template",
"name": "template_loader_plugin",
"template_data": [
{
"key": "ReferenceLoader",
"label": "Reference Loader"
},
{
"key": "AudioLoader",
"label": "Audio Loader"
},
{
"key": "GpuCacheLoader",
"label": "GpuCache Loader"
},
{
"key": "ImagePlaneLoader",
"label": "Imageplane Loader"
},
{
"key": "MatchmoveLoader",
"label": "Matchmove Loader"
}
]
}
]
}

View file

@ -6,7 +6,7 @@
"children": [
{
"type": "schema_template",
"name": "template_loader_plugin",
"name": "template_loader_plugin_nuke",
"template_data": [
{
"key": "LoadImage",

View file

@ -108,7 +108,7 @@ class TestPerformance():
"template": "{root}\\{project[name]}\\{hierarchy}\\{asset}\\publish\\{family}\\{subset}\\v{version:0>3}\\{project[code]}_{asset}_{subset}_v{version:0>3}<_{output}><.{frame:0>4}>.{representation}"
},
"type": "representation",
"schema": "pype:representation-2.0"
"schema": "openpype:representation-2.0"
}
insert_recs.append(document)

View file

@ -396,7 +396,7 @@ class Window(QtWidgets.QDialog):
new_asset_info = {
'parent': av_project['_id'],
'name': name,
'schema': "avalon-core:asset-3.0",
'schema': "openpype:asset-3.0",
'type': 'asset',
'data': new_asset_data
}

View file

@ -9,4 +9,4 @@ def load_stylesheet():
def app_icon_path():
return os.path.join(os.path.dirname(__file__), "pype_icon.png")
return os.path.join(os.path.dirname(__file__), "openpype_icon.png")

@ -1 +1 @@
Subproject commit 911a29a44d5e6a128f4326deb1155184fe811fd7
Subproject commit de4312416704102a3587802d7a042e75efb99d49

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:application-1.0",
"title": "openpype:application-1.0",
"description": "An application definition.",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:asset-1.0",
"title": "openpype:asset-1.0",
"description": "A unit of data",
"type": "object",
@ -32,4 +32,4 @@
},
"definitions": {}
}
}

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:asset-2.0",
"title": "openpype:asset-2.0",
"description": "A unit of data",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "Schema identifier for payload",
"type": "string",
"enum": ["avalon-core:asset-2.0"],
"example": "avalon-core:asset-2.0"
"enum": ["openpype:asset-2.0"],
"example": "openpype:asset-2.0"
},
"type": {
"description": "The type of document",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:asset-3.0",
"title": "openpype:asset-3.0",
"description": "A unit of data",
"type": "object",
@ -19,8 +19,8 @@
"schema": {
"description": "Schema identifier for payload",
"type": "string",
"enum": ["avalon-core:asset-3.0", "pype:asset-3.0"],
"example": "avalon-core:asset-3.0"
"enum": ["openpype:asset-3.0"],
"example": "openpype:asset-3.0"
},
"type": {
"description": "The type of document",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:config-1.0",
"title": "openpype:config-1.0",
"description": "A project configuration.",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:config-1.1",
"title": "openpype:config-1.1",
"description": "A project configuration.",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:config-2.0",
"title": "openpype:config-2.0",
"description": "A project configuration.",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:container-1.0",
"title": "openpype:container-1.0",
"description": "A loaded asset",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:container-2.0",
"title": "openpype:container-2.0",
"description": "A loaded asset",
"type": "object",
@ -21,8 +21,8 @@
"schema": {
"description": "Schema identifier for payload",
"type": "string",
"enum": ["avalon-core:container-2.0", "pype:container-2.0"],
"example": "pype:container-2.0"
"enum": ["openpype:container-2.0"],
"example": "openpype:container-2.0"
},
"id": {
"description": "Identifier for finding object in host",
@ -56,4 +56,4 @@
"example": "59523f355f8c1b5f6c5e8348"
}
}
}
}

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:hero_version-1.0",
"title": "openpype:hero_version-1.0",
"description": "Hero version of asset",
"type": "object",
@ -27,8 +27,8 @@
"schema": {
"description": "The schema associated with this document",
"type": "string",
"enum": ["avalon-core:hero_version-1.0", "pype:hero_version-1.0"],
"example": "pype:hero_version-1.0"
"enum": ["openpype:hero_version-1.0"],
"example": "openpype:hero_version-1.0"
},
"type": {
"description": "The type of document",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:config-1.0",
"title": "openpype:config-1.0",
"description": "A project configuration.",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:config-1.1",
"title": "openpype:config-1.1",
"description": "A project configuration.",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:project-2.0",
"title": "openpype:project-2.0",
"description": "A unit of data",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "Schema identifier for payload",
"type": "string",
"enum": ["avalon-core:project-2.0", "pype:project-2.0"],
"example": "avalon-core:project-2.0"
"enum": ["openpype:project-2.0"],
"example": "openpype:project-2.0"
},
"type": {
"description": "The type of document",
@ -52,7 +52,7 @@
"type": "object",
"description": "Document metadata",
"example": {
"schema": "pype:config-1.0",
"schema": "openpype:config-1.0",
"apps": [
{
"name": "maya2016",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:project-2.1",
"title": "openpype:project-2.1",
"description": "A unit of data",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "Schema identifier for payload",
"type": "string",
"enum": ["avalon-core:project-2.1", "pype:project-2.1"],
"example": "avalon-core:project-2.1"
"enum": ["openpype:project-2.1"],
"example": "openpype:project-2.1"
},
"type": {
"description": "The type of document",
@ -52,7 +52,7 @@
"type": "object",
"description": "Document metadata",
"example": {
"schema": "pype:config-1.1",
"schema": "openpype:config-1.1",
"apps": [
{
"name": "maya2016",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:project-3.0",
"title": "openpype:project-3.0",
"description": "A unit of data",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "Schema identifier for payload",
"type": "string",
"enum": ["pype:project-3.0"],
"example": "pype:project-3.0"
"enum": ["openpype:project-3.0"],
"example": "openpype:project-3.0"
},
"type": {
"description": "The type of document",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:representation-1.0",
"title": "openpype:representation-1.0",
"description": "The inverse of an instance",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:representation-2.0",
"title": "openpype:representation-2.0",
"description": "The inverse of an instance",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "Schema identifier for payload",
"type": "string",
"enum": ["avalon-core:representation-2.0", "pype:representation-2.0"],
"example": "pype:representation-2.0"
"enum": ["openpype:representation-2.0"],
"example": "openpype:representation-2.0"
},
"type": {
"description": "The type of document",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:session-1.0",
"title": "openpype:session-1.0",
"description": "The Avalon environment",
"type": "object",
@ -140,4 +140,4 @@
"example": "True"
}
}
}
}

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:session-2.0",
"title": "openpype:session-2.0",
"description": "The Avalon environment",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:shaders-1.0",
"title": "openpype:shaders-1.0",
"description": "Relationships between shaders and Avalon IDs",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:subset-1.0",
"title": "openpype:subset-1.0",
"description": "A container of instances",
"type": "object",
@ -32,4 +32,4 @@
},
"definitions": {}
}
}

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:subset-2.0",
"title": "openpype:subset-2.0",
"description": "A container of instances",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "The schema associated with this document",
"type": "string",
"enum": ["pype:subset-2.0"],
"example": "pype:subset-2.0"
"enum": ["openpype:subset-2.0"],
"example": "openpype:subset-2.0"
},
"type": {
"description": "The type of document",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:subset-3.0",
"title": "openpype:subset-3.0",
"description": "A container of instances",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "The schema associated with this document",
"type": "string",
"enum": ["avalon-core:subset-3.0", "pype:subset-3.0"],
"example": "pype:subset-3.0"
"enum": ["openpype:subset-3.0"],
"example": "openpype:subset-3.0"
},
"type": {
"description": "The type of document",
@ -51,7 +51,7 @@
}
},
"example": {
"families" : [
"families" : [
"avalon.camera"
],
"frameStart": 1000,

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:thumbnail-1.0",
"title": "openpype:thumbnail-1.0",
"description": "Entity with thumbnail data",
"type": "object",
@ -18,8 +18,8 @@
"schema": {
"description": "The schema associated with this document",
"type": "string",
"enum": ["pype:thumbnail-1.0"],
"example": "pype:thumbnail-1.0"
"enum": ["openpype:thumbnail-1.0"],
"example": "openpype:thumbnail-1.0"
},
"type": {
"description": "The type of document",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:version-1.0",
"title": "openpype:version-1.0",
"description": "An individual version",
"type": "object",

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:version-2.0",
"title": "openpype:version-2.0",
"description": "An individual version",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "The schema associated with this document",
"type": "string",
"enum": ["pype:version-2.0"],
"example": "pype:version-2.0"
"enum": ["openpype:version-2.0"],
"example": "openpype:version-2.0"
},
"type": {
"description": "The type of document",
@ -82,10 +82,10 @@
"example": {
"source" : "{root}/f02_prod/assets/BubbleWitch/work/modeling/marcus/maya/scenes/model_v001.ma",
"author" : "marcus",
"families" : [
"families" : [
"avalon.model"
],
"time" : "20170510T090203Z"
"time" : "20170510T090203Z"
}
}
}

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:version-3.0",
"title": "openpype:version-3.0",
"description": "An individual version",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "The schema associated with this document",
"type": "string",
"enum": ["avalon-core:version-3.0", "pype:version-3.0"],
"example": "pype:version-3.0"
"enum": ["openpype:version-3.0"],
"example": "openpype:version-3.0"
},
"type": {
"description": "The type of document",
@ -77,7 +77,7 @@
"example": {
"source" : "{root}/f02_prod/assets/BubbleWitch/work/modeling/marcus/maya/scenes/model_v001.ma",
"author" : "marcus",
"time" : "20170510T090203Z"
"time" : "20170510T090203Z"
}
}
}

View file

@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "pype:workfile-1.0",
"title": "openpype:workfile-1.0",
"description": "Workfile additional information.",
"type": "object",
@ -20,8 +20,8 @@
"schema": {
"description": "Schema identifier for payload",
"type": "string",
"enum": ["pype:workfile-1.0"],
"example": "pype:workfile-1.0"
"enum": ["openpype:workfile-1.0"],
"example": "openpype:workfile-1.0"
},
"type": {
"description": "The type of document",