[blender] マウスジェスチャーでビュー切り替え。

BlenderのフォーラムでCardinalMouseなるアドオンがリリースされており、マウス操作でビューを切り替えられるものらしくそれは便利そうと早速入れてみた。設定など見てるとどうやらキーマップの編集を一括で設定してくれるようなアドオンぽいので、自分でキーマップ編集して内容だけ真似してみた。アドオン素直に入れればいいんだけどできればカスタマイズしたいなと思ったので。Blenderのverは2.70

(Blenderでのテンキー操作に慣れている人にはあまり意味ないけど、逆にテンキーになかなか手が伸びない、外付けUSBのテンキーまで買ったのになかなか手が伸びないという僕のようなタイプにはおすすめかもしれない。

とりあえず調べてわかったこと。
・ビューポートの切り替え自体は”view3d.viewnumpad“というコマンドで投げる。(viewnumpadとわざわざ書いてるので他にも切り替えコマンドはあるかもしれない。)デフォルトでは各ビューNumpadの数字が割り当てられている。
・Blenderにはキーボードやマウスクリックだけじゃなく”Tweak“というmaptypeがあり、これはマウスジェスチャー的な挙動を拾ってくれる。
・Tweakを選ぶとValueの中身がWest,Eastなど8方向まで選択できるようになる。マウスジェスチャーの設定と同じ感じ。

これらの設定項目を元に新しく3Dビューの方向切り替えキーマップを作ってみた。基本設定は以下のように

MapTypeを”Tweak”にする …挙動はジェスチャーで
Typeを”Middle”にする  …マウスのミドルボタンで
Valueを”West”にする …ミドルボタンを左方向に動かしたら
Viewを”Right”にする   …viewをRightViewにしてね

続けてEast,North,South分も上と同じように追加し、それぞれLeftview,Topview,Bottomview用に設定していく。FrontとBackはどうしようかと考えこれらはクリックとダブルクリックに割り当てたのでTweakではなく普通にマウスクリックのイベントで設定。

view_gesturePrefs01

ビューポートでマウスのミドルボタンを押しながら各方向にジェスチャーしてみる。

気持ちいい!
感覚的には「あっち向いてほい」をしてまんまと引っかけた感じの挙動。すんなりなじむ。

ここまではCardinalMouseと同じような設定内容。さらに機能を追加することにした。
どうせならテンキーにある他の機能も取り入れよう。ということで以下を追加。

選択部分を目一杯表示(テンキーのピリオド) → Alt+middleMouse DoubleClick
ユーザービュー(テンキーの5) → Shift+MiddleMouse Click
カメラビュー(テンキーの0) → Shift+MiddleMouse DoubleClick

view_gesturePrefs02

ここまで設定したとこであれ、ちょっとやり過ぎじゃない?という気がしてきた。
ひと通り設定してからしばらくビューポートで操作してみたけど追加した3つの切り替えがなかなか覚えられない。方向の切り替えは直感的になって良いんだけどカメラビューへの切り替えなどは普通にキーボードにアサインしたほうが合いそうな気がする。
ただ、キーの空きを見つけるのも面倒なのでしばらくこの設定で使ってみることにした。まあなによりマウスジェスチャーぽく機能アサインできることを知ったのが重要なのだ。

ここまでの設定でテンキーに当てられてる機能をこんな感じでマウス主体の操作系に変更したことになる。

view_gestureImg

上下のアサインが逆っぽくも見えるけど「あっち向いてホイ」式に考えるとこっちがなじんだ。

追記:

レイアウト切り替えとフルスクリーンの切り替えも両手使うのがダルくてあまり使ってないのを思い出して追加した。ジェスチャーができることを知って明らかに調子に乗ってるけど、こちらも直感的な操作という意味ではけっこう相性いいんじゃないかと思う。

設定はこんな感じで。

view_gesturePrefs03

**キーマップを新規追加するときはどの項目にぶら下がるかでも挙動が変わる場合があるので注意が必要。

(レイアウト切り替えとフルスクリーン切り替えは元々スクリーン項目にあるのでそれと同じ場所に追加すればOKのはず。)

というわけで色々勢いで手を入れたけどグローバルな領域になればなるほどなにとぶつかるかわからないので
キーマップのカスタマイズはいつでも戻せるよう気をつけましょう。


blenderのスカルプトブラシにショートカットキーが割り当てられない!

小ネタです。

blenderのスカルプトで試したいことがあって、いい加減このモードでのショートカットキーも覚えようと、とりあえずよく使うブラシのショートカットを変えるために設定を見てみると、、

hotkey_sculput_n02

あれ?スカルプト項目のブラシ選択の中にお気に入りの”Polish”ブラシがないぞ?これではショートカットキーに割り当てられない。

デフォルトブラシとはなにか違う扱いなのか?(←ここで気づくべきだったけど)なんかよくわからないのでひたすらショートカットキー関連で検索、blenderのフォーラムで僕とまったく同じ質問をしてる人がいたのでホラ!やっぱないよね?どうしたらいいの!?と勇み足で回答コメントを見てみると、

「PolishBrushてのはFlattenToolのバリエーションに過ぎないんだぜ」


とのこと。知らなかった…デフォルトで入ってるけどPolishはカスタムブラシだったのだ。

で、親切な回答者さんは

「ブラシにショートカットキー割り当てたかったら、アルファベット順の並びから数字で指定することもできるから”_Polish”とか名前変更して数字キーの1に割り当てとかできるぜ」

とも言っており、なるほど設定みても確かに”brush.active_index_set”というコマンドで単純に並び順で指定できるっぽい。というか設定見なおしたら既にShift+数字キーでPolishも割り当てられてた。

謎が解けたけどよく使うブラシなので二個押しは面倒。以下のようにキーアサインした。

hotkey_sculput_n03

ようやくめでたくPolishに簡単に切り替えられるようになりました。


ネットの記事をできるだけすっきりクリップしたい。

ネット上の記事をevernoteにクリップする事が時々ある。ブックマークでいいじゃんという場合も多いけど、例えばCG関連のTIPSや資料になりそうなものは手元に残したいと思う。(いつまでもあると思うな親とブログ)evernoteは資料化したい時なんかにちょうどよくて便利なんだけど、クリップに関してはけっこうクセが強い。取り込むときhtmlのレイアウトが派手に壊れたり、余計な情報がくっついてきてしまうのでなんかこう気持よく使えない。後で見返す時もあまりに読みづらいと見る気すらなくしてしまうので、少しでもきれいにクリップするために色んな方法を試してきた。

・evernote公式のwebクリッパーを使う。

いつの間にか機能が増えてきて最近はだいぶ良くなってきた。必要なとこだけ切り抜いたりできるようになってるのでけっこういい。ただ妙にもっさりしてるのと、思ったようにスクラップできない場合も多い。

Clearlyを使う

Clearlyという自動でhtmlをダイエットしてくれるアドオン。けっこう長い間これを使ってた。evernoteと連携可能でFirefoxにもChromeにもアドオンがある。見てるページの広告など邪魔な要素を削ってシンプルなhtml表示にしてくれる。表示結果をそのままevernoteにクリップする連動機能があるので使い勝手はかなりよい。ただこれも表示してるページの広告部分だけ拾ってしまったり、時々うまくいかない時がある。

・PDFにしてしまう

見てるページをPDFにしてしまえばレイアウトが崩れることはないので資料的なものなんかはそうしてしまうこともある。ただブログ記事なんかだとヘッダーからサイドメニューから色々くっつくのでちょっと難はある。後からの編集がやりづらい点も。

・とにかくまるごとクリップしてevernoteで編集する。

これはこれで作業化しちゃえばそれほど苦には感じないかもだけど、evernoteの編集機能がクソちょっと使いづらい。Mac版のほうはまだいいんだけどwindows版のevernoteを使って編集しようとするとやたらとイライラさせられる。

で、どれも今ひとつという感じで使い分けしつつクリップしてたんだけど、最近PrintWhatYouLikeというチョー素晴らしいものを見つけた。見つけたというかブックマークレットはすごく前に入れてたみたいなんだけど存在を忘れてた。(ひょっとしたらすごい定番でいまさらなのかもしれない)

これは元々ブラウザに表示してるページをきれいに印刷できるようにするためのものなんだけど、使い勝手がとてもよい上に、けっこう細かい切り抜きができる。ここにあるブックマークレット使ってもいいしchoromeだとアドオンがある。

こいつ自身はプリントのための機能がついててダイレクトにevernoteと連携してる訳ではないんだけど、、編集結果はブラウザ上にそのまま表示されてるので、要はそのままevernoteにクリップしてしまえばいい。今まで色々な方法を試してきたけどこれが一番いいかもと感じる。欲しいとこだけちゃんと拾えてそこそこのレイアウトを保持してくれるから。

自分のブログで簡単な使い方を説明すると…

pt001

一般的なブログの表示状態。まだスッキリしてるほうだけど広告などが入ってる場合も多い。とりあえず記事の中身だけクリップしたいのでヘッダーやサイドメニューはいらない。

pt002

で、ここでPrintWhatYouLikeをポチっと押す。(Chromeなのでボタンだけどブックマークレットならリンクバーに置くなどで動作は同じ)

するとサイドバーが表示される。

pt003

サイドバーはこんな感じ。けっこう細かくオプションがつけられる。機能的には印刷用にフォーカスされてる感じ。でもwebクリップ用としてもばっちし。

pt004

サイドバーが出てる状態でおもむろにページ内にカーソルを持ってくと、赤枠がオーバーラップして表示される。切り抜きしたい部分に赤枠が出たらクリックでいったん範囲確定。(htmlの要素単位で枠を抽出するようなんでだいたいいい感じに切り分けてくれる)確定した部分に小さいメニューが出てくる。1個範囲確定して別のとこをポチポチ追加もOK。

pt005

”Isolate”を押すと範囲確定した部分だけにして切り抜いてくれる。”Remove”は範囲解除。Widen,Resizeなどはうまくいく場合といかない場合がある。SaveClipはなんか登録すると使えるものっぽい。evernoteにクリップしたいのでスルー。

pt006

Isolateを押したらこうなる。必要な部分だけスッキリ切り抜きできた。これでevernoteのクリッパーなりでクリップすればスッキリクリップの完了となる。(ちなみにサイドバーは閉じないとサイドバーごとクリップしちゃうので注意が必要)

僕のブログは地味なんでこれくらいの効果だけど、記事本文の間に広告が入ってたりするような複雑な構造になればなるほど本領を発揮すると思う。あとフォーラムスレッドを部分的に飛び石でクリップしたいな、みたいな時にもとても便利で、画像とコメントが連続するCG系のフォーラムなんかの取り込みも苦じゃなくなって大変良いのでオススメです。


MayaユーザーがBlender使って気になったとこ変えたとこ

前にもこのブログでBlender使い始めでハマったとこを書いたんですが、
しばらく使ってるうちに理解が進んだ部分も出てきたのでまとめなおしました。
MayaからBlenderへという目線で考察も含め、どこが気になってどう対策したかなど。MayaからBlenderに乗り換えるとかそういうお話ではないです。
あとBlender多機能なんでここでは想定する作業は基本的なポリゴンモデリングの範疇程度。
Blenderのバージョンは2.69です。

【 バージョンについて 】

バージョンアップの頻度が高いし安定するまで細かいマイナーアップデートが繰り返されたりするんである程度管理したほうがいいかなと感じた。運用としては
・最新版使う場合はバージョン毎に分けてインストールする。
・プロジェクトとして作業するものは安定版としてリリースされてるバージョンでやる。
てことに決めた。

ちなみに色々試す場合はhttp://www.graphicall.org/とか色々なビルド版が作成されてる。

【 選択が右クリックはやっぱきつい 】

Blenderネタとしては定番になってる「選択を右クリックから左クリックに変更」。
これはどうしても違和感が抜けなかったので変更。

[キーの場所] user Preferences → Input → Select With(選択)

Right を
Left に変更

【 ビューポートの操作はMayaと同じにしたい 】

デフォルトのBlenderの中ボタン中心に割り当てるという考え方は納得できるんだけど、
Maya以外のUnityなんかもMayaと同じなんでBlenderにも合わせてもらうことに。
ちなみにユーザー設定のプリセットに”Maya”というのがあってそれを選べば一発でMayaと同じ操作系になる。それでいいじゃん。なんだけど、どこを変えたらそうなるのかを把握したかったのでマニュアルで設定。

[キーの場所] user Preferences → Input → 3D view → 3D View(Global)

Rotate View(ビューを回転)の
Middle Mouse
Alt Left Mouse に変更

Move View(ビューを移動)の
Shift Middle Mouse を
Alt Middle Mouse に変更

Zoom View(ビューをズーム)の
Ctrl Middle Mouse を
Alt Right Mouse に変更

*これを設定するとAlt+右クリックがループセレクトのショートカットとダブっちゃう。若干の不都合てのがこれ。ただしループセレクトはShift+Alt+右クリックでもいけるので一応回避可能。

【 カメラ操作がよくわからない 】

デフォルトだとカメラビューの操作がラジコン操作みたいに難しかった。リアルなカメラっぽいっちゃカメラぽいんだけど。
これは簡単に変更できるオプションがありました。ので変更。
プロパティを表示(キーボードのn)してView項目にあるLock Camera to View (カメラをビューにロック)のとこにチェックを入れる。
これでビューポート操作と同じ感覚でカメラビューが操作できる。

【 ビューポートのクアッド/シングル切り替え 】

Sapcebarでバシバシ切り替えるやつ。Mayaで連打してハイになる勢いで使っていて、手クセみたいになってるので同じようにしたくなった。
Blenderのテンキーで切り替えに慣れればいらないかも。

[キーの場所] user Preferences → Input → Screen → Screen(Global)
Toggle Quad View(四分割表示) の
Ctrl Alt Q を
Spacebar  に変更

*画面切り替えをMayaと同じSpacebarにすることで、検索窓を出すショートカットキーとダブります。
なので検索窓を出すショートカットキーにCtrl Alt Qを設定してあべこべに。

[キーの場所] user Preferences → Input → Window
Search Menu(検索メニュー) の
Spacebar を
Ctrl Alt Q に変更

【 画面構造がよくわかんない 】

Mayaがわかりやすいという事でもないんだけど各ビューがどういう構造になってるか理解できないとなかなかとっつきにくい。

Blender269_view
blenderをデフォルトで起動した画面
maya2014_view
Maya2014をデフォルトで起動した画面

初期状態でそれぞれどんなパネルレイアウトになってるか比較してみた。こうやって見るとMayaって初見だとかなりごちゃごちゃして見えるのでは。
赤い枠のとこはほぼ固定されたメニュー
黄色が作業空間になる3Dビューポート
青はその他いろいろなパネル
mayaのほうだけにある紫色の枠は機能的にBlenderと扱いがちょっと違う感じのもの。
BlenderもMayaも色んな種類のパネルをレイアウトする考え方は一緒。ただパネルの中に含むもの、含まないものが微妙に違ってる。

Blender269_view2

Blenderの画面2:
紫はインフォビュー(ヘッダーのみ表示されてる)
青がアウトライナー
緑がプロパティ(Nキーでのプロパティとは別)
黄が3Dビューで紫の枠の左がツールシェルフで右がプロパティ
赤い枠はヘッダー

Blenderで特徴的だなと思ったのは「ツールシェルフ」と「プロパティ」という要素(紫色の枠)で、こいつらは独立したパネルではなく、ビューの中に含まれてる。実はそれにしばらく思い当たらずもやもやした気持ちのまま使ってた。

ツールシェルフとプロパティは、それぞれのビューを机に見立てるとその机についてる引き出しみたいなもので、机(ビュー)によっては引き出しそのものがない場合もある。

Mayaにもシェルフという名前のパネルがあるんだけど構造に大きな違いがある。そのせいでよけい混乱しやすい。

Mayaのシェルフは多くの機能がタブ分けされアイコン配置されている。
アイコンできれいに並んでるから良いわけじゃない。シェルフが重要なのは「モードが変わってもその内容は変わらない」という上層に位置してることと「ユーザーが好きにタブを増やしてコマンドやMELを並べたりといった事ができる」この2点。僕はショートカットに振り分けるほどでもないような機能やスクリプトなんかをここに放り込んでまさに棚のようにして使ってるんだけど、あれどこだっけみたいなときにすぐに見つかってとても便利。

Blenderではそういったものはないので、とにかく各ビューのツールシェルフやメニューの中を探すことになるんだけど、正直このへんは振り分け的にも散漫な印象がある。必要な機能はショートカットキーで覚えるからどこにあろうが関係ないという男気あふれる割り切りを感じる。潔いけどもうちょっとなんとかならないのかなと思ったりもする。
(ver2.70でツールシェルフにタブが導入されたけど個人的にはそれじゃない感が強い)

ちなみにmayaでいうシェルフっぽいものとしてこんなアドオンもあった。
http://blenderartists.org/forum/showthread.php?321282-Update-For-Maya-to-Blender-Migrators-Vismaya-Tools-Ver-1-1-Released
blenderの色んな機能をMayaユーザー向けにパネルにしたよっていうアドオンで、mayaでいうあの機能はこれ、って感じのデザインになっているのでMaya使ってる人にはけっこういいんじゃないかと思った。
こういったアドオンを使って馴染んでくのも手かもしんない。

あと機能を探すといえばMayaはホットボックスを使ったマウスオペレーションがあるけどBlenderはとにかくキーボードショートカットキーをこれでもかというくらい詰め込んでいて好対照。なのでこればかりはmayaと比べてうんぬん自体ナンセンスかなと。
一応アドオンであれば例えばpiemenusというそれっぽいのがある。
http://blenderartists.org/forum/showthread.php?267414-Pie-Menus-%282-66%29-Update-01-28-13
ただこれ僕の環境ではうまく動いてくれなくて実際の動作がどんなもんかわからなかった。あとキーボードのショートカットを駆使するのはかっこいいと思うのでそれでいいと思ってる。

【 Undoについて 】

BlenderのUndoにはクセがある。
一見、一般的なソフトウェアみたいにUndo/Redoができるんだけど、
実際はオブジェクトモード(グローバル)とエディットモード(ローカル)でそれぞれ別々のヒストリーを独立して持っているため、Mayaのようにオブジェクトの操作だろうがコンポーネントの操作だろうが行った手順を逆再生のように遡っていくUndoは効かない。
最初意味がわからなくて突然エディットモードの内容が一気に消えて戻せなくなって焦ったりした。で調べてみると過去のリリースノートにはこうあった。

二つのUndoシステム
– 非常に重要な事です。EditModeのUndoスタックは’GlobalUndo’スタックからは切り離されています。これはもしEditModeに入ったとき、UndoステップはEditModeに入ったときまでしか戻れないことを意味します。EditModeを出たとき、さらにUndoできますが、これはEditModeをそっくりそのままスキップします。
この機構は実際に決定されたデザインではなく、EditModeのUndoのみ利用可能だった過去からの成長の結果です。
しかし、Global Undoのステップとは独立しているため、EditModeに帰れば常に完全なオリジナルのUndoスタックが利用できる利点があります。我々がこちらを採用しようが、完全なUndoの融合を採用しようが、次のリリースになります。

Blender 2.35 リリースノートより(Blender.jp和訳版)

なんだか読んでもよくわからないけどとにかく別だからということでなんとなく納得。
あと2.35リリースはもうだいぶ前なのでこの辺の仕様もちょっとずつ変わってるのかもしれないけど根本的なとこは変わってないっぽい。
まあUndo周りの挙動はけっこう面食らったけどわかってしまえば対処のしようがないわけではないので全然問題ない。まったく問題ない。むしろundoがあるから…みたいな甘えた感じの心に喝を入れてくれるようなこれまた男気あふれる仕様だと思います。いつの時代もこまめなセーブは大事だ。

【 まとめ 】

だらだら書いたらやけに長くなってしまったけどだいたいこんなところです。
細かいとこで色々困ることはあるもののBlenderは知れば知るほどよく出来てるなと感じます。
あと以下はその他カスタマイズしてる部分について健忘録として載せておきます。

【 ズームの中心をアレンジ 】

ズームはデフォルトだと画面中央を中心としてズームするんだけどカーソルのある位置を中心にズームしてくれるオプションがあったので変更。
ユーザー設定 → インターフェイス → ViewManipulation(マニピュレーターを表示)
Zoom To Mouse Position(マウスの位置にズーム)にのとこチェックを入れる。

【 メッシュ編集時のモード切り替え 】

デフォルトではCtrl+Tabで頂点/辺/面のポップアップリスト出て切り替えできるし、ヘッダーにある頂点、辺、面のアイコンを全部アクティブにすればマルチセレクトモードにもなるでそのままでも使いやすい。んだけど手癖っぽいなにかで気になってしまう。
自分はCtrl+Tabが押しづらいのとどうせならキーボードでダイレクトに切り替えたいなと。
頂点/辺/面の切り替えはショートカットキーが存在しないので新規で作らないとダメ。
この場合の割り当て方は2通りあって

1.ポップアップメニューから直接ショートカットキーを割り当てる。

Ctrl+Tabを押して出るリスト上で右クリックすると“Add Shortcut”という項目が出るのでそれを選択
“Press a key”と出るのでその上でアサインしたいキーを入力
これで割り当て完了。

2.ユーザー設定でキーマップに直接追加する。

ユーザー設定インプットタブのツリー中にある”Add New”というボタンを押し新規ショートカットを作る。
空白状態になってるので”none”と書かれたとこにmesh.select_modeと入力。(タイプミスがあると機能しない)
その隣のボックスをクリックすると”Press a key”と出るので割り当てたいキーを入力する。
グレーアウトしているがTypeという項目でvertex,Edges,Facesが選べるので計3種類分のショートカットを作る。

2の手順はちょっと面倒だけど1も2もやってる中身は同じ。1の方法で他機能のキーアサインもできるけど自分の環境では挙動がやや怪しいので最初から2番の方法で設定するようにしてる。
ちなみにCtrl+Tabで出るポップアップもこのキーマップ内で設定されていて、”wm.call_menu” で”VIEW3D_MT_edit_mesh_select_mode”というメニューを呼び出すことでメニューのポップアップとなるらしい。

あ、あと重要な点としてこの設定はエディットモードのメッシュ編集時にだけ効くということ。
さらにいうとオブジェクトモード、つまりエディットモードより上層のグローバルな状態では
そもそも数字キーはレイヤーに割り当てられている。けっこう混乱するのでこれについては正直人には勧められない。


[bledner,cycles]テクスチャの複合

オブジェクトの上下で自然にテクスチャをわけたい時どうすればいいのかちょっと悩んだのでメモ。
まず2種類のテクスチャ
2tone_tex

このAとBを上下に分けて貼るんだけど境界線はある程度コントロールできるようにしておきたい。
たぶん色々やり方があるんだけどとりあえず思いついたやりかただとこんな感じになった。

2tone_node

2枚のテクスチャはMixShaderを使ってそれぞれつないでおく。
ColorRampで白黒グラデーション作りそれをMixShaderのFacに。
またColorRamp自体のFacとしてUV_mix1という新しいUVマップを追加してそれをアトリビュートで指定。
これでオブジェクト側がある程度有機的な形でもUVマップの編集である程度はコントロールできることと、貼り分け境界の曖昧さなどもColorRampでコントロールてきるので調整がしやすい。

2tone_rend