30 lines
863 B
Python
30 lines
863 B
Python
import logging
|
|
|
|
from maya import cmds, mel
|
|
|
|
from ..util.error import DNAViewerError
|
|
|
|
|
|
class Shader:
|
|
@staticmethod
|
|
def default_lambert_shader(
|
|
mesh_name: str, character_name: str = None, create_character_node: bool = False
|
|
) -> None:
|
|
try:
|
|
if create_character_node:
|
|
names = cmds.ls(f"*|{mesh_name}", l=True)
|
|
name = [
|
|
item for item in names if item.startswith(f"|{character_name}")
|
|
][0]
|
|
cmds.select(name, r=True)
|
|
else:
|
|
cmds.select(mesh_name, r=True)
|
|
|
|
mel.eval("sets -e -forceElement initialShadingGroup")
|
|
|
|
except Exception as e:
|
|
logging.error(
|
|
f"Couldn't set lambert shader for mesh {mesh_name}. Reason: {e}"
|
|
)
|
|
raise DNAViewerError(e) from e
|