{"id":19,"date":"2011-09-08T17:48:36","date_gmt":"2011-09-09T00:48:36","guid":{"rendered":"https:\/\/williamgs.com\/wp_backup\/blog\/?p=19"},"modified":"2019-12-28T13:15:39","modified_gmt":"2019-12-28T21:15:39","slug":"maya-lightlink-tool","status":"publish","type":"post","link":"https:\/\/williamgs.com\/wp_backup\/posts\/maya-lightlink-tool\/","title":{"rendered":"Maya LightLink Tool"},"content":{"rendered":"<p>Light Linking in Maya may appear at times to be black magic, this tool aims to<br \/>\ndemystify it and make fixing problems effortless for any user.<br \/>\nUnfortunately, some light linking tools\/scripts actually create more problems.<br \/>\nThis tool is designed to safely clean scenes anytime, and additionally provide<br \/>\ntools for efficiently light linking. For more info, read the full help docs.<\/p>\n<p><a title=\"LightLinkTool\" href=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool.zip\" target=\"_blank\" rel=\"noopener noreferrer\">Download MayaLightLinkTool here<\/a> (contains 1 directory with readme, and 2 python scripts)<\/p>\n<p><a href=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanAutoRepair.png\" rel=\"shadowbox[gui]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27\" title=\"LightLinkTool_GUI_cleanAutoRepair\" src=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanAutoRepair.png\" alt=\"\" width=\"207\" height=\"317\" srcset=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanAutoRepair.png 207w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanAutoRepair-98x150.png 98w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanAutoRepair-196x300.png 196w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanAutoRepair-131x200.png 131w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanAutoRepair-195x300.png 195w\" sizes=\"auto, (max-width: 207px) 100vw, 207px\" \/><\/a><a href=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanManualRepair.png\" rel=\"shadowbox[gui]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-28\" title=\"LightLinkTool_GUI_cleanManualRepair\" src=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanManualRepair.png\" alt=\"\" width=\"207\" height=\"317\" srcset=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanManualRepair.png 207w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanManualRepair-98x150.png 98w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanManualRepair-196x300.png 196w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanManualRepair-131x200.png 131w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_cleanManualRepair-195x300.png 195w\" sizes=\"auto, (max-width: 207px) 100vw, 207px\" \/><\/a><a href=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_tools.png\" rel=\"shadowbox[gui]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-29\" title=\"LightLinkTool_GUI_tools\" src=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_tools.png\" alt=\"\" width=\"207\" height=\"317\" srcset=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_tools.png 207w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_tools-98x150.png 98w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_tools-196x300.png 196w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_tools-131x200.png 131w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_GUI_tools-195x300.png 195w\" sizes=\"auto, (max-width: 207px) 100vw, 207px\" \/><\/a><\/p>\n<p>Example of before and after cleaning:<\/p>\n<p><a href=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty.png\" rel=\"shadowbox[scene]\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-31\" title=\"LightLinkTool_hypershade_dirty\" src=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-300x208.png\" alt=\"\" width=\"300\" height=\"208\" srcset=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-300x208.png 300w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-600x417.png 600w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-150x104.png 150w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-768x534.png 768w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-760x528.png 760w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-863x600.png 863w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-200x139.png 200w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-400x278.png 400w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-800x556.png 800w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty-431x300.png 431w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_dirty.png 919w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><a href=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean.png\" rel=\"shadowbox[scene]\"> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-30\" title=\"LightLinkTool_hypershade_clean\" src=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-300x208.png\" alt=\"\" width=\"300\" height=\"208\" srcset=\"https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-300x208.png 300w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-600x417.png 600w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-150x104.png 150w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-768x534.png 768w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-760x528.png 760w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-863x600.png 863w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-200x139.png 200w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-400x278.png 400w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-800x556.png 800w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean-431x300.png 431w, https:\/\/williamgs.com\/wp_backup\/wp-content\/uploads\/2011\/09\/LightLinkTool_hypershade_clean.png 919w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><!--more-->Actually, here&#8217;s the full description from the help():<\/p>\n<pre>requires: pymel 1.0+, getNodesPM\r\ndeveloped with Maya2011\r\ntested with Maya2009\r\n\r\nDesigned to clean light linking back to \"no light links\" clean. Scenes, even\r\n\u00a0\u00a0\u00a0 without any lights, can sometimes be plagued by excessive light links.\r\n\u00a0\u00a0\u00a0 Maya's Light Link Editor is useless if there are no lights, and is impossible\r\n\u00a0\u00a0\u00a0 for cleanup. This problem often arises from improper light linking, poor\r\n\u00a0\u00a0\u00a0 cleaning tools, or what seems to be no reason at all. Described below are\r\n\u00a0\u00a0\u00a0 known causes for Light Link expansion.\r\nIn any case, this tools is designed to be comprehensive for cleaning, and also\r\n\u00a0\u00a0\u00a0 includes relevant shortcuts for linking properly and diagnostics.\r\n\u00a0\u00a0 \u00a0\r\nThis tool is not designed to reproduce features of Maya's Light Link Editor or \r\n\u00a0\u00a0\u00a0 Rendering &gt; Lighting\/Shading Menu. It does offer improved workflow shortcuts\r\n\u00a0\u00a0\u00a0 for some equivalent functions however. If you want visual feedback, open up\r\n\u00a0\u00a0\u00a0 the Light Link Editor or Hypershade\/Hypergraph to see what's going on. If\r\n\u00a0\u00a0\u00a0 you need separate control over light\/shadow links, use the Maya menu\r\n\u00a0\u00a0\u00a0 instead, just be aware you will no longer be limited to linking sets only.\r\n\r\nNote on Light Linking practices:\r\n\u00a0\u00a0\u00a0 Maya can create \"light links\" between lights and Geometry, or Sets of\r\n\u00a0\u00a0\u00a0 either. Autodesk documentation explains that Sets are preferred:\r\n\u00a0\u00a0\u00a0 <a href=\"http:\/\/download.autodesk.com\/us\/maya\/2011help\/Commands\/lightlink.html\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/download.autodesk.com\/us\/maya\/2011help\/Commands\/lightlink.html<\/a>\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 Light Links between individual objects or lights quickly create a mess, use\r\n\u00a0\u00a0\u00a0 objectSets instead. It's cleaner, and more obvious, even if you are just\r\n\u00a0\u00a0\u00a0 linking one light to one object! As far as this tool is concerned, any\r\n\u00a0\u00a0\u00a0 individual light or object linked to something is bad and will be cleaned,\r\n\u00a0\u00a0\u00a0 because there's no way to tell its intention; this type of light link can\r\n\u00a0\u00a0\u00a0 also contradict other links. For this reason, the tool is designed around\r\n\u00a0\u00a0\u00a0 deliberately linking with Sets only, all other links get cleaned back to\r\n\u00a0\u00a0\u00a0 normal required links only. Don't worry, you can destroy the deliberate\r\n\u00a0\u00a0\u00a0 links too if you choose.\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 shadingGroups as objectSets: Unreliable method because rebuilding default\r\n\u00a0\u00a0\u00a0 links has no way to determine if connection to defaultLightSet was\r\n\u00a0\u00a0\u00a0 deliberately broken. Use a new objectSet instead and its Light Linking\r\n\u00a0\u00a0\u00a0 should override the shadingGroup's connection to defaultLightSet; that way,\r\n\u00a0\u00a0\u00a0 all members of the shadingGroup don't necessarily have to be lit by default.\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 Another note: Lights with 'Illuminate by default' off are not a members of\r\n\u00a0\u00a0\u00a0 the defaultLightSet, and so will be off.\r\n\u00a0\u00a0\u00a0 In order to link those lights to specific things, you should create:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 - an objectSet for the exclusive LIGHTS (not in default light set) \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 - an objectSet for the exclusive MESHES (also receives default lights)\r\n\u00a0\u00a0\u00a0 Then, make or break links as necessary. The objectSet with geometry can\r\n\u00a0\u00a0\u00a0 contain all geometry in the scene if you wish. If you want that geometry to\r\n\u00a0\u00a0\u00a0 be affected by ONLY those lights, \"Make Links\" between them, then\r\n\u00a0\u00a0\u00a0 \"Break Links\" between the geometry objectSet and the defaultLightSet.\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 #===========================================================================\r\n\u00a0\u00a0\u00a0 # IMPORTANT: For deliberate light linking, always use sets of objects and\r\n\u00a0\u00a0\u00a0 # lights, NEVER individual lights or objects.\r\n\u00a0\u00a0\u00a0 #===========================================================================\r\n\u00a0\u00a0 \u00a0\r\nKnown Cause of Light Link Expansion 1: Links come in pairs, cleanup should too!\r\n\u00a0\u00a0\u00a0 At minimum (i.e. ignoring shadow linking), each shadingGroup should have one\r\n\u00a0\u00a0\u00a0 connection to lightLinker1, such as:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (initialShadingGroup.message --&gt; lightLinker1.link[*].object)\r\n\u00a0\u00a0\u00a0 For each connection from any set to lightLinker1, there should be a matching\r\n\u00a0\u00a0\u00a0 connection from the defaultLightSet to the lightLinker node, such as:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (defaultLightSet.message --&gt; lightLinker1.link[*].light)\r\n\u00a0\u00a0\u00a0 Proof of Concept --- Create a new (empty) scene and run this:\r\n\r\nimport LightLinkTool\r\nll = LightLinkTool.LightLinkTool()\r\nll.buildUI()\r\nll.bad_repair(iterations=100)\r\ndel ll\r\n\r\nKnown Cause of Light Link Expansion 2: Maya's Light Link Editor, avoid using it.\r\n\u00a0\u00a0\u00a0 The Rendering &gt; Lighting\/Shading Menu items to make\/break links are fine.\r\n\u00a0\u00a0 \u00a0\r\nFeatures:\r\n\u00a0\u00a0\u00a0 1 - Cleanup.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 LightLink counter updates automatically after any clean or\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 rebuild action. Recount button allows manual recount any time.\r\n\u00a0\u00a0\u00a0 1a - Auto Cleanup.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 No options or feedback besides the counter update.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Safe for use by anyone any time, not just lighters\/TDs.\r\n\u00a0\u00a0\u00a0 1b - Manual Cleanup.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Requires clicking two buttons successively instead of\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 one. Allows the inquisitive lighter\/TD to see exactly what is\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 performed, if chosen.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Preserve Manual Links\" preserves deliberate light linking as described\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 above. Recommended ON.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Preserve Reference Links\" will skip operation on referenced nodes.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Ignoring this can create unnecessary, redundant, or futile links.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Instead, you should clean links in the references themselves, or\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 dare to save reference edits.\u00a0 Recommended ON.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Verbose\" will print what is performed.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Dry Run\" (or Test mode) forces Verbose on, but performs no action.\r\n\u00a0\u00a0\u00a0 2 - Tools.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Workflow shortcuts. *Improvements upon regular commands.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 I don't recommend Light Linking generally, but if you want to, these\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 buttons should be relevant and useful.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Create Sets\" buttons create an objectSet based on selection with either\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 lights or geometry only. Just a shortcut that filters set contents.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Light Linking\" executes lightlink 'make' or 'break' command for regular\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 and shadow links, and ensures the use of objectSets.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Affecting\/Effected\" selects lights affecting (lighting or shadowing)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 the currently selected objects (or objectSets), or the geometry\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 effected (lit or shadowed) by the currently selected lights\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (or objectSets). Unlike Maya's equivalent command, this works for\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 multiple objects\/lights at once (although you CAN select multiple,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Maya's Rendering &gt; Lighting\/Shading Menu command is hard coded to\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 only use the first object\/light).\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"Light not in defaultLightSet\" just in case you want to know.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \"LightLinker node\" each scene should only have one, unless you break its\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 outgoing connections, at which point a new one will be created, \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 (don't do that; this tool wont let you, only incoming connections\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 should ever be broken). Useful for graphing in the hypershade\/graph.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\nUsage Examples:\r\n\r\n# GUI mode\r\nimport LightLinkTool\r\nLightLinkTool.loadUI()\r\n\r\n# command-line cleanup:\r\nimport LightLinkTool\r\nll = LightLinkTool.LightLinkTool()\r\nll.destroy();ll.rebuild()<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Light Linking in Maya may appear at times to be black magic, this tool aims to demystify it and make fixing problems effortless for any user. Unfortunately, some light linking <a class=\"more-link\" href=\"https:\/\/williamgs.com\/wp_backup\/posts\/maya-lightlink-tool\/\">Continue Reading<span class=\"screen-reader-text\">Maya LightLink Tool<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[70,27,62,9,50],"class_list":["post-19","post","type-post","status-publish","format-standard","hentry","category-python","tag-light-linking","tag-maya","tag-pipeline","tag-pymel","tag-python"],"_links":{"self":[{"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/posts\/19","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/comments?post=19"}],"version-history":[{"count":14,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/posts\/19\/revisions"}],"predecessor-version":[{"id":1932,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/posts\/19\/revisions\/1932"}],"wp:attachment":[{"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/media?parent=19"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/categories?post=19"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/williamgs.com\/wp_backup\/wp-json\/wp\/v2\/tags?post=19"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}