2013-04-27

Rhinoceros で、複数のファイル間の layer の色を統一する

高速度ビデオで撮影した動画を1フレームごとに切り出し、1フレームを1ファイルとして background bitmap を Rhinoceros (ver 4) で読ませ、その上で物体の輪郭や特徴的な部位を複数の 2D 曲線としてトレース、という作業を行なっている。

曲線の区別のため、1本を 1 layer として色分けをしている。この色がフレーム(ファイル)によってまちまちなのを統一したいが、layer 数 20・ファイル数 200 以上にもなるため手作業ですべての layer の色を変えるのは大変すぎる。多少楽にする方法がないか考えてみた。

まず、データファイル (Fdata) 以外に、ファイルを2種類用意する。Fcolor, Ftemp と呼ぶことにする。
  • Fdata: 入力済みデータ(曲線群)がある。layer の色がバラバラになっている
  • Fcolor: 色テンプレート用ファイル - 必要な layer 数分の適当なダミーの線を引き、色分けを行っておく。各 layer の名前は Fdata のものに合わせておく
  • Ftemp: 空っぽのファイル。一時避難所として使う
以上3つのウィンドウを常時開いた状態で作業する。手順は、
  1. Fdata の曲線を全て選択し、cut & paste で Ftemp に退避する。非表示 layer や locked layer がないか注意。
  2. Fdata では layer の残骸が残っているので、これを全て消す。Default layer は消せない。
  3. Fcolor のダミー曲線群を Fdata へ copy & paste する。この時点で layer の色が更新される。用済みなのでこれらはすぐに消す。つまり Ctrl-V の直後に Del でよい。
  4. Ftemp に退避してあった曲線を Fdata へ戻して完了。
問題点として、sublayer があった場合にはその構造は破壊されてしまう(上位レイヤが消滅して、全部フラットな関係になる)。解決策は不明。
⇒ 解決ではないが、上位レイヤ名のダミーレイヤを Fcolor に用意しておくことはできる。もちろん結局は手作業で曲線レイヤをサブレイヤ化しないといけないので面倒だが…

UPDATE 2013-12-17
Rhino 5 SR6 を使っているが、上記のサブレイヤ構造が破壊される問題は直っているようだ。
ただ、いま別の問題が…色ではなくレイヤの名前を一気に変えたいのだが、これはもう手作業しか無いのか…

No comments: