Blog (3)
Komentarze (5)
Recenzje (0)
@makalMaya: skrót klawiszowy dla Tool Settings

Maya: skrót klawiszowy dla Tool Settings

20.08.2012 | aktual.: 20.08.2012 12:41

Ostatnio rzeczą, która irytowała mnie przy pracy z Autodesk Maya był spowolniony dostęp do okna Tool Settings, w którym można dostosowywać właściwości dla narzędzia używanego w danej chwili.

Okno Tool Settings dla Select Tool
Okno Tool Settings dla Select Tool

O ile w przypadku Select Tool, Move Tool, Rotate Tool, czy Scale Tool (skróty q/w/e/r na klawiaturze), można sobie poradzić bezproblemowo, gdyż przetrzymanie dedykowanego skrótu i kliknięcie LMB otwiera przed nami szybkie menu dostępu do ich właściwości, to o tyle w przypadku takich instrumentów jak Interactive Split Tool, czy Insert Edge Loop Tool nie jest tak fajnie (a takich narzędzi jest oczywiście dużo więcej).

Osobiście okno Tool Settings mam przypięte do kart Channel Box i AE po prawej stronie Mayi. Jeśli mam fajny wbudowany skrót (ctrl+a), który przełącza mnie pomiędzy tymi kartami, to chciałbym mieć i taki, który by mnie dodatkowo przełączał pomiędzy Channel Box i Tool Settings.

By to zrobić, trzeba się udać do menu: Window > Settings/Preferences > Hotkey Editor

427499

W tym oknie zarządzamy skrótami klawiszowymi w Mayi. Nie tylko możemy przypisywać je akcjom/narzędziom z różnych menu, które nie mają domyślnie dedykowanych skrótów, ale także tworzyć zupełnie nowe skrypty i przypisywać im kombinacje klawiszowe, przy których je uruchomimy.

Na załączonym powyżej screenshotcie widzimy po lewej stronie Categories, zaraz obok mamy Commands, które są przypisane dla danej kategorii. Dalej po prawej mamy Current Hotkeys, czyli możliwe skróty klawiszowe (może być więcej niż jeden!) przypisane obecnie dla danego skryptu. Na dole widzimy pole edycji danej komendy. Możemy ją usunąć lub stworzyć kompletnie nową. I to drugie będzie nam teraz potrzebne.

Skrypt, który stworzyłem dla przełączania się pomiędzy Tool Settings a Channel Box opiera się na dwóch już istniejących w Mayi: ShowAttributeEditorOrChannelBox (w kategorii Miscellaneous), oraz ToggleToolSettings (kategoria Display).

Obydwa skrypty są standardowo napisane w MEL‑u (Maya Embedded Language).

if(`isAttributeEditorRaised`) { 
   if(!`isChannelBoxVisible`) {
      setChannelBoxVisible(1);
   } else {
      raiseChannelBox;
   }
} else {
   openAEWindow;
}

ShowAttributeEditorOrChannelBox

if (`isUIComponentVisible("Tool Settings")`) {
	toggleUIComponentVisibility("Tool Settings");
} else {
	toolPropertyWindow -inMainWindow true;
}
; updateMainWindowComponentState()

ToggleToolSettings

Na dobrą sprawę, można użyć tego drugiego kodu do rozwiązania problemu. Skrypt działa w ten sposób, że włącza i wyłącza okno Tool Settings. Ja natomiast, jak już wspomniałem, potrzebuję skrótu na wzór tego pierwszego kodu (ctrl+a) - jego zadaniem jest przełączanie się pomiędzy kartami Channel Box i AE.

Zatem w oknie Hotkey Editor klikamy w "New", aby zacząć tworzyć nowy skrypt. Obok Name przypisujemy mu nazwę (bez spacji i znaków specjalnych). Ja swój nazwałem po prostu ShowToolSettings. W Description możemy wpisać opis, jak nam się podoba. Category, tu mamy także dowolność. Osobiście przypisałem swoją komendę do Display. Language, oczywiście w tym przypadku MEL. Zanim przejdziemy do pola edycji Command kliknijmy po prawej "Accept", w ten sposób dodaliśmy (na razie pusty) skrypt do listy wybranej przez nas wcześniej kategorii. Teraz skopiujmy kod ShowAttributeEditorOrChannelBox i wróćmy do naszej komendy, zaznaczmy ją i kliknijmy "Edit". Wklejmy kod. Teraz czas go zmodyfikować.

Przede wszystkim jeśli spojrzymy na skrypt ToggleToolSettings to możemy pomyśleć, że ekwiwalentem dla komend AttributeEditor i ChannelBox z ShowAttributeEditorOrChannelBox może być UIComponent("Tool Settings") i w pewnym stopniu tak jest, ale jeśli zaczniemy się bawić w if (`isUIComponentRaised("Tool Settings")`) to wyskoczy nam przy egzekwowaniu błąd braku komendy o takiej nazwie. O dziwo istnieje coś takiego jak UIComponent("Channel Box / Layer Editor") oraz to samo dla AE i bierze się to z pełnej nazwy jaka jest dostępna w menu. Przy tym kodzie jednak poprawnie zadziała tylko komenda ToolSettingsRaised, zatem mając to na uwadze, możemy teraz łatwo zmodyfikować kod na:

if (`isToolSettingsRaised`) {
	if (!`isChannelBoxVisible`) {
		setChannelBoxVisible(1);
	} else {
		raiseChannelBox;
}} else {
	raiseToolSettings;
}

Klikamy po prawej stronie w "Accept" i teraz możemy przypisać skrót klawiszowy. Ale jaki? By zobaczyć jakie kombinacje nie są jeszcze zarezerwowane wchodzimy do okna List Hotkeys, przyciskając wcześniej "List All...". Po prawej mamy kolumnę Unmapped, która pokazuje nam klawisze dla grupy "No modifiers", jeśli chcemy zobaczyć wszystkie dostępne kombinacje, to po lewej stronie okna mamy opcję "List all". Osobiście szczęśliwie się dla mnie złożyło, że jest dostępny skrót ctrl+shift+a (w Mayi interpretowany jako ctrl+A). Jest on bliski ctrl+a, zatem fajnie się na siebie będą nakładać obydwa skrypty. Zaopatrzeni w tą wiedzę, zamykamy te okno i w kolumnie Assign New Hotkeys wpisujemy shift+a (co da nam oczywiście "A") i poniżej zaznaczamy "Ctrl". Direction pozostawiamy domyślnie na "Press" i klikamy w "Assign" teraz na dole okna Hotkey Editor przyciskamy "Save".

W ten oto sposób skrót ctrl+shift+a od teraz powinien zamieniać nam widoczność pomiędzy kartami Channel Box i Tool Settings.

Wybrane dla Ciebie
Komentarze (0)