日々適当

hibitekitou

Photoshopで次のレイヤーを選ぶ時

mac |2014-03-12
Photoshopで現在選択されているレイヤーの上のレイヤーあるいは下のレイヤーを選ぶ時、ショートカットは Option + ] あるいは Opthin + [ です。んが、これって表示されているレイヤーしか選んでくれないのですね。非表示だとそこをスキップしてしまう。
そんじゃ、スクリプトで非表示でも選択されるようにってする場合、
下のレイヤー

function setActiveLayer(layer){
visiState = layer.visible;
activeDocument.activeLayer = layer;
layer.visible = visiState
}

function selectNextLayer( obj ){
curLayer = obj.activeLayer;
if(curLayer.typename == 'LayerSet')
{
layObjs = activeDocument.layerSets.getByName( curLayer.name ).layers;
} else {
layObjs = obj.layers;
}
visiState = true;
for(i=0; i < layObjs.length; i++)
{
if (layObjs[i] == curLayer){
if( ( i + 1) == obj.layers.length )
{
setActiveLayer(layObjs[0])
break;
} else {
setActiveLayer(layObjs[ i + 1])
break;
}
}
}
}

selectNextLayer( activeDocument );

上のレイヤー

function setActiveLayer(layer){
visiState = layer.visible;
activeDocument.activeLayer = layer;
layer.visible = visiState
}

function selectNextLayer( obj ){
curLayer = obj.activeLayer;
visiState = true;
for(i=0; i < obj.layers.length; i++)
{
if (obj.layers[i] == curLayer){
if( ( i - 1) == -1 )
{
setActiveLayer(obj.layers[ obj.layers.length - 1 ])
break;
} else {
setActiveLayer(obj.layers[ i - 1])
break;
}
}
}
}

selectNextLayer( activeDocument );

でいけるんですけどね。問題はレイヤーセットがある時、どうすべきなのか。
なんか、それをケアするのが面倒です。
簡単に書けないかなぁ…
コメント ( 0 )|Trackback ( )

それでも更新されてるのがうれしいですね。

xsi |2014-03-11


emTools 1.93 - New Stuff and Liquid Particle Shaper [Vimeo]

emTools。無料のありがたいICEのツール集。Softimageへのモチベーションをうしなわず、アップデート来ました。ありがとう。
この新しいコンパウンド自体は別のツールに対する何かになるみたいですけど、これだけでもちょっと面白いですね。
別のツールに対する何かってのは

RnD: Weighted Principal Component Analysis (implemented in emTools) [Vimeo]

RnD: Weighted Principal Component Analysis (final version in emTools + polygonizer test using emTopolizer2) [Vimeo]

こちらな感じすか?
for softimageのあとは、for mayaやfor fabric engineのemPolygonizerに搭載してくるみたいですけど、for macもよろしくです(^^)
コメント ( 0 )|Trackback ( )

Photoshopでテキストレイヤーを作成するスクリプト

mac |2014-03-07
テキストファイル渡されて、この文字空間に配置してって用件発生しまして。ただ、メッシュでやるのはあまりよろしくない案件だったのでテクスチャを作ることとしました。数百行ある文字列を行ごとに別レイヤーにして作成するのを手でやるのは大変であるというのはたぶん誰でも想像はつくと思います(正確には1行を二つの項目に分解し、それぞれも別レイヤーにしないといけないし、両者のフォント、文字サイズ、位置を整えないといけない)。

ということでスクリプトを書くわけです。
新規書類を作成し、

preferences.rulerUnits = Units.PIXELS;
doc = documents.add(3000,300);

レイヤーを追加し、

layers = doc.artLayers;
layer1 = layers.add();

そのレイヤーをテキストレイヤーに変更し、

layer1.kind = LayerKind.TEXT;

テキストファイルから取得した文字列を入れ込んで、

layer1.textItem.contents = "テキストファイルから読み込んだ文字列";
文字列の属性を設定してやります。

layer1.textItem.size = 125; //フォントサイズ
layer1.textItem.font = "TelopMinPro-E"; //フォントの種類
layer1.textItem.justification = Justification.RIGHT; //右寄せ
layer1.textItem.color.rgb.red = 255;
layer1.textItem.color.rgb.green = 255;
layer1.textItem.color.rgb.blue = 255; //この上3行で色白にしてる
layer1.textItem.horizontalScale = 90; //水平比率

このレイヤーの位置を調整するにはバウンディングボックスを利用します。
例えばこのレイヤーの右下の位置を ( 100, 50 ) に移動させたいのなら、バウンディングボックスの右下の位置がどれだけ動けばその位置に行くか、という計算をします。移動量を ( transX, transY ) とするなら

transX = 100 - layer1.bounds[2];
transY = 50 - layer1.bounds[3];
layer1.translate( -transX, -transY);

です。なんでこうなるのかよく分からないのですけど、マイナスをかけています。

必要ならレイヤーセットを作成し、その中にテキストレイヤーを入れてやります。

newLayerSet = doc.layerSets.add();
layer1.move(newLayerSet, ElementPlacement.INSIDE);

というわけで、これを(文字列処理部分があるけど)行数分だけループで回して完了しました。
まぁだいたいそんな感じで大量のルーチンワークにスクリプトは必須ですな。
コメント ( 0 )|Trackback ( )

Google Earth とAppleScript

mac |2014-03-07
Google Earthの現在のバージョンは7.1.2みたいです。
驚いたことにAppleScriptに対応しており、緯度経度、向き、ビューの距離を指定することで、その指定した位置にカメラを持っていったり、逆にビューの情報を取得できたり出来ることになっています。
ってことで組んでみたんですけどね、動く時と動かない時がある。
どうも、現行バージョンはそんな問題を抱えているらしいです。
Ver.6が入っているマシンがあったんでそっちで試したら、そっちは問題ないようです。
AppleScriptから制御可能ってのは相当便利なんで、直して欲しいなぁって思いますですよ。

<追記>
その後、検証したりネットをあさっていたところ、

Issue 1649 - earth-issues - Google Earth Applescript Completely Fails - Google Earth issue tracker - [Google Project Hosting]

というページにぶち当たりました。activateを投げると(Google Earthが最前面に来るようにする)駄目みたいです。
実際、自分のスクリプトからそれを外すと動作しました。

ということで、スクリプト実行中はマシンを触らないようにすればなんとかなりそうですね(うっかり触って他のアプリのウインドウを前に出さないようにするために…)
</追記>
コメント ( 0 )|Trackback ( )

Softimageに死の宣告

xsi |2014-03-05
Softimage の最終リリースについてのお知らせに関する FAQ [Autodesk] PDFへの直リン

Softimage 2015が最終バージョンになること。サポートは2016年4月までであること。
既存サブスクリプションユーザはMayaかMaxへの移行オプションを無償で用意すること。
その移行期間は2年間でこの間はMayaかMaxとSoftimageを起動できるライセンスになること。
Entertainment Creation Suite PremiumユーザはUltimateに自動的に移行となること。





いやもぉ、この時がくると、徐々に覚悟させるような空気にAutodeskは持っていってくれていたけどさ。ふざけんなって思いますよ。死ねならむしろ(自主規制)
ということで、Softimageは今年4月にリリースされる物が最後です。2015の新機能も見れるようになっていますが、そんなことを見たあとなので心が踊るものはありません(そもそも心躍る新機能は含まれていませんけど)。

mayaかmaxへの移行を選んだ場合、2016年4月以降に発行されるライセンスでのSoftimageの扱いはどうなるんでしょうね?

僕個人でいえばECSPからECSUに移行となりますけど、max使えるようになってもなぁってのが正直なところ。使う気は全くないんですよね。
なんか将来的にサブスク契約切っちゃうかもしんないなぁ…。

これに乗じてHoudiniの維持費が安くなりませんかね。維持費がSoftimage並になるなら、ICEを使っていたSIユーザーが流れ込んでくるんじゃないかと思うんだけど、まぁ流れ込んできたとしても大した人数じゃないからそれを見越して安くする動機にはなりませんか、そうですか。
コメント ( 2 )|Trackback ( )
  ・次ページ »