tag:blogger.com,1999:blog-70309970788727339562024-03-12T16:41:11.896-07:00Maya ZestAutodesk Maya, Unity, VR, Playmaker, Blender, After Effects and V-ray for Maya tutorials, tips and tricksMaya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comBlogger122125tag:blogger.com,1999:blog-7030997078872733956.post-81217302579646784032022-01-04T20:39:00.005-08:002022-01-05T22:03:10.788-08:00Copy blender Modifier from one object to many objects<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjDcUBJc810-V3AQ5S8Ud3i6m4kDzQVgRkTtftVFONAj9N536PKtZV4m5RRuQ9mIuwV7T9kNE1mlKVrsvuXvHgVFXVjnfwxIWBIZtOGjqJ3MTUI_hSYqSijVIsjQwAD0fNAhH_0Ce-76gmpXUKNOF9njFK_2ei8i_hjcC3o3yoz4wjUnuOjfRjoUsYxzQ=s110" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="110" data-original-width="108" height="110" src="https://blogger.googleusercontent.com/img/a/AVvXsEjDcUBJc810-V3AQ5S8Ud3i6m4kDzQVgRkTtftVFONAj9N536PKtZV4m5RRuQ9mIuwV7T9kNE1mlKVrsvuXvHgVFXVjnfwxIWBIZtOGjqJ3MTUI_hSYqSijVIsjQwAD0fNAhH_0Ce-76gmpXUKNOF9njFK_2ei8i_hjcC3o3yoz4wjUnuOjfRjoUsYxzQ" width="108" /></a></div><br /><p></p><p>1. With the blender keymap type selected</p><p><br /></p><p>2. Select all the items you want to copy your modifier TO</p><p><br /></p><p>3. lastly should select the object you want to copy the modifier FROM</p><p><br /></p><p>4. Press CTRL L, </p><p>A menu pops up choose link modifiers</p><p><br /></p><p>This will copy the modifiers from your last selected object to the other objects you selected first.</p>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-3603955285520135222021-12-27T15:48:00.007-08:002021-12-27T15:49:22.774-08:00Blender select every other edge loop<p><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg7_WHNJRAA7oMqLucpQr-V5Ns6852vN_H05mFUse_eytLRWMs_3dxs1UJMBXpf_ffgAqcEGMd8TCVCmTB1XNI9Sfc-RMfL_g96pajN_T83avpjftDnO3OJA7Dn4wS2euVuQrAjIBkrG5OS1jzEpozfjIDhSXk-rvDsqtqHd6UE0EmyzcYTN9tFSKmuTw=s544" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="425" data-original-width="544" height="250" src="https://blogger.googleusercontent.com/img/a/AVvXsEg7_WHNJRAA7oMqLucpQr-V5Ns6852vN_H05mFUse_eytLRWMs_3dxs1UJMBXpf_ffgAqcEGMd8TCVCmTB1XNI9Sfc-RMfL_g96pajN_T83avpjftDnO3OJA7Dn4wS2euVuQrAjIBkrG5OS1jzEpozfjIDhSXk-rvDsqtqHd6UE0EmyzcYTN9tFSKmuTw=s320" width="320" /></a> </p><p><br /></p><p>If you are in blender keymap mode (CTRL ALT will not do this in industry keymap set) </p><p>Blender keymap top edit menu>Preferences>Keymap>Blender in the top</p><p>Hold CTRL and ALT then double click an edge loop.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjGJVoED8st2zKqxcK_bmkslSOsY6-r236IMaW4UD-k7LtNv8SjPw_z1OiXHmAk1N7lOHI55xERz84oesKeucDdRA6q3Txm3YJsOlpMXNFsGnQC-2scdQtKyT59PKS9HHL3FRPJZwE_MAaJEcFkRCjjZOwQvpcj0nA1XnOgprGJ_9Bh9y8i_DLx8nH1uA=s480" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="410" data-original-width="480" height="273" src="https://blogger.googleusercontent.com/img/a/AVvXsEjGJVoED8st2zKqxcK_bmkslSOsY6-r236IMaW4UD-k7LtNv8SjPw_z1OiXHmAk1N7lOHI55xERz84oesKeucDdRA6q3Txm3YJsOlpMXNFsGnQC-2scdQtKyT59PKS9HHL3FRPJZwE_MAaJEcFkRCjjZOwQvpcj0nA1XnOgprGJ_9Bh9y8i_DLx8nH1uA=s320" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">Then choose select Checker deselect</div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEivPX3CnQPuQbzXLb70-75ImtlFkXOebWMx9m0l6shgqk9oD8KrVeSpDr8CybAOx925Hv9pWg-_nNW3iaoEyokaVYIzK4XehqJydCmVkJ7txERFOkD4AttDkOJHXSUN1sc9XQ5BR6mxxiqjAI1YS897L43P1uwJrcXrHS0MU3kZfd7qjqA3Z_oUDE_Wwg=s552" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="414" data-original-width="552" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEivPX3CnQPuQbzXLb70-75ImtlFkXOebWMx9m0l6shgqk9oD8KrVeSpDr8CybAOx925Hv9pWg-_nNW3iaoEyokaVYIzK4XehqJydCmVkJ7txERFOkD4AttDkOJHXSUN1sc9XQ5BR6mxxiqjAI1YS897L43P1uwJrcXrHS0MU3kZfd7qjqA3Z_oUDE_Wwg=s320" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">Then shoot select loops>edge loops</div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgIEAlDU87ZpHX-uYp6yLeHCHS7D6l4mIjXyNV93xS5JYoKNaRsCiHiAJwoDWuk0zh71GPZKJVKX9F0WXy6uNi5OiWRqY4vrL0Ts0TuV6dF1csRngxXC5qNd0TwbE2UsPo6WhY7qXZjVegzL1R7nZ9sLVgW5T_7cmfDMUbkcMr8GAWb_YLVpMLp450M1g=s450" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="438" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgIEAlDU87ZpHX-uYp6yLeHCHS7D6l4mIjXyNV93xS5JYoKNaRsCiHiAJwoDWuk0zh71GPZKJVKX9F0WXy6uNi5OiWRqY4vrL0Ts0TuV6dF1csRngxXC5qNd0TwbE2UsPo6WhY7qXZjVegzL1R7nZ9sLVgW5T_7cmfDMUbkcMr8GAWb_YLVpMLp450M1g=s320" width="311" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">There you have it!</div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg7_WHNJRAA7oMqLucpQr-V5Ns6852vN_H05mFUse_eytLRWMs_3dxs1UJMBXpf_ffgAqcEGMd8TCVCmTB1XNI9Sfc-RMfL_g96pajN_T83avpjftDnO3OJA7Dn4wS2euVuQrAjIBkrG5OS1jzEpozfjIDhSXk-rvDsqtqHd6UE0EmyzcYTN9tFSKmuTw=s544" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="425" data-original-width="544" height="250" src="https://blogger.googleusercontent.com/img/a/AVvXsEg7_WHNJRAA7oMqLucpQr-V5Ns6852vN_H05mFUse_eytLRWMs_3dxs1UJMBXpf_ffgAqcEGMd8TCVCmTB1XNI9Sfc-RMfL_g96pajN_T83avpjftDnO3OJA7Dn4wS2euVuQrAjIBkrG5OS1jzEpozfjIDhSXk-rvDsqtqHd6UE0EmyzcYTN9tFSKmuTw=s320" width="320" /></a></div><br /><p><br /></p><p><br /></p><p><br /></p>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-88213836153626307232021-12-24T19:41:00.009-08:002021-12-24T19:41:59.121-08:00Easy Blender Object move pivot point (origin) without using curser!So I just discovered this! Everywhere online tells you to try and use the curser to change the pivot center point of your game object but there is a MUCH easier way!<div><br /></div><div>Simply click the little options menu in the top right corner of the view, and choose "affect only origins". BOOM you can now translate the origin point of your game object!</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiz0nZTo9cMMrKaVFIyAt241D0C-H7Z-hYU1B_nF0i-NygxlilYF0HMLiAm1dBzoVHH7raMSjqieHtALhvj1VQvmN58kyIiHrHC7kyAl3cBj7RW4sVr4a5lQ5yJPMmOhaFCfw9Oh8Y6A04N5KXbmPjazavhrMjwRGmT4UjRywH-TLPNFxgikVgwqKA9WQ=s492" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="188" data-original-width="492" height="234" src="https://blogger.googleusercontent.com/img/a/AVvXsEiz0nZTo9cMMrKaVFIyAt241D0C-H7Z-hYU1B_nF0i-NygxlilYF0HMLiAm1dBzoVHH7raMSjqieHtALhvj1VQvmN58kyIiHrHC7kyAl3cBj7RW4sVr4a5lQ5yJPMmOhaFCfw9Oh8Y6A04N5KXbmPjazavhrMjwRGmT4UjRywH-TLPNFxgikVgwqKA9WQ=w612-h234" width="612" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEj4tDFsnVNXu5epLdY8Hd2ihDn0HW9g9ocxfJRkMusfeFgGnevB-TAk8ob998rhVU2RlmPsBppt4jCoG1BJY9LjylA4y9l2wyWB9cZ8e5Eqvw69peXRTqh-H7rtwUryd4HYbNFw0hwL4lWlrQQJKcUALS_oejcI4UojOZCbvSaxFU-ORNO1OJGWFAV-gA=s249" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="128" data-original-width="249" height="205" src="https://blogger.googleusercontent.com/img/a/AVvXsEj4tDFsnVNXu5epLdY8Hd2ihDn0HW9g9ocxfJRkMusfeFgGnevB-TAk8ob998rhVU2RlmPsBppt4jCoG1BJY9LjylA4y9l2wyWB9cZ8e5Eqvw69peXRTqh-H7rtwUryd4HYbNFw0hwL4lWlrQQJKcUALS_oejcI4UojOZCbvSaxFU-ORNO1OJGWFAV-gA=w400-h205" width="400" /></a></div><br /><div><br /></div>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-52040897394668482752021-12-05T16:17:00.007-08:002022-03-22T22:42:56.235-07:00 BLENDER Export FBX for UNITY Settings - No Armature And Armature<p> This is without an armature:</p><p>(All transforms have been applied to the object already)</p><p>Scale: 1</p><p>Apply Scalings: set to "FBX Units Scale"</p><p>Y up, -Z forward</p><p>Apply Units: UNCHECKED</p><p>Use Space Transform: CHECKED</p><p>Apply Transform: CHECKED</p><p><br /></p><p>__________</p><p>For an FBX with Armature (This is what we used last and it worked for character to be facing the correct direction (01-25-22):</p><p>Scale .1 to be the right size in unity</p><p>Apply Scalings: set to "FBX Units Scale"</p><p>X up, -Z forward</p><p>Apply Units: UNCHECKED</p><p>Use Space Transform: CHECKED</p><p>Apply Transform: CHECKED (On 3-23-22 we successfully overwrote the old mesh and brought in one exported WITHOUT this checked since that was the saved preset - so maybe it should not be checked or it doesn't matter)</p><p>ARMATURE and MESH must both be selected before exporting or it won't orient properly once exported and brought into Unity. It doesn't matter which is selected first, you just need both selected.</p><p>_________</p><p>FBX With an Armature, but don't say Use Space Transform:</p><p>Scale .1</p><p>Apply Scalings: All Local</p><p>Forward: -Y</p><p>Up: Z up</p><p>Apply Unit: UNCHECKED</p><p>Use Space Transform: UNCHECKED</p><p>Apply Transform: UNCHECKED</p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-82935824935059235482021-11-30T18:32:00.005-08:002021-11-30T18:32:52.545-08:00Find the Playmaker FSM That is Turning Off a Game Object<p> Issue: </p><p>A Game Object is getting turned off by a Playmaker FSM somewhere, is there a way to find a reference to the FSM or Action doing it?</p><p><br /></p><p>Answer:</p><p>There are a few ways to track down this kind of info.</p><p>If the deactivated gameobject has an FSM that's receiving an event to deactivate itself you can right click on the event in the Debug Log to see who sent the event.</p><p>If it's just an FSM deactivating an object it's a little more difficult. It's probably the result of an Activate Game Object action, so I would right click that action in the Action Browser to see everywhere that action is used. Then start using the log or breakpoints to narrow it down further.</p><p>You could also pause the game right after the object is deactivated and examine the FSM logs for likely candidates.</p><p><br /></p><p>This was from: https://hutonggames.com/playmakerforum/index.php?topic=4425.0</p><p>Reposting here to be easier for myself to find and maybe could help others too as it took a while of searching to get the right keywords to answer this.</p><p style="text-align: center;"><br /></p>
<p style="text-align: center;">
<div id="donate-button-container">
<div id="donate-button"></div>
<script src="https://www.paypalobjects.com/donate/sdk/donate-sdk.js" charset="UTF-8"></script>
<script>
PayPal.Donation.Button({
env:'production',
hosted_button_id:'UEYFCJTDYRJJL',
image: {
src:'https://pics.paypal.com/00/s/MmYzMDA1ODAtNWMyYy00MzZhLWI0MWYtYTFhMTBkZWJjNzcz/file.PNG',
alt:'Donate with PayPal button',
title:'PayPal - The safer, easier way to pay online!',
}
}).render('#donate-button');
</script>
</div>
<br /></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-52843563755211940072021-11-29T21:20:00.012-08:002021-11-29T22:13:29.739-08:00Send Event from Normcore Realtime component string to Playmaker FSM<p>This may look complicated but it's not as bad as it looks, let me break down the pieces it consists of.</p><p>1. The realtime Component model script (That contains a string we want to sync to all players)</p><p>2.The "sync" script that reads the model string value, updates the realtime model if you or the other player updates it and then communicates that change to the other players.</p><p>3.A FSM event script that contains the event we will send to playmaker. We will activate that FROM the sync script.</p><p>Let's get started!</p><p>We are going to create a way to send an event to a playmaker FSM to tell it when a realtime component string has changed. Normcore sends it's own events but currently I don't know how to get them to talk to playmaker FSM's.</p><p>First make the script that will be the model called SelectedResourceModel for the realtime component string. our string is called "selectedResource"</p><p> <span style="background-color: #1e1e1e; color: #c586c0; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">using</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="background-color: #1e1e1e; color: #4ec9b0; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">System</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: #1e1e1e; color: #4ec9b0; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">Collections</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">;</span></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">System</span>.<span style="color: #4ec9b0;">Collections</span>.<span style="color: #4ec9b0;">Generic</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">UnityEngine</span>;</div><br /><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">Normal</span>.<span style="color: #4ec9b0;">Realtime</span>.<span style="color: #4ec9b0;">Serialization</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">Normal</span>.<span style="color: #4ec9b0;">Realtime</span>;</div><br /><div>[<span style="color: #4ec9b0;">RealtimeModel</span>]</div><div><span style="color: #569cd6;">public</span> <span style="color: #569cd6;">partial</span> <span style="color: #569cd6;">class</span> <span style="color: #4ec9b0;">SelectedResourceModel</span> </div><br /><div>{</div><br /><div> [<span style="color: #4ec9b0;">RealtimeProperty</span>(<span style="color: #b5cea8;">1</span>, <span style="color: #9cdcfe;">reliable</span>: <span style="color: #569cd6;">true</span>, <span style="color: #9cdcfe;">createDidChangeEvent</span>: <span style="color: #569cd6;">true</span>)]</div><div> <span style="color: #569cd6;">private</span> <span style="color: #569cd6;">string</span> <span style="color: #9cdcfe;">_selectedResource</span>;</div><div>}</div></div><p>Once that is created, you can compile that model script in the right of the inspector when you select that model script.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-pW0LEIwoNpo/YaWstPyNotI/AAAAAAAAHcY/2fcoQ-VMFCoSWfVvmWS2h0swno_ZKE_JQCLcBGAsYHQ/s702/CompileModel.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="249" data-original-width="702" height="181" src="https://1.bp.blogspot.com/-pW0LEIwoNpo/YaWstPyNotI/AAAAAAAAHcY/2fcoQ-VMFCoSWfVvmWS2h0swno_ZKE_JQCLcBGAsYHQ/w507-h181/CompileModel.JPG" width="507" /></a></div><br /> <p></p><p>Now when that is compiled you can create the sync script that will talk to the model to sync the realtime component string. selectedResource. The script is called <span style="background-color: #1e1e1e; color: #4ec9b0; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">SelectedResourceScript</span></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">System</span>.<span style="color: #4ec9b0;">Collections</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">System</span>.<span style="color: #4ec9b0;">Collections</span>.<span style="color: #4ec9b0;">Generic</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">UnityEngine</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">UnityEngine</span>.<span style="color: #4ec9b0;">UI</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">Normal</span>.<span style="color: #4ec9b0;">Realtime</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">TMPro</span>;</div><div><br /></div><br /><div><span style="color: #569cd6;">public</span> <span style="color: #569cd6;">class</span> <span style="color: #4ec9b0;">SelectedResourceScript</span> : <span style="color: #4ec9b0;">RealtimeComponent</span></div><div>{</div><br /><div> <span style="color: #569cd6;">private</span> <span style="color: #4ec9b0;">SelectedResourceModel</span> <span style="color: #9cdcfe;">_model</span>;</div><div> <span style="color: #6a9955;">//public RealtimeAvatarManager _avatarManager;</span></div><div> <span style="color: #569cd6;">private</span> <span style="color: #4ec9b0;">TextMeshProUGUI</span> <span style="color: #9cdcfe;">_selectedResourceText</span>;</div><div> <span style="color: #569cd6;">public</span> <span style="color: #569cd6;">string</span> <span style="color: #9cdcfe;">selectedResourceCustom</span>;</div><br /><div> </div><br /><div> <span style="color: #6a9955;">//public ResourceStringUpdatedScript resourceStringUpdatedScript;</span></div><div> </div><br /><div> <span style="color: #569cd6;">private</span> <span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">Awake</span>()</div><div> {</div><div> <span style="color: #6a9955;">//get the reference to the selectedResource textygame object</span></div><div> <span style="color: #9cdcfe;">_selectedResourceText</span> = <span style="color: #dcdcaa;">GetComponent</span> <<span style="color: #4ec9b0;">TextMeshProUGUI</span>>();</div><div> }</div><br /><div> <span style="color: #569cd6;">private</span> <span style="color: #4ec9b0;">SelectedResourceModel</span> <span style="color: #9cdcfe;">model</span></div><div> {</div><div> <span style="color: #569cd6;">set</span></div><div> {</div><br /><div> <span style="color: #c586c0;">if</span> (<span style="color: #9cdcfe;">_model</span> != <span style="color: #569cd6;">null</span>)</div><div> {</div><div> <span style="color: #6a9955;">//unregister from events</span></div><div> <span style="color: #9cdcfe;">_model</span>.<span style="color: #9cdcfe;">selectedResourceDidChange</span> -= <span style="color: #9cdcfe;">SelectedResourceDidChange</span>;</div><div> }</div><div> <span style="color: #6a9955;">//store the model</span></div><div> <span style="color: #9cdcfe;">_model</span> = <span style="color: #9cdcfe;">value</span>;</div><br /><div> <span style="color: #c586c0;">if</span> (<span style="color: #9cdcfe;">_model</span> != <span style="color: #569cd6;">null</span>)</div><div> {</div><div> <span style="color: #6a9955;">//Update the selectedResource to match new value</span></div><div> <span style="color: #dcdcaa;">UpdateSelectedResourceText</span>(); </div><div> <span style="color: #6a9955;">// register for events so we'll nkow if the selectedResource chagnes later</span></div><div> <span style="color: #9cdcfe;">_model</span>.<span style="color: #9cdcfe;">selectedResourceDidChange</span> += <span style="color: #9cdcfe;">SelectedResourceDidChange</span>;</div><div> }</div><div> </div><div> }</div><br /><div> }</div><br /><div> <span style="color: #569cd6;">private</span> <span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">SelectedResourceDidChange</span>(<span style="color: #4ec9b0;">SelectedResourceModel</span> <span style="color: #9cdcfe;">model</span>, <span style="color: #569cd6;">string</span> <span style="color: #9cdcfe;">value</span> )</div><div> {</div><div> <span style="color: #dcdcaa;">UpdateSelectedResourceText</span>();</div><div> </div><br /><div> }</div><br /><div> <span style="color: #569cd6;">private</span> <span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">UpdateSelectedResourceText</span>()</div><div> {</div><div> <span style="color: #9cdcfe;">_selectedResourceText</span>.<span style="color: #9cdcfe;">text</span> = <span style="color: #ce9178;">""</span> + <span style="color: #9cdcfe;">_model</span>.<span style="color: #9cdcfe;">selectedResource</span>;</div><div> }</div><br /><div> <span style="color: #569cd6;">public</span> <span style="color: #569cd6;">string</span> <span style="color: #dcdcaa;">GetSelectedResource</span>()</div><div> {</div><div> <span style="color: #c586c0;">return</span> <span style="color: #9cdcfe;">_model</span>.<span style="color: #9cdcfe;">selectedResource</span>;</div><div> }</div><br /><div> </div><br /><div> <span style="color: #569cd6;">public</span> <span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">SetSelectedResource</span>(<span style="color: #569cd6;">string</span> <span style="color: #9cdcfe;">selectedResourceCustom</span>)</div><div> {</div><div> <span style="color: #9cdcfe;">_model</span>.<span style="color: #9cdcfe;">selectedResource</span> = <span style="color: #9cdcfe;">_model</span>.<span style="color: #9cdcfe;">selectedResource</span> = <span style="color: #9cdcfe;">selectedResourceCustom</span>;</div><br /><br /><div> } </div><br /><div> </div><div>}</div></div><p>So in this script you can see the method <span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="background-color: #1e1e1e; color: #569cd6; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">private</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="background-color: #1e1e1e; color: #569cd6; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">void</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="background-color: #1e1e1e; color: #dcdcaa; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">SelectedResourceDidChange</span></p><p>Inside this method where we can run a method in another script to send the FSM event when it detects that the realtime component did change.</p><p>Now we need to create the textmeshproUI text for this script to go onto. The script above will sync the value of the realtime string model and update the text to the value of the model. This will let both players see the same string. </p><p>So create a textmeshUI pro gameobect (if it's not UI then you will have to modify the script above for NOT UI textmeshpro)</p><p>Now drop the SelectedResourceScript.cs onto that textmeshproUI.</p><p>Now we need to create a little script that will actually send an FSM event WHEN the script we just made updates the text. Called ResourceStringUpdatedScript.cs</p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">System</span>.<span style="color: #4ec9b0;">Collections</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">System</span>.<span style="color: #4ec9b0;">Collections</span>.<span style="color: #4ec9b0;">Generic</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">UnityEngine</span>;</div><div><span style="color: #c586c0;">using</span> <span style="color: #4ec9b0;">PlayMaker</span>;</div><br /><div><span style="color: #569cd6;">public</span> <span style="color: #569cd6;">class</span> <span style="color: #4ec9b0;">ResourceStringUpdatedScript</span> : <span style="color: #4ec9b0;">MonoBehaviour</span></div><div>{</div><br /><br /><br /><br /><div> <span style="color: #569cd6;">public</span> <span style="color: #4ec9b0;">PlayMakerFSM</span> <span style="color: #9cdcfe;">myFSM</span>;</div><br /><div> <span style="color: #6a9955;">// Start is called before the first frame update</span></div><div> <span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">Start</span>()</div><div> {</div><div> </div><div> }</div><br /><div> <span style="color: #6a9955;">// Update is called once per frame</span></div><div> <span style="color: #569cd6;">public</span> <span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">ResourceUpdateString</span>()</div><div> {</div><div> <span style="color: #9cdcfe;">myFSM</span>.<span style="color: #dcdcaa;">SendEvent</span>(<span style="color: #ce9178;">"ResourceStringUpdated"</span>);</div><div> }</div><div>}</div><br /></div><p>This will send an event to the FSM called ResourceStringUpdated. Now drop this script onto the text mesh pro game object as well. </p><p>We created a method called <span style="background-color: #1e1e1e; color: #dcdcaa; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ResourceUpdateString</span></p><p>We can now RUN this method in the SelectedResourceScript when the text is updated, and it will ALSO send our FSM event upon updating.</p><p>Add a playmaker FSM to the textmeshpro object also. What you have should look kind of like this.</p><p><span style="color: red;">MAKE SURE YOU ALSO HAVE A REALTIME VIEW on that textmeshproUI as well or the realtime component WILL NOT WORK PROPERLY.</span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-C-KGAHjqbLc/YaWv-ZjogeI/AAAAAAAAHcg/hoGEMf9B6UYLO5am1MPbd8-eniSxuhKKwCLcBGAsYHQ/s515/TextMeshProFSMevent.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="515" data-original-width="436" height="540" src="https://1.bp.blogspot.com/-C-KGAHjqbLc/YaWv-ZjogeI/AAAAAAAAHcg/hoGEMf9B6UYLO5am1MPbd8-eniSxuhKKwCLcBGAsYHQ/w457-h540/TextMeshProFSMevent.png" width="457" /></a></div><br /><p>Drag the FSM into the FSM field on your ResourceStringUpdatedScript slot for MyFSM</p><p>Now all that is left is to add the Method called ResourceUpdateString from our ResourceStringUpdatedScript. To get to the method in the other script we just add this line of code.</p><p><span style="background-color: #1e1e1e; color: #dcdcaa; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">GetComponent</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"><</span><span style="background-color: #1e1e1e; color: #4ec9b0; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ResourceStringUpdatedScript</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">>().</span><span style="background-color: #1e1e1e; color: #dcdcaa; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ResourceUpdateString</span><span style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">();</span></p><p>This shows how we add it to the DidChange Method</p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div> <span style="color: #569cd6;">private</span> <span style="color: #569cd6;">void</span> <span style="color: #dcdcaa;">SelectedResourceDidChange</span>(<span style="color: #4ec9b0;">SelectedResourceModel</span> <span style="color: #9cdcfe;">model</span>, <span style="color: #569cd6;">string</span> <span style="color: #9cdcfe;">value</span> )</div><div> {</div><div> <span style="color: #dcdcaa;">UpdateSelectedResourceText</span>();</div><div> <span style="color: #dcdcaa;">GetComponent</span><<span style="color: #4ec9b0;">ResourceStringUpdatedScript</span>>().<span style="color: #dcdcaa;">ResourceUpdateString</span>();</div><br /><div> }</div></div><p>Now in the FSM that is on that TextmeshProUI game object. You can create and event that will fire.</p><p>Add an event with the same name as the event in the script ResourceStringUpdated</p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-nPJ0JxSie6s/YaWy7VnVOxI/AAAAAAAAHco/A5XL5vFHZ2wZ5BqSoyxBMZGhg_a_iiVJwCLcBGAsYHQ/s527/GlobalEventFire.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="527" height="238" src="https://1.bp.blogspot.com/-nPJ0JxSie6s/YaWy7VnVOxI/AAAAAAAAHco/A5XL5vFHZ2wZ5BqSoyxBMZGhg_a_iiVJwCLcBGAsYHQ/w504-h238/GlobalEventFire.JPG" width="504" /></a></div><br /><p>That's it! Now when your realtime changes it will automatically also fire the event in your playmaker FSM!</p> <p></p> <div style="text-align: center;"><br /></div>
<div id="donate-button-container">
<div style="text-align: center;">
<div id="donate-button"></div>
<script charset="UTF-8" src="https://www.paypalobjects.com/donate/sdk/donate-sdk.js"></script>
<script>
PayPal.Donation.Button({
env:'production',
hosted_button_id:'UEYFCJTDYRJJL',
image: {
src:'https://pics.paypal.com/00/s/MmYzMDA1ODAtNWMyYy00MzZhLWI0MWYtYTFhMTBkZWJjNzcz/file.PNG',
alt:'Donate with PayPal button',
title:'PayPal - The safer, easier way to pay online!',
}
}).render('#donate-button');
</script>
</div></div>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-51205026155250326292021-11-26T14:34:00.001-08:002021-11-26T14:34:05.575-08:00Setting up VRIF with Normcore in UnityBasic idea to set up VRIF interaction framework to work with normcore goes like this.<div><br /></div><div>You need the Realtime + VR player prefab which comes with the normcore install dropped into your scene and the XR rig Advanced which comes with the VRIF install.<br /><div><br /></div><div>1. Now that they are in your scene expand out the XR rig advanced so you can see the hand anchors.</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-l5sWNhXlzBE/YaEv_3UY6zI/AAAAAAAAHb8/LDAE7RjJyZ8-8njmnisKH0GyZ8HvDLD7gCLcBGAsYHQ/s390/XR%2BRig%2Badvanced%2Bin%2Bmain%2Bscene.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="265" data-original-width="390" height="258" src="https://1.bp.blogspot.com/-l5sWNhXlzBE/YaEv_3UY6zI/AAAAAAAAHb8/LDAE7RjJyZ8-8njmnisKH0GyZ8HvDLD7gCLcBGAsYHQ/w381-h258/XR%2BRig%2Badvanced%2Bin%2Bmain%2Bscene.JPG" width="381" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">2. Then the Normcore Realtime + VR player should be in the main scene with it as well.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">3. Now click on the Realtime + VR player so you can get to it's Realtime Avatar Manager script in the inspector on the right.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">4. Now drag the items from the XR rig advanced in the hiarchy to the Realtime Avatar Manager like so ( The script should be active, not Deactivated like in my screen grab)</div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-x_eoYZMBDcE/YaEwy_SLDsI/AAAAAAAAHcE/jrUGuZVW27ogyj9JW_OOFSNqyPSKgNyLwCLcBGAsYHQ/s593/avatar%2Bmanager.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="150" data-original-width="593" height="114" src="https://1.bp.blogspot.com/-x_eoYZMBDcE/YaEwy_SLDsI/AAAAAAAAHcE/jrUGuZVW27ogyj9JW_OOFSNqyPSKgNyLwCLcBGAsYHQ/w452-h114/avatar%2Bmanager.JPG" width="452" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;"><br /></span></div><div class="separator" style="clear: both; text-align: left;">The VR player is the normcore Prefab Avatar that will get instantiated automatically when you connect to a normcore room. Basically that local XR rig "puppets" the Normcore prefab Head and Hands using the transforms you linked in that Realtime Avatar Manager script.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Anything in the Normcore VR player prefab is what other players will see when you connect to a room, anything that is in the XR rig will just be visible to you locally.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Now we need to put a copy of the VRIF hands into the VR player prefab so that the other players can see them.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">1. Open up the VR player prefab. </div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">2. From your project drag the XR rig prefab into your VR player so that you can get to some items that are inside of it. UNPACK that XR rig prefab that you have pulled in so you can reparent items. </div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">3. Once you have UNPACKED that XR rig prefab and it's sitting there for you to work with. expand the hiarchy </div><div class="separator" style="clear: both; text-align: left;">XR Rig Advanced>PlayerController>CameraRig>TrackingSpace</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">4. You should see the Right hand anchor, select that and drag it ( and of course all it's children are coming with it) and place it under the Right hand hiarchy of your VR player. </div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-78BybBiwKi8/YaFeYyRu2EI/AAAAAAAAHcM/TOb_b6D47lsvamVKJtUorR0sVqZ7hlvyQCLcBGAsYHQ/s660/REparentHands.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="660" data-original-width="447" height="488" src="https://1.bp.blogspot.com/-78BybBiwKi8/YaFeYyRu2EI/AAAAAAAAHcM/TOb_b6D47lsvamVKJtUorR0sVqZ7hlvyQCLcBGAsYHQ/w332-h488/REparentHands.JPG" width="332" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">5. Now do the same with the left handanchor.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">6. You would place any head models you want the other players to see under the head game object in the VR player and a torso would go as a child of the head (with a script or playmaker to cause it to follow the head)</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><a href="https://assetstore.unity.com/packages/templates/systems/vr-interaction-framework-161066?aid=1101ljYAF" target="_blank">You can pick up VRIF on sale right now through till the 4th of december.</a></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Note with this setup when you grab you will see the other player grab as well because VRIF doesn't know it isn't you grabbing. To fix this you need to disable the grabber game object in the VR player if the grabber isn't on your local computer. We will get into that more in a future tutorial.</div><br /><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;"><br /></span></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div><br /></div></div>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-19484905302307413372021-11-15T19:07:00.001-08:002021-11-15T19:07:11.316-08:0050% OFF playmaker and VRIF right now!<p> This sale only happens once or twice a year so it's worth grabbing these if you have been interested in them before!<br /><br />Playmaker is a MUST if you want to learn game development, even if you know some programming it will make your life SOO much easier and can work hand in hand with your programming scripts. </p><p><br /></p><h3 style="white-space: pre-wrap;"><span data-offset-key="eae3s-0-0"><span style="font-family: helvetica;"><a href="https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368?aid=1101ljYAF" target="_blank">1. PlayerMaker ($60 for $30!)</a></span></span></h3><div style="white-space: pre-wrap;"><span data-offset-key="eae3s-0-0"><h3><span style="font-family: helvetica;"><a href="https://assetstore.unity.com/packages/templates/systems/vr-interaction-framework-161066?aid=1101ljYAF">2. VRIF (VR Interaction Framework) ($60 for $30!)</a></span></h3></span></div>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-3346390664617149372021-11-04T14:33:00.003-07:002021-11-04T14:35:31.577-07:00Three free unity assets! Till November 8th<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-6RpsNdTCBWw/YYRRJKE-IQI/AAAAAAAAHbM/ens4z8E1XwIrapwwZcccwcDExwl_9dAhgCLcBGAsYHQ/s1248/Nov8th%2Bfree%2Bassets.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="583" data-original-width="1248" height="195" src="https://1.bp.blogspot.com/-6RpsNdTCBWw/YYRRJKE-IQI/AAAAAAAAHbM/ens4z8E1XwIrapwwZcccwcDExwl_9dAhgCLcBGAsYHQ/w418-h195/Nov8th%2Bfree%2Bassets.JPG" width="418" /></a></div><br /><br />I just bumped into this myself might as well grab it while you can!<br /><a href="https://assetstore.unity.com/publisher-sale?aid=1101ljYAF&utm_campaign=unity_affiliate&utm_medium=affiliate&utm_source=partnerize-linkmaker" target="_blank">Love hate, fingers and resize pro for free till November 8th!</a><p></p><p><br /></p><p><br /></p>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-24719482422750440512021-10-24T19:33:00.005-07:002021-10-24T19:42:05.410-07:00Playmaker Load external files from StreamingAssets folder can't load file<p>I hit enough issues trying to load external files from the streaming assets folder I thought I would make a little tip about this.</p><p>Firstly, I discover that using the "Load From File" action pointing to the file path you are trying to use creates an interesting issue problem.<br /> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-SCTSJ3NArEw/YXYWPlYVNeI/AAAAAAAAHas/m1qeReOeM1YrWKWrfXtJq4MRqb0bL4UjwCLcBGAsYHQ/s429/Load%2Bfrom%2Bfile.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="157" data-original-width="429" height="158" src="https://1.bp.blogspot.com/-SCTSJ3NArEw/YXYWPlYVNeI/AAAAAAAAHas/m1qeReOeM1YrWKWrfXtJq4MRqb0bL4UjwCLcBGAsYHQ/w432-h158/Load%2Bfrom%2Bfile.JPG" width="432" /></a></div><br /><p>For example here is the path to a text file</p><p>"StreamingAssets/Folder1/Text.txt" </p><p>IMPORTANT:</p><p>This path WORKS in the unity editor, but NOT in a standalone build. HERE IS THE KICKER though IT WILL work if you do a <span style="color: red;">BUILD AND RUN</span>. Which APPEARS to be your standalone build but it's NOT when it comes to that file path. This is highly confusing and took quite a bit to realize. </p><p>Here is the solution:</p><p>Instead of creating your file path use the action in the eco system. "Get streaming assets data path" as of this writing you need to modify this action though. ( I might try to ping them and see if they will update it) It currently points to the persistent data path. You need to just tweak the one line in the action script to change it to get to the streaming assets folder instead.</p><p><br /></p><p>Change this line 30</p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"> <span style="color: #9cdcfe;">streamingAssetsDataPath</span>.<span style="color: #9cdcfe;">Value</span> = <span style="color: #9cdcfe;">Application</span>.<span style="color: #9cdcfe;">persistentDataPath</span>;</div><p><br /></p><p>Change to:</p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"> <span style="color: #9cdcfe;">streamingAssetsDataPath</span>.<span style="color: #9cdcfe;">Value</span> = <span style="color: #9cdcfe;">Application</span>.<span style="color: #9cdcfe;">streamingAssetsPath</span>;</div><p><br /></p><p>Save and recompile, now do a build but NOT a build and run. Just Run your EXE to test. It should load the file now.</p><p>Now for the file to load when using the EDITOR you can use "Runtime Platform event" that will detect if it's a standalone or editorun and if it's the editor you need to just us a path prefix that is this. Then append your folder and file name to that.<br /> </p><p>Assets/StreamingAssets/</p><p>Now you should be able to load files from the streaming resources folder AND the streaming resources folder in the editor at the same time!</p><p><br /></p>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-66788696970881680302021-10-24T12:31:00.006-07:002021-10-24T12:32:06.587-07:00vray maya bake issues<div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-al0bqVU5dqg/VElQO95J2sI/AAAAAAAAFpo/sm4FqN1jA6kcvGtAh7aFFMEUGnyg4fI-ACPcBGAYYCw/s219/TipIcon_smaller.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="219" data-original-width="216" height="219" src="https://1.bp.blogspot.com/-al0bqVU5dqg/VElQO95J2sI/AAAAAAAAFpo/sm4FqN1jA6kcvGtAh7aFFMEUGnyg4fI-ACPcBGAYYCw/s0/TipIcon_smaller.jpg" width="216" /></a></div><br /><span style="font-size: medium;">Vray maya bake issues:</span><br />
<br />
1. Sometimes if you are attempting to press bake in vray maya, it will do NOTHING, no messages in the script editor etc. zip nada. Closing your render window will fix this.<br />
<br />
2. When creating the bake set for vray maya it may give a value is out of range when you select your bake options set. Closing the open hypershade fixed this.<br />
<br />
3. When attempting to bake a large thin box in vray maya, it may bake black, this appears to be a bug. baking instead onto a plane should work. This is especially insidious because it may actually RENDER your bake from some angles, but appear black from others!<br />
<br />
These issues have been observed in maya 2017 update 5 and vray next 4.3Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-85477678807216994932021-10-22T19:25:00.013-07:002021-11-26T11:03:02.953-08:00Non-coders guide to making a VR game with Normcore, VRIF and Unity Part -1<p><span style="white-space: pre-wrap;">So first off, if you are an amateur game designer you probably have no business trying to use normcore to make your game. However, if you are a glutton for punishment and you want the coolest possible tool for creating a game in unity with networking and multiplayer features it does some things VERY well.</span></p><div data-draftjs-conductor-fragment="{"blocks":[{"key":"8d3c4","text":"So first off, if you are an amateur game designer you probably have no business trying to use normcore to make your game. However, if you are a glutton for punishment and you want the coolest possible tool for creating a game in unity with networking and multiplayer features it does some things VERY well.","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}},{"key":"fi7ut","text":"","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}},{"key":"8g3oj","text":"The catch is it's designed as a coding framework for programmers to use so it's not SUPER easy to figure out if you don't have much programming knowledge. BUT noob game designers never let a stupid thing like coding stop them from trying to make games anyway so let's get started.","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}}],"entityMap":{},"VERSION":"8.55.3"}" style="white-space: pre-wrap;"><div class="_25Ehb _3qYRK Zn7O0 public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr" data-block="true" data-editor="editor" data-offset-key="1u5s6-0-0"><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1u5s6-0-0"><span data-offset-key="1u5s6-0-0"><br data-text="true" /></span></div></div><div class="_25Ehb _3qYRK Zn7O0 public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr" data-block="true" data-editor="editor" data-offset-key="eae3s-0-0"><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="eae3s-0-0"><span data-offset-key="eae3s-0-0">The catch is it's designed as a coding framework for programmers to use so it's not SUPER easy to figure out if you don't have much programming knowledge. BUT noob game designers never let a stupid thing like coding stop them from trying to make games anyway so let's get started.</span></div><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="eae3s-0-0"><span data-offset-key="eae3s-0-0"><br /></span></div><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="eae3s-0-0"><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-XujuZArWTiU/YXMUhcipWQI/AAAAAAAAHag/kYDAwQRG85o_pFXL6U027Q1rjNbr4t7igCLcBGAsYHQ/s561/normcore.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="197" data-original-width="561" height="185" src="https://1.bp.blogspot.com/-XujuZArWTiU/YXMUhcipWQI/AAAAAAAAHag/kYDAwQRG85o_pFXL6U027Q1rjNbr4t7igCLcBGAsYHQ/w530-h185/normcore.JPG" width="530" /></a></div><span data-offset-key="eae3s-0-0"><br /></span></div><h4 style="text-align: left;"><span data-offset-key="eae3s-0-0"><span style="font-family: helvetica;">Things you will need</span></span></h4><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="eae3s-0-0"><span data-offset-key="eae3s-0-0">In order to actually make progress with little to no coding you are going to need to get a couple tools. They aren't too expensive particularly if you manage to grab them on a frequent sale. They are often half price.</span></div><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="eae3s-0-0"><span data-offset-key="eae3s-0-0"><br /></span></div><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="eae3s-0-0">UPDATE THESE ARE HALF OFF THIS WEEK FOR BLACK FRIDAY!</div><h3><span data-offset-key="eae3s-0-0"><span style="font-family: helvetica;"><a href="https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368?aid=1101ljYAF" target="_blank">1. PlayerMaker ($60 for $30!)</a></span></span></h3><h3><div style="font-size: medium; font-weight: 400;"><span data-offset-key="eae3s-0-0"></span></div></h3><h3><span style="font-family: helvetica;"><a href="https://assetstore.unity.com/packages/templates/systems/vr-interaction-framework-161066?aid=1101ljYAF">2. VRIF (VR Interaction Framework) ($60 for $30!)</a></span></h3><div><span data-offset-key="eae3s-0-0"><div><span data-offset-key="eae3s-0-0"><h3><span style="font-family: helvetica;"><a href="https://normcore.io/" target="_blank">3. Normcore (free for development)</a></span></h3><div><div data-draftjs-conductor-fragment="{"blocks":[{"key":"4d8g8","text":"Getting started","type":"header-two","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}},{"key":"43mlb","text":"Installing the items is pretty straight forward, it is WAY simpler than it was to set up VR related things in unity even a year ago. ","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}},{"key":"60hku","text":"","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}},{"key":"58p36","text":"Please comment if you are interested in this subject!","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}},{"key":"9mmkr","text":"","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}},{"key":"8vnng","text":"Part 2 we will discuss how to set up the XR Rig character from VRIF with normcore!","type":"unstyled","depth":0,"inlineStyleRanges":[],"entityRanges":[],"data":{}}],"entityMap":{},"VERSION":"8.55.3"}"><h2 class="_2G1WZ _3qYRK public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr" data-block="true" data-editor="editor" data-offset-key="1sfsp-0-0"></h2><h4 style="text-align: left;"><span data-offset-key="1sfsp-0-0"><span style="font-family: helvetica;">Getting started</span></span></h4><div class="_25Ehb _3qYRK Zn7O0 public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr" data-block="true" data-editor="editor" data-offset-key="98soe-0-0"><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="98soe-0-0"><span data-offset-key="98soe-0-0">Installing the items is pretty straight forward, it is WAY simpler than it was to set up VR related things in unity even a year ago. </span></div></div><div class="_25Ehb _3qYRK Zn7O0 public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr" data-block="true" data-editor="editor" data-offset-key="22sd0-0-0"><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="22sd0-0-0"><span data-offset-key="22sd0-0-0"><br data-text="true" /></span></div></div><div class="_25Ehb _3qYRK Zn7O0 public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr" data-block="true" data-editor="editor" data-offset-key="5ktfm-0-0"><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="5ktfm-0-0"><span data-offset-key="5ktfm-0-0">Please comment if you are interested in this subject!</span></div></div><div class="_25Ehb _3qYRK Zn7O0 public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr" data-block="true" data-editor="editor" data-offset-key="15eaa-0-0"><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="15eaa-0-0"><span data-offset-key="15eaa-0-0"><br data-text="true" /></span></div></div><div class="_25Ehb _3qYRK Zn7O0 public-DraftStyleDefault-block-depth0 public-DraftStyleDefault-text-ltr" data-block="true" data-editor="editor" data-offset-key="5aq72-0-0"><div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="5aq72-0-0"><span data-offset-key="5aq72-0-0">Part 2 we will discuss how to set up the XR Rig character from VRIF with normcore!</span></div></div></div></div></span></div></span></div><div><span data-offset-key="eae3s-0-0"><br /></span></div></div></div>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-11671695941071281072021-10-22T12:41:00.003-07:002021-10-23T10:13:57.228-07:00Changing Direction of Mayazest Blog<p>Hey everyone who might find yourself in this neck of the woods. This post is to just mention a bit of a change in direction for this blog. We will still be posting Maya tips most likely but because the times they be a changing, there are going to start being a lot more Unity and even Blender info on this blog as well. I know BLENDER? Over the last 3 years blender has become ALOT more like Maya, so this isn't as absurd as it used to be.</p><p>So before you break out the tar and feathers let's talk for a moment about why! </p><p>So for starters maya costs $200 a month to use now which didn't used to be the case before they switched to a subscription model. So we will also be posting tips about how to use Blender if you are from a maya users standpoint. We are also beginning to slant more into game development instead of Visual effects here at maya zest so that's another reason things will be changing a bit.</p><p>Hope you enjoy your day and keep on zesting!</p>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-90496538255451531352021-09-29T19:13:00.005-07:002021-12-05T22:18:09.967-08:00 Blender: Parent mesh to bones/armature and weight paint vertex groups<p>To parent your mesh to bones/armature: in Object Mode, select your Mesh FIRST then shift select the armature/bone you want to connect, right click over the mesh, choose "parent" and either "empty groups" or "auto groups".</p><p>After this, to go to weight paint: in Object Mode select armature/bone FIRST then your mesh then go to weight paint mode. Go to the "object data properties" tab (little green triangle) and you will see vertex groups. Select one and paint on it, this is applying weight to that vertex group.</p><p><a href="https://lh3.googleusercontent.com/-gm0yloWsQYg/YVVEl9uWB6I/AAAAAAAAAHc/fY1zByXLq08uEFJpxAGb0Geyv1gh7SItQCLcBGAsYHQ/WeightPaint.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="" data-original-height="567" data-original-width="698" height="240" src="https://lh3.googleusercontent.com/-gm0yloWsQYg/YVVEl9uWB6I/AAAAAAAAAHc/fY1zByXLq08uEFJpxAGb0Geyv1gh7SItQCLcBGAsYHQ/WeightPaint.jpg" width="295" /></a><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p>To remove a section from a vertex group: Got to "Edit Mode" select the vertex group you want to remove something from, select the area on the mesh you want to remove from the vertex group by drag selecting. Over in the vertex group green triangle tab, click "remove" button below the vertex group list.</p><p><br /></p><p><br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://lh3.googleusercontent.com/-gm0yloWsQYg/YVVEl9uWB6I/AAAAAAAAAHc/fY1zByXLq08uEFJpxAGb0Geyv1gh7SItQCLcBGAsYHQ/WeightPaint.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://lh3.googleusercontent.com/-gm0yloWsQYg/YVVEl9uWB6I/AAAAAAAAAHc/fY1zByXLq08uEFJpxAGb0Geyv1gh7SItQCLcBGAsYHQ/WeightPaint.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a><a href="https://lh3.googleusercontent.com/-gm0yloWsQYg/YVVEl9uWB6I/AAAAAAAAAHc/fY1zByXLq08uEFJpxAGb0Geyv1gh7SItQCLcBGAsYHQ/WeightPaint.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br /></a></div><p></p>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-19853993140821146522020-09-30T11:31:00.004-07:002020-09-30T11:31:54.706-07:00Quicktime playblast option not available in maya<p>Just install the codec and don't bother with the QT player itself. Then restart maya and it should show up now.</p><p>https://support.apple.com/kb/DL837?locale=en_US</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-IA4veeLeB7I/X3TOoQ4CzBI/AAAAAAAAHRY/WjBOnp6HhLoiXp0AAUM3Tp7QRAilT-ztgCLcBGAsYHQ/s503/QT.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="395" data-original-width="503" height="357" src="https://1.bp.blogspot.com/-IA4veeLeB7I/X3TOoQ4CzBI/AAAAAAAAHRY/WjBOnp6HhLoiXp0AAUM3Tp7QRAilT-ztgCLcBGAsYHQ/w455-h357/QT.jpeg" width="455" /></a></div><br /><p><br /></p>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-20079479037973691072020-07-07T16:33:00.001-07:002020-07-08T12:38:01.776-07:00Incredible Free 3D tree generator!<div><br /></div><div><br /></div><a href="http://www.evolved-software.com/treeit/treeit"><br /></a><div class="separator" style="clear: both; text-align: center;"><a href="http://www.evolved-software.com/treeit/treeit"></a><a href="https://1.bp.blogspot.com/-PIArh_B42NU/XwYgk8cYwlI/AAAAAAAAHOU/FRdX7aIhRAcMPS7B9swl94YCv2nI8lAEwCK4BGAsYHg/s2560/treeit1_.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1440" data-original-width="2560" height="281" src="https://1.bp.blogspot.com/-PIArh_B42NU/XwYgk8cYwlI/AAAAAAAAHOU/FRdX7aIhRAcMPS7B9swl94YCv2nI8lAEwCK4BGAsYHg/w500-h281/treeit1_.png" width="500" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="http://www.evolved-software.com/treeit/treeit" style="text-align: left;">http://www.evolved-software.com/treeit/treeit</a></div>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-73461765199323357222020-07-02T12:56:00.000-07:002020-07-02T12:56:21.575-07:00Can't save maya project due to unknown nodes<div><br /></div><div style="text-align: center;"><img border="0" data-original-height="110" data-original-width="108" src="https://1.bp.blogspot.com/-cHIaTP5m9m4/VElRBa0VvqI/AAAAAAAAFp4/-Eb33ViAjRkUcxnD3hh3ffd68F8ASzmqACK4BGAsYHg/TipIcon_Even_smaller.jpg" /></div><div><br /></div><div><br /></div>If you are not able to save your maya project due to unknown nodes, here is a simple script to delete them. Change your script type to Python in the bottom script bar and paste this script.<div><br /></div><div><br /></div><div><br /></div><div><div>import maya.cmds as cmds</div><div>cmds.delete(cmds.ls(type="unknown"))</div></div><div><br /></div><div><br /></div><div><br /></div><div>Hit enter! now you should be able to save your project again!</div>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-52830379378098554312020-06-25T13:01:00.001-07:002020-06-25T13:01:32.653-07:00Chrome extension to locate music playing in a tab<div><span style="background-color: white; color: #1d2129; font-family: Helvetica, Arial, sans-serif; font-size: 14px;"><br /></span></div><span style="background-color: white; color: #1d2129; font-family: Helvetica, Arial, sans-serif; font-size: 14px;"><div><span style="background-color: white; color: #1d2129; font-family: Helvetica, Arial, sans-serif; font-size: 14px;"><br /></span></div>If anyone has trouble finding music playing in chrome admist your meriod of multiplying tabs I found this nifty extension to locate it! This was driving me crazy!</span><br /><br /><a href="https://chrome.google.com/webstore/detail/go-to-playing-tab/hmbhamadknmmkapmhbldodoajkcggcml/related?hl=en-US">https://chrome.google.com/webstore/detail/go-to-playing-tab/hmbhamadknmmkapmhbldodoajkcggcml/related?hl=en-US</a>Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-42173350433199832442020-06-25T12:49:00.001-07:002020-06-25T13:02:11.839-07:00Use Vive controller to control camera in Unreal engineWe can use the first person template in unreal to use a Vive controller to control camera in Unreal engine.<br />
<br />
create a new project, choose games>first person template<br />
<br />
once the template opens select your FirstpersonCharacter in the world outliner, and in the "pawn" dropdown turn the check on for:<br />
<br />
Use controller rotation Yaw<br />
Use controller rotation Pitch<br />
Use controller rotation Roll<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-cg8ZclPL5ow/XvT93OKX_0I/AAAAAAAAHNg/XmuCVd2XtXME31xtfTI3Bgzx1vlKK4MMACLcBGAsYHQ/s1600/vive%2BFPS%2Bcamerea1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="829" data-original-width="451" height="640" src="https://1.bp.blogspot.com/-cg8ZclPL5ow/XvT93OKX_0I/AAAAAAAAHNg/XmuCVd2XtXME31xtfTI3Bgzx1vlKK4MMACLcBGAsYHQ/s640/vive%2BFPS%2Bcamerea1.JPG" width="348" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Then click edit FirstPersonController up in the world outliner to open the blueprints for it</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-mmALNhw7D6g/XvT93MUB8oI/AAAAAAAAHNk/mXbCsBYWDssyzJhfuC_KLIZLjlx2ViKSQCLcBGAsYHQ/s1600/vive%2BFPS%2Bcamerea2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="579" data-original-width="908" height="204" src="https://1.bp.blogspot.com/-mmALNhw7D6g/XvT93MUB8oI/AAAAAAAAHNk/mXbCsBYWDssyzJhfuC_KLIZLjlx2ViKSQCLcBGAsYHQ/s320/vive%2BFPS%2Bcamerea2.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now in the components section in the top left you need to either child the main camera to one of the motion controllers if you are ok using that camera. Or in my case create a new cinecamera. Child it to the motion controller and delete the original camera.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
If you delete the original camera. When you try to run you will get 3 errors in the compile, because the new camera isn't linked. Go ahead and run, then go back to edit FirstPersonController. You will see the errors in the compioler restults just click the link where it says "target" and it will take you to the problem node.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-hgKNVrhAw4M/XvT_F6dwrOI/AAAAAAAAHNw/Or1F1fA1aUwFk1r_EXP3I8mVBwiCDWD9QCLcBGAsYHQ/s1600/vive%2BFPS%2Bcamerea3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="226" data-original-width="723" height="125" src="https://1.bp.blogspot.com/-hgKNVrhAw4M/XvT_F6dwrOI/AAAAAAAAHNw/Or1F1fA1aUwFk1r_EXP3I8mVBwiCDWD9QCLcBGAsYHQ/s400/vive%2BFPS%2Bcamerea3.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now just drag your cinecamera into the Target field for each of hte erroring nodes. This will relink the camera in the three places it was deleted from.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Now run the app and you should be able to control the camera using a vive controller!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-79683137652944689002020-06-17T15:28:00.001-07:002020-06-25T12:30:37.292-07:00Add vray subdivision node to all selected objects in Maya MEL<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-LeJQinuqeBs/VElQyCkSnjI/AAAAAAAAFpw/W2Cp3NG9AO49QRxHkSFHrE1wMtz41Ri3wCPcBGAYYCw/s1600/TipIcon_Even_smaller.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="110" data-original-width="108" src="https://1.bp.blogspot.com/-LeJQinuqeBs/VElQyCkSnjI/AAAAAAAAFpw/W2Cp3NG9AO49QRxHkSFHrE1wMtz41Ri3wCPcBGAYYCw/s1600/TipIcon_Even_smaller.jpg" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
Here is a little MEL code snippet to add an individual vray subdivision node to each of your selected objects in Maya.<br />
<br />
Simply select all your geo, paste into the MEL script line in maya and hit enter!<br />
<div>
<br /></div>
<div>
<br /></div>
<div>
<div>
{</div>
<div>
string $sel[] = `ls -sl -dag -s`;</div>
<div>
for ($each in $sel){</div>
<div>
if (`nodeType $each`=="mesh"){ </div>
<div>
print ("// adding VRay subdivision attributes to "+$each+"\n");</div>
<div>
vrayAddAttr($each, "vraySubdivEnable");</div>
<div>
vrayAddAttr($each, "vraySubdivUVsAtBorders");</div>
<div>
}</div>
<div>
}</div>
<div>
}<br />
<br />
<br />
Alternatively, this tip from Raymond in the comments below. If you would like ONE vray subdivision node to effect all objects. Which is easier to control simply:<br />
<br />
Select your objects, then: Create > VRay > VRay Displacement > Apply Single VRayDisplacement Node To Selection<br />
<br />Then on the VRayDisplacement node, in the Attribute Editor: Attributes > VRay > OpenSubDiv (or whatever you want)</div>
</div>
Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-30735835430571908232020-06-17T15:25:00.001-07:002020-06-17T15:25:30.875-07:00Unity Oculus Quest VR anti-aliasing workaround, MSAA<div class="separator" style="clear: both; text-align: center;">
<a href="https://vignette.wikia.nocookie.net/minecraftpocketedition/images/2/27/HqmmN.png/revision/latest?cb=20160817015432" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="800" height="223" src="https://vignette.wikia.nocookie.net/minecraftpocketedition/images/2/27/HqmmN.png/revision/latest?cb=20160817015432" width="400" /></a></div>
<br />
For some reason MSAA antialiasing doesn't seem to work when attempting to develop for the Oculus Quest. The setting simply has no effect. A workaround is to apply a very slight scaling effect via a little code. This really does work and softens those jaggy lines!<br />
<br />
Just add a game object to your scene, add a custom C# script named "VRRenderScale" to it and replace it's contents with this code.<br />
<br />
<br />
using UnityEngine;<br />
using UnityEngine.XR;<br />
<br />
public class VRRenderScale : MonoBehaviour {<br />
void Start () {<br />
XRSettings.eyeTextureResolutionScale = 1.5f;<br />
}<br />
}<br />
<br />
<br />
<br />
It will effect performance if we increase it a lot. In my experience 1.5f was a pretty subtle effect. 2.5f was definitely noticeable but did decrease performance. In the end for the project I left it at 2.5f even though the frame rate descreased it still worked fine for my application.Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-54186954403112827852020-06-17T15:00:00.000-07:002020-06-17T15:00:02.041-07:00Sketchup to vray maya, lightmapping then to Unity with original SKP textures.<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-pQOPrCXMUzE/XuqQ8ek988I/AAAAAAAAHNA/ipCj6f0DwLEc1y6ymkNqzbDeCAlWVGo1QCLcBGAsYHQ/s1600/unityvray%2Bbake.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="484" data-original-width="758" height="255" src="https://1.bp.blogspot.com/-pQOPrCXMUzE/XuqQ8ek988I/AAAAAAAAHNA/ipCj6f0DwLEc1y6ymkNqzbDeCAlWVGo1QCLcBGAsYHQ/s400/unityvray%2Bbake.JPG" width="400" /></a></div>
<br />
<br />
<br />
Sketchup to vray maya, apply lightmapping then to Unity with original SKP textures.<br />
<br />
1. From sketchup export an FBX<br />
<br />
2. (IMPORTANT) In maya import the FBX, first thing to do is correct any texture path errors. I suggest running a script for maya called <a href="https://www.highend3d.com/maya/script/texture-path-genie-for-maya" target="_blank">texture genie</a>.<br />
<br />
It also may be helpful to use the maya file path editor to copy ALL textures into one location this will simplify things later down the pipeline.<br />
<br />
3. All the materials come in as PHONG, so unless you want that run this MEL script<br />
<br />
string $replaceType = "lambert";<br />
string $sNode[] = `ls -sl`; <br />
for ($each in $sNode)<br />
{<br />
string $replaceWith = `createNode $replaceType`;<br />
replaceNode $each $replaceWith;<br />
delete $each;<br />
rename $replaceWith $each;<br />
}<br />
<br />
<br />
Or if you prefer use this script to convert the phongs directly to vray maya<br />
<a href="http://www.dryzen.com/scripts_mia2vray.html">http://www.dryzen.com/scripts_mia2vray.html</a><br />
<br />
4. Apply any bump maps etc and material adjustments as needed.<br />
<br />
Now we need to prepare the items to maintain the original textures and UV's<br />
<br />
5. Take careful note of the groups that came in from sketchup. Select each group and run a combine on each so that the contents of each group aka (a chair, a desk) each only have one model. These will be your light baking groups so you do not want these to be for instance a single door hinge you want it to be the entire door. Each group should represent a UV set texture for your light map.<br />
<br />
6. After you have combined each group it's time to clean up the UV's. Sketchup UV's are going to be wonky and extending off the UV range but it still displays the texture map as it should . We want to leave that alone so select ALL your geomtry. You may need to go to maya menu>select>all by type>geo.<br />
<br />
7.Now go to your UV in the UV set editor, there should just be a single UV1 set. With all your geo selected create a new UV set. And rename it to "lightmap"<br />
<br />
8.Now make sure that lightmap UV set is selected, and ALL your GEO is selected. Then goto UV>automatic mapping in maya.<br />
<br />
9. Now you will have a perfect second UV set for the light mapping to take place in.<br />
<br />
10. Now it's time to set up the vray bake sets, these pretty much are just to define say sections at different resolutions. For instance the floor we want to bake at 4k, but the desks and chairs at 512pixels<br />
<br />
11.Choose the GEO you want in a given bake set goto the Vray menu assign single vray bake options.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://docs.chaosgroup.com/download/attachments/28410164/maya2016_VRay3301_26654_TextureBaking_Shelf_v02.png?version=2&modificationDate=1490760702000&api=v2" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="300" data-original-width="437" height="219" src="https://docs.chaosgroup.com/download/attachments/28410164/maya2016_VRay3301_26654_TextureBaking_Shelf_v02.png?version=2&modificationDate=1490760702000&api=v2" width="320" /></a></div>
<br />
<br />
12. This will create a new node in your outliner with the texture bake size and settings. In the top you can select the UV set that will be used for the bake (where it says map1), choose your new lightmap UV set for all the bake groups that you create and set the resolution.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://docs.chaosgroup.com/download/attachments/28410164/TextureBaking_2.png?version=2&modificationDate=1490760702000&api=v2" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="433" data-original-width="402" height="320" src="https://docs.chaosgroup.com/download/attachments/28410164/TextureBaking_2.png?version=2&modificationDate=1490760702000&api=v2" width="297" /></a></div>
<br />
<span style="color: red;">Once you have all your bake groups defined. this is VERY IMPORTANT. BEFORE you bake. Save your maya project as BEFORE BAKED. Once you do a bake on a set, vray will REMOVE the original materials, apply a surface shader with an image on it to the baked geo. This means you cannot simply change the lighting and bake the object again. A second bake will NOT change the way your object looks because it will simply bake what was already on it, leaving it the same.</span><br />
<span style="color: red;"><br /></span>
So in order to make any changes to a section that you have baked, you will need to revert back that section to the prebaked setup project.<br />
<br />
Alright now Bake away!<br />
<br />
13. Once the bake is completed, it's time to bring it into unity!<br />
<br />
14. Select your entire model in maya and export to FBX. trying to use "embed textures" didn't work for me, I think due to the size of all the textures. It would simply generate an FBX with no FBM texture folder. To get around this, since all the textures are now located on a single folder anyway (because of our cleanup). I just copied it into the same folder as the FBX.<br />
<br />
15. Now in unity just plop your model and it's textures into your project folder and it will import everything. It's somewhat likely it won't use the correct UV set and the textures will look wacked. If this happens in the unity model settings just choose swap UV and that should fix it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-94nS3M0E6Io/XuqRPE4NcQI/AAAAAAAAHNI/jJvgVaemPJA05-GlENaSJ6PYAa6xrId2QCLcBGAsYHQ/s1600/unityvray%2Bbake2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="667" data-original-width="375" height="320" src="https://1.bp.blogspot.com/-94nS3M0E6Io/XuqRPE4NcQI/AAAAAAAAHNI/jJvgVaemPJA05-GlENaSJ6PYAa6xrId2QCLcBGAsYHQ/s320/unityvray%2Bbake2.JPG" width="179" /></a></div>
<br />
That's it you should now have a Vray baked model in unity!<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<br />
<br />Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-4970166184833983322020-06-17T13:52:00.000-07:002020-06-17T13:52:16.258-07:00Syntheyes alexa anamorphic lens mapping and using the distortion profile in After Effects.<b>First let's create a map for the lens. <br /><br />This will allow us to use that distortion file in after effects to undistort the plate, or DISTORT our CG elements into that footage.<br /><br />1. IMAGE MAP the lenses:</b><br />
<br />
Import a still frame of the your lens charts into syntheyes at the focus distance you are seeking to map. You could name the frame something like 50mm_10ft for the focus distance of that particular chart.<br />
<br />
You would want to create an image map<br />
<br />
Make sure that all the settings are correct for the footage import, resolution, film back size, here are my settings for alexa mini shot with open gate 3.4k anamorphic<br />
<br />
Look up the correct back plate size for the shooting mode and anamorphic squeeze on the camera and set it here.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-WhhK_2gcyOw/XXghIS9173I/AAAAAAAAHBw/TfM9xAgmQdo1iePNSFFhi4wcsC7ew3plgCLcBGAsYHQ/s1600/cam%2Bmap%2Bimport%2Bsettings.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="464" data-original-width="671" height="441" src="https://1.bp.blogspot.com/-WhhK_2gcyOw/XXghIS9173I/AAAAAAAAHBw/TfM9xAgmQdo1iePNSFFhi4wcsC7ew3plgCLcBGAsYHQ/s640/cam%2Bmap%2Bimport%2Bsettings.JPG" width="640" /></a></div>
<br />
<br />
Now let's go to SYNTHEYES.<br />
Top right bar of syntheyes right click say add room, type panel FLEX and make it FLEX<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-HAdSaG4Zwjc/XXgfMGCrgYI/AAAAAAAAHBk/JM7BJu6nHm8zKSQYj8rDM8u1mHM_E_ZwgCLcBGAsYHQ/s1600/Flex.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="392" data-original-width="755" height="332" src="https://1.bp.blogspot.com/-HAdSaG4Zwjc/XXgfMGCrgYI/AAAAAAAAHBk/JM7BJu6nHm8zKSQYj8rDM8u1mHM_E_ZwgCLcBGAsYHQ/s640/Flex.png" width="640" /></a></div>
<br />
Now go to the FLEX panel<br />
<br />
select "new curve" and lay curves out on the lens chart. As many as needed to feel like you are approximating the distortion properly.<br />
<br />
Once you have them all laid out it's time to export your image distortion maps<br />
<br />
<br />
<b><br /></b>
<b><span style="font-size: large;">EXPORTING MAPS</span></b><br />
<br />
Menu<br />
Script>lens>lens master calibration<br />
<br />
It will pull up the lens export dialogs<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-5ZWxJZhYRr8/XXgh69Lw7mI/AAAAAAAAHCA/GxiBDU5prtMVq0o3FDfx_ZE55Fn6cP44gCLcBGAsYHQ/s1600/Annotation%2B2019-09-06%2B172251.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="509" data-original-width="596" height="340" src="https://1.bp.blogspot.com/-5ZWxJZhYRr8/XXgh69Lw7mI/AAAAAAAAHCA/GxiBDU5prtMVq0o3FDfx_ZE55Fn6cP44gCLcBGAsYHQ/s400/Annotation%2B2019-09-06%2B172251.png" width="400" /></a></div>
<div style="text-align: left;">
At the top you want to name your profile in this case it was a 28mm anamorphic at 30ft focus distance. Now Select "straighten lines", the lens type in my case "anamorphic".</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Now here you can try a couple of the different distortion types, and see which gives you the least hpix error, once you compute the image map. Just run one and undo then try another one to see how high the hxip is. The lower the better. Cubic was working best for me.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<u>Lens radius</u> I believe is supposed to be set to half the aspect ratio so in my case 1/2 of 2.0 pixel would be 1.<br />
<br />
Press ok to move to the next step.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
I also press field of view estimator</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-xy0G6dLZsfs/XXgk37M5coI/AAAAAAAAHCc/ryX1V9bx93AYIH6V0Z4WFPlXP1Ek6D9OwCLcBGAsYHQ/s1600/FOV%2Bestimator.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="184" data-original-width="596" height="98" src="https://1.bp.blogspot.com/-xy0G6dLZsfs/XXgk37M5coI/AAAAAAAAHCc/ryX1V9bx93AYIH6V0Z4WFPlXP1Ek6D9OwCLcBGAsYHQ/s320/FOV%2Bestimator.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
The lens was a 28mm so I put that in and put in the exact sensor back width. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
press ok</div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-30HW_AMzuAY/XXgh654oxgI/AAAAAAAAHB4/7pgcJqmcncM_IFsaQYKWO-_kUgJWvlgOwCLcBGAsYHQ/s1600/Annotation%2B2019-09-06%2B172310.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="239" data-original-width="599" height="158" src="https://1.bp.blogspot.com/-30HW_AMzuAY/XXgh654oxgI/AAAAAAAAHB4/7pgcJqmcncM_IFsaQYKWO-_kUgJWvlgOwCLcBGAsYHQ/s400/Annotation%2B2019-09-06%2B172310.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Leave this next box as is.^</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-LAD0oIkVcls/XXgh7Tx6RVI/AAAAAAAAHCE/lJkUXlWmPBs5wKNUK_WGqZvN4L3c2NIJQCLcBGAsYHQ/s1600/Annotation%2B2019-09-06%2B172338.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="657" data-original-width="595" height="400" src="https://1.bp.blogspot.com/-LAD0oIkVcls/XXgh7Tx6RVI/AAAAAAAAHCE/lJkUXlWmPBs5wKNUK_WGqZvN4L3c2NIJQCLcBGAsYHQ/s400/Annotation%2B2019-09-06%2B172338.png" width="361" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
In my workflow I will be working with distorted footage and then distorting CG elements into it in After effects so I would choose workflow 2<br />
<br />
recentering: Padding<br />
preset type image preprocessor<br />
Margin<br />
<br />
image map type: PNG is fine.<br />
<br />
<br />
<span style="font-size: large;">Using them in AFTER EFFECTS</span><br />
<br />
Open up your After Effects project with your anamorphic footage.<br />
<br />
Import the new image maps, they should be stored with the image file you used to make the distortion map from.<br />
<br />
<span style="color: red;">1. Once imported, goto interpretation on them and PRESERVE RGB in color management for the maps, and change the aspect ration to anamorphic 2:1</span><br />
<br />
2. Drop your image map into the comp. Now search for Syntheyes Image Mapper in your effects. drop that ON your image distortion map. <u>NOT on the precomp or image you want to distort/undistort.</u><br />
<br />
3. In the effect settings for Syntheyes Image Mapper, set image to map to the layer or precomp you want to distort/undistort. NOTE that you will NOT be able to any other effects on THAT layer or precomp.<br />
<br />
<br />
<br />
<br />
<br />Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-91569756851741208452020-06-10T05:47:00.003-07:002020-06-10T05:47:35.035-07:00Maya export FBX problem, no .fbm folder or textures when selecting embed media<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-cHIaTP5m9m4/VElRBa0VvqI/AAAAAAAAFp4/q3yg0DfSN-4UyGUavu65OqeJfDZ8VPOiACPcBGAYYCw/s1600/TipIcon_Even_smaller.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="110" data-original-width="108" src="https://1.bp.blogspot.com/-cHIaTP5m9m4/VElRBa0VvqI/AAAAAAAAFp4/q3yg0DfSN-4UyGUavu65OqeJfDZ8VPOiACPcBGAYYCw/s1600/TipIcon_Even_smaller.jpg" /></a></div>
<br />
<br />
<b>Problem: </b>When trying to do a Maya FBX export the .fbm folder never appears, and of course neither do it's textures when exporting with "Embed Media". Furthermore, all the textures are NOT embedded in the FBX file itself. Leaving you without proper textures.<br />
<br />
<b>Workaround: </b><br />
<b>Option 1: </b>Copy all your textures into one spot using the repath in the filepath editor. So that they are in one location. To open the File Path Editor, select Windows > General Editors > File Path Editor. In my case this actually still managed to break my textures because of some strange naming issues involving underscores. But it may work for you.<br />
<br />
<b>Option 2:</b> Use the File Path Editor to visually see each folder where your textures are spread and manually copy them all into the same folder.<br />
<br />
Now you can simply export an FBX WITHOUT "embed media" selected. And you have your textures in one location.<br /><br />I believe this problem is due to some larger projects with many textures involved such as lightmap baking.Maya Zesthttp://www.blogger.com/profile/08743271514991552062noreply@blogger.comtag:blogger.com,1999:blog-7030997078872733956.post-70433244668349191302020-06-05T14:19:00.002-07:002020-06-05T14:19:33.393-07:00Maya Back Faces Black - Reverse Normals Doesn't WorkMake sure the Vertex normals aren't locked:<br />
Choose your problem vertexes, then:<br />
Mesh Display > Unlock normals<br />
<br />
Then try to flip the normals again:<br />
Go to face mode and select the dark faces then in the top menu go to Mesh Display and under the "Normals" category click reverse<br />
<br />
<br />
AND/OR<br />
Choose: mesh display > set to face, which usually fixes the reversed normals while also leaving the normals which are fine<br />
<br />
<br />
If reversing the normals doesn't work, your vertexes are probably locked. Select problem vertexes and go to:<br />
Mesh Display > Unlock normals<br />
<br />
<br />
You could also try: Shift+RMB go to the bottom and reset normal settings<br />
<br />
<br />
References:<br />
<a href="https://www.reddit.com/r/Maya/comments/51ajr5/why_does_my_objectface_turn_black/">https://www.reddit.com/r/Maya/comments/51ajr5/why_does_my_objectface_turn_black/</a><br />
<br />
<a href="https://www.reddit.com/r/Maya/comments/ab2zfb/imported_object_has_reversed_normals_cannot/">https://www.reddit.com/r/Maya/comments/ab2zfb/imported_object_has_reversed_normals_cannot/</a>Unknownnoreply@blogger.com