視認性万歳　Maya用ツールのちょいこん

[Maya Advent Calendar 2020](https://qiita.com/advent-calendar/2020/maya)

皆様、師走の候いかがお過ごしでしょうか？

私？私は一件仕事が終わったと思ったら、別件でタスクが倍になって返ってきました。

お仕事あるのはありがたいですけど、入るものは変わらんとです…
<br>

はい。というわけで今年のMayaアドカレも小ネタを刻んでいきたいと思います。

今年はアイコンにまつわるお話です。
<br>

![iconlist_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/4b6528a8-2b9c-bff9-ef24-3294622cc6a5.png)
何かしらツールを作るときのアイコンってかなり重要です。

ボタンだけの味気ないツールを起動するよりも、ボタンをアイコンボタンにしたツールを起動する方がテンションが上がります。

時間のかかるプロセスにスプラッシュなんかつけようものなら、なんかスプラッシュが見たくて実行したくもなります。

待ち時間も苦じゃありません。

そんなわけで、GUIが必要なツールは極力見てわかる、楽しめる、デザイン性があるものにするのを心情(信条)にしてまして、

ツール用のアイコンもそのために用意します。

が、

**アイコンを作るのがめんどいことめんどいこと…**

アイコンありのツールが作られにくい理由ってそこにあると思うんですよね。

というか、Mayaとかですでにアイコンあるならそれでいいじゃん(いいじゃん)
<br>

<font color="Red">**※注意※**</font>
ここから先は知ってるって人は結構いると思うので、途中まで読んでそう思ったら迷わず他の人の記事にいきましょう。

私的備忘録的な意味合いが強い記事なので、そっちの方がきっと有意義な時間を過ごせます。
<br>
<br>
<br>
<br>
# アイコンリスト

Mayaで使用しているデフォルトのアイコンを取得するには、

```python:
cmds.resourceManager(nameFilter="*")
```

で取ってこれます。

ここで取れるアイコン名は、MayaのUIで、アイコンが使用できるものにそのまま使えます。

```python:
cmds.nodeIconButton(i='fileOpen.png', st='iconOnly', c='fileOpen()')
```

みたいな感じです。

これによって、(本当はどこにあるのかわかんなくて気になるけど)パスなしでアイコンを使うことができます。

あと、問題があるとすればどの名前のものがどんなアイコンなのか…ということなんですが、

それは有志の方がアイコンをリストして見れるツールを配布しているのでそういうのを使ってみてください。
<br>

さて、すでにやってみたことがある方はわかると思うんですが、

案外Mayaデフォルトで入ってるアイコンでも必要なものが足りなかったりします。

私の場合特に、あったとしてもデザインが気に入らなかったりします。

あんまり問答無用にアイコン使ってもUIがしっちゃかめっちゃかになったりするんですよね。
<br>
<br>
<br>

そんなわけで楽しようとした結果ひねり出したのが、他のデフォルトアイコンを使うという選択肢。

はい、もうお分かりですね。ここまで読んで「知ってる」って人は他の人の記事に行きましょう！

時間がもったいないです。
<br>
<br>
<br>

気を取り直しまして…

**Pyside(Qt)側にもあるんです。デフォルトアイコン。**

これを使えばさらに選択肢が増えます。

これまた、有志の方がアイコンを一覧できるようなツールを作ってくれているので使ってみてください。
<br>
<br>
<br>

ちなみにですが、Maya内で、PysideでMayaのアイコンを使う際ですが、

```python:
QtGui.QIcon(':/hoge.png')
```

のように書くと、Mayaコマンドのようにフルパスじゃなくても認識されます。
<br>
<br>
<br>
<br>
# 私的アイコンチョイス
というわけで、一体なんのためにこの記事を書いたかという本題。

毎回リストから選ぶのめんどいということで、私的によく使う、汎用的に使えそうなものをチョイスしてみました。

あいこんちょいす略してちょいこん。

はい。完全に自分用リストですね。

ファイル名のものはMayaデフォルト、QtWidgets.QStyleがついているものはQtのデフォルトです。

早速行ってみましょう。
<br>

| アイコン | アイコン名 | 用途 | コメント |
| :-- | :-: | :-: | --: |
| ![iconlist_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/88493c93-8046-38c5-a5c5-d43afa42cdc9.png) | fileOpen.png | ファイルダイアログ用ボタン | Qt側にもあるが、こっちは白黒なのでUIのデザインにマッチしやすい。 |
| ![iconlist_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/f874d036-9c17-4249-fa50-1ad1347379be.png) | QtWidgets.QStyle.SP_DialogApplyButton | チェックマーク, OK用表示 | チェックマークって日本だと馴染みないですが、緑色のチェックマークというのが良いところ。<br>馴染みなくてもOKって意味で捉えやすい。 |
| ![iconlist_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/7b9888bb-5501-4158-d501-4b6d65cfea4e.png) | caution.png, QtWidgets.QStyle.SP_MessageBoxWarning | 警告表示 | そのまま。 |
| ![iconlist_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/5aa7fd68-2cb5-46e2-1ab8-a4b48505bbcc.png) | QtWidgets.QStyle.SP_MessageBoxCritical | エラー表示 | そのまま。 |
| ![iconlist_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/a2c6357c-e347-47b6-f091-8a118350826b.png) | error.png | エラー表示。 | x部分が透過な分ちょっと軽めに感じるので、こっちはキャンセルとか、閉じるとかにも使える。 |
| ![iconlist_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/78f12d8f-d2cb-fa67-109b-cdaba15dfbb3.png) | QtWidgets.QStyle.SP_MessageBoxInformation | 注意や情報表示 | 親しみのあるアイコンなので意図が伝わりやすい。<br>warningの1ランク下の警告的意味合いも持たせられて便利。 |
| ![iconlist_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/24b0afc2-396f-5ae4-9c97-682bdb734915.png) | QtWidgets.QStyle.SP_BrowserReload | リロードボタン | UIのリロードとかあらゆるリロードに使えるアイコン。<br>ネットで見かけるオリジナルアイコンよりも断然親しみやすくわかりやすい。<br>青色の方がリロードボタンの存在をちょっと強調できるので好き。 |
| ![iconlist_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/c1d37966-b5cf-4a83-1fb0-167bd011d0b6.png) | hotkeySetSettings.png | オプションとか設定表示 | ギア=設定ですよね。 |
| ![iconlist_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/788f247d-bebd-f031-72ec-d9d547f14b9e.png) | nodeGrapherNext.png | 進む表示 | 他にも似たようなのありますが、やっぱ白黒＆シンプルでデザインを合わせやすいのがいいです。 |
| ![iconlist_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/535f1887-2f5b-af62-e4ed-b80ae37a1dbf.png) | nodeGrapherPrevious.png | 戻る表示 | 他にも似たようなのありますが、やっぱ白黒＆シンプルでデザインを合わせやすいのがいいです。 |
| ![iconlist_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/de2f327b-d56c-1247-46ed-892241c7109f.png) | removeRenderable.png, QtWidgets.QStyle.SP_TrashIcon | 削除 | ゴミ箱=削除ですよね。 |
| ![iconlist_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/d4e5cae9-1961-75c1-c5ac-15f159d2d569.png) | fileSave.png | セーブ | これ以外にもいっぱいありますが、どれも似たような感じなのでどれでもいいです。<br>個人的にはQtよりもMayaの方がラインが際立ってアイコンっぽいので好きです。 |
<br>
<br>
<br>
<br>
# おわに
ここで紹介してないのもあるんですが、用途がちょと限定的とかだったり、自分でもまだ使ったことがなかったりなので、

**残りは君の目で確かめてみてくれ！（攻略本）**
<br>

今までのをうまいこと使えば↓　こんな感じで、ノードがリファレンスしているパスの先のものがどうなっているのかの情報が一目で認識できるようになったりします。
![iconlist_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/153835/4b6528a8-2b9c-bff9-ef24-3294622cc6a5.png)

アイコンによる視認性万歳。(∩´ω`)∩
<br>
<br>
<br>
<br>
ということでここまで(:3ﾉｼ　)ﾍ
<br>
<br>

*　※免責事項※
本記事内で公開しているコードの安全性について、当方は一切の保証を与えておりません。
これらのコードを使用したことによって引き起こる損害に対し、当方は一切責任を負うものではありません。
自己責任でご使用ください。*