You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/AtomLyIntegration/TechnicalArt/DccScriptingInterface
Jonny Galloway b779f358d0
Refactor DCCsi to work better with O3DE changes (#4226)
* moving files in refactor/re-org

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* dev env refactor/re-org

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* moving/re-org so we can deprate the SDK nomiclature

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* moving/re-org so we can deprate the SDK nomiclature

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Refactoring env so I can replace SDK with Tools folder

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* re-org and prune, from SKD to Tools

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Removing old .bat files from SDK

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* updated how to retreive PYTHONHOME

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Can't use/set PYTHONHOME with DCC Tools

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* small refactor

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* repaired a missed typo (causes error)

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Added missing EntityId.h include to FocusModeInterface.h

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* refactor additional LY to O3DE tags

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Some design scaffold file stubs

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* stubbing in scaffold file pattern

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Removal of corrupted prefabs

Signed-off-by: Benjamin Black <benblac@amazon.com>

* refactored config_utils to maintain py2.7 support for maya 2020

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* refactored config_utils to maintain py2.7 support for maya 2020

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* pruning and cleanup

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* .env is for local dev overrides

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* .env is for local dev overrides

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* clean up init and logging patterns

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Core refactoring, config.py functional standalone

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* cleaned up some bad logging, fixed up boostrap

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* fixed validation errors

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* fix logging issue, tiddy up

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* tiddy up maya for .bat bootstraping and launch

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* name stub, fix validation

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Co-authored-by: Benjamin Black <benblac@amazon.com>
4 years ago
..
3rdParty/Python Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
Assets/TestData Integrating up through commit 90f050496 5 years ago
Code Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
Editor/Scripts Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
SDK Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
Tools Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
azpy Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
.env.example Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
.gitignore Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
.p4ignore Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
CMakeLists.txt Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
README.txt Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
config.py Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
dccsi_stub Initial commit 5 years ago
gem.json Initial gem dependencies (#4229) 4 years ago
requirements.txt adding qdarkstyle to requirements.txt since we removed the package from codebase 5 years ago
settings.json Refactor DCCsi to work better with O3DE changes (#4226) 4 years ago
setup.py Shorten copyright headers by splitting into 2 lines (#2213) 5 years ago
workspace.mel Integrating up through commit 90f050496 5 years ago

README.txt

"""
Copyright (c) Contributors to the Open 3D Engine Project.
For complete copyright and license terms please see the LICENSE at the root of this distribution.

SPDX-License-Identifier: Apache-2.0 OR MIT
"""
# -------------------------------------------------------------------------

This folder contains the DccScriptingInterface (DCCsi) for O3DE

Notice: The old \\SDK folder is being replaced with \\Tools
The scripts in \\SDK may be out of data (and not run)
When scripts are finished being updated and refactored into \\Tools the \\SDK will be removed

What is the DCCsi?

- A shared development environment for technical art oriented to working with Python across a number of DCC tools.
- Leverage the existing python ecosystem for technical art.
- Integrate a DCC app like Substance (or Substance SAT api) from the Python driven VFX and Games ecosystem.
- Extend O3DE and unlock its potential for content creators, and the Technical Artists that service them.

Tenets:
(1) Interoperability:	Design DCC-agnostic modules and DCC-bespoke modules
						to work together efficiently and intuitively.

(2) Encapsulation:		Define a module in terms of its essential features and interface to other components,
						to facilitate logical layered design and easy maintenance.

(3) Extensibility:		Design the tool set to be easily extensible with new functionality and new tools.
						Individual pieces should have a generic communication mechanism to allow newly written tools to slot cleanly and transparently into the tool chain.

What is provided (High Level):
- DCC-Agnostic Python Framework (as a modular Gem) related to multiple integrations for:
	O3DE Editor (python scripting, utils and PySide2 tools)
	DCC applications and their Python APIs/SDKs
	Custom standalone tools and utils (python based)
		external from cmd line
		external standalone
		integrated to run within O3DE Editor

What is provided (by folder):

\3rdParty:					Allows third party libs/packages to be integrated outside of O3DE
							Example: O3DE is py3, Maya 2020 (and earlier) is py27
							O3DE provides a patterns for Gems to provide a requirements.txt
							See:
								DccScriptingInterface\reqiurements.txt
								^ These packages will be fetched and installed into O3DE python at build time
				
							This means for some applications like Maya we need another way to add the same packages
							See:
								DccScriptingInterface\SDK\Maya\readme.txt
								DccScriptingInterface\SDK\Maya\requirements.txt
								DccScriptingInterface\3rdParty\Python\Lib\2.x\2.7.x\site-packages\*

							Packages that reside in 3rdParty are never commited to the repo (only fetched+installed)

\Assets:					All O3DE Gems can maintain an asset folder
							If a Gem contains an \Asset folder, these assets are folded into the projects asset data
							These assets are processed by the Asset Processor for use in the Editor and Runtime
							In the DCCsi the \Assets folder primarily contains TestData

\azpy						Core (shared) API, A pure python Package and Modules

\Code 						Contains the bare bones C++ scaffold to build and integrate the Gem with O3DE
							Notes:	portions of the DCCsi can be utilized outside of O3DE
									thus this Gem doens't have to be enabled and built for some use cases

\Editor						This folder provides an entry point pattern for extending O3DE Editor with python
							When a Gem is enabled ...
							If the following if found, it will be executed when the Editor boots:
								"Editor\Scripts\bootstrap.py"

							This can be used to initialize code access, extend the editor (PySide2), etc.

\Tools						This is where the following is maintained:

\Tools\DCC 					Integration for DCC tools:
								configuration of tool (managed env, etc.)
								bootstrapping, such as providing the tool access to azpy api code
								extensibility, such as adding new functionality or tool to the app

\Tools\DCC\Maya				An example of adding a integration for Autodesk Maya

\Tools\Env\Windows			This provides a .bat file managed env to configure and bootsrap windows apps
\Tools\Launchers\windows	Provides .bat files based tool launchers for windows (accesses env)