日々適当

hibitekitou

Macでウイルス被害が起こっているらしい

mac |2011-05-20
Mac上で実害を持ってある程度の人数が被害に遭うウイルスってMac OS Xになってから聞いた事がなかったけど、それが遂に現れたようです。
まぁウイルスではなく偽ソフトって書いてありますけどね。マルウェア。

Macユーザーを狙う「偽ソフト」出現、勝手にインストールされる恐れ:ニュース [PC Online]

MACDefenderやBest Mac Antivirusという名称のソフトウェアとの事で、ウイルスを検知するツールのように振る舞い、それを駆除する為のツールを販売しているという所に誘導しそれを購入させるのだそうだ。状況からクレジットカード情報を抜かれちゃったりするのかもしれませんね。ユーザーが自分で実行して危険な目に遭う系のものだけど、実際にこの件でAppleCareに対して結構な数の問い合わせが発生しているようでそれなりに数が出回っている印象らしい。

まぁ、気をつけましょうという事ですね。出来ればアンチウイルス系のツールを入れましょうねって事ですかね。え?アンチウイルスソフト入れてないの?まじで?って風潮にMacがWindows並になっていかない事を祈ります。

<追記>
急増するMac用マルウェア、Appleが対策文書の公開とアップデート提供を告知 [マイコミジャーナル]

その後、Appleも声明を出しているようですね。
注意しましょう。
</追記>
コメント ( 0 )|Trackback ( )

バンディングボックスを作る為の情報の取得

xsi |2011-05-20
昨日の続きです。

という事で、ポリゴンアイランドの取得が出来たので、PointCloudに各ポリゴンアイランドのバウンディングボックスを作る為に必要な情報をとり出す方法を考えました。



昨日はシリンダーをマージしたpolymshオブジェクトでしたけど、今日はcubeをマージしております。
そのマージしたものに対して、昨日と同じICE Treeを設定しています。ただし、昨日のICE Treeでは属性tempとして表示していた各バーテックスがどのポリゴンアイランドに属しているかという値は、PolygonIslandIndexっていう属性に入れています。また、__NoOfPolygonIslandは昨日組んだコンパウンド内部で設定されている属性です。



これで取得できたみたいです。それぞれのポリゴンアイランドのグローバル座標でのポイントの最大の位置と最小の位置を取り出しています。それぞれを3D Vectorに入れてやってもいいのですけど、後の処理の為にスカラーのまま配列に入れちゃいました。






で、この情報を元にポイントを並べてやるつもりなんですけど、並べる為のコンパウンドを持って帰るのを忘れたので、この先はまた今度やりませう。
コメント ( 0 )|Trackback ( )

Polygon Island

xsi |2011-05-20
なるほど、頭がいい。

Polygon Islands : Getting the Lowest Point Index Part 2 [Guillaume Laforge's Weblog]
Polygon Islands[Guillaume Laforge's Weblog]

この二つのblogのエントリはネタが連続しているのですけど、それに従ってツリーを組んでみました。もぅかんぜんにそのまんまなんで、コンパウンドの中身は非表示です。



Emptyなポリゴンメッシュに対して適用してあります。
まず、ICE Topoでまずシリンダーを複数マージして、一つのポリゴンメッシュオブジェクトにしてから、その下のPolygon Islandコンパウンドが上記blogを参考に組んだ部分となります。
そうすると、



各頂点がどのポリゴンアイランドに属するかという情報が得られた、というわけっすね。
頭いいなぁ。

さて、ここからこれを生かせるかどうか…
コメント ( 0 )|Trackback ( )

グリッド状に並べる

xsi |2011-05-18
グリッド状に並べるコンパウンドを書いていました。
グリッドがワールド座標に固定されてたら面白い見た目になるかな、って。

ドット表現


つまり、この動画のようなことなんだけど、オブジェクトのボリュームの内側にだけポイントを発生させています。
ただし、ポイントはワールド座標系に固定されるようにして、ドット絵のようになってくれないかな、て感じで。

このとき問題になるのがポイントをどのように発生させるかです。今回は単純に、内外を判定するオブジェクトのバウンディングボックス内で点(ベクトル)を発生させて、それがボリュームの内側にある場合だけポイントを発生させる、という方法をとっています。

この方法の場合、とびとびにボリューム判定するオブジェクトが配置されている場合で、そのオブジェクトを1つのグループにまとめて1つのPointCloud内で処理しようとしたとき、バウンディングボックスの中であるがボリュームの外であるという空間の方がはるかに広くなる可能性が高くなります。非常に無駄が多くなることが予想されます。



そこで、オブジェクト1つ1つにPointCloudを設定して制御するのと、複数オブジェクトをグループにまとめて1つのPointCloudで制御するのと、どちらがどれぐらい有利かな、と考えました。

シーンはこんな感じです。



プリミティブのオブジェクトを複数作り、それを1つのグループ(エクスプローラの一番下に見えるグループ)にまとめています。
このグループを利用したPointCloudがエクスプローラ上でハイドされているPointCloudです。

それとは別に、各プリミティブオブジェクトごとにPointCloudを設定しました。それが上図のエクスプローラ上で選択されているPointCloudです。

それぞれのPointCloudには下図のようなICE Treeが組まれています。この中の一番大きいサイズのコンパウンドが今回作っていたものです。そこに接続されている"Get Cone"の部分に、ボリュームの内外を判定するためのプリミティブオブジェクトだったりグループが入っています。



それで、ICE Treeの左下のスカラーノードの数字を2から0.3に変化させたときの秒数を計りました(カスタムパラメータを作り、すべてのPointCloudの該当する部分の値を変えられるようにしてあります)。



この状態からカスタムパラメータに数字を「0.3」と入れてエンターを押してから



この状態になるまでの秒数を手動で計っています。

ボリューム判定用プリミティブを一つのグループにまとめ、一つのPointCloudで制御したときの秒数は1分33秒程。
対して、各プリミティブオブジェクトにPointCloudを設定したときは、3.3秒。

もぅ、圧倒的に違いますな。
これは、横着せずに一つずつ設定するのがよさそうです。

まぁ、グループ内のポリゴンアイランドごとにバウンディングボックスを作ってやる事が出来ればいいんですけどね。そんなスキルはありません。
コメント ( 0 )|Trackback ( )

MacBook Proソフトウェアアップデート 1.4

mac |2011-05-18
ちょっと前に来ていたのだけど、ようやくそれを当てまして…。



Thunderboltデバイスってのはいつくるんだ?ってのはともかく、グラフィックの安定性が向上するのと外部ディスプレイの問題と3Dパフォーマンスが改善されるってのなら見逃せません。

とりあえず、Cinebench。



まぁ、そもそもMac上ではパフォーマンスが低いのでこんなもんでしょという感じですし(Windowsマシンでは40は軽く超えてくる、と思う)、外部ディスプレイの問題ってのも感じたことが無いので、メリットはよく分からないのが正直なところですけど、メンテナンスされているというのは気分が良いですな。
コメント ( 0 )|Trackback ( )

グリッド状に配置

xsi |2011-05-17
Emit from Positionコンパウンドをもとにして、ボリューム内にポイントを発生させるコンパウンドを作っておりました。



名前とかポートの精査は別として、とりあえず出来た結果が下。



グリッド状に発生させるのが目的のものです。
考え方はシンプルというかたぶん無駄が多くて、ボリュームのバウンディングボックスの形状でグリッド状に並ぶベクトルの配列を生成して、それらベクトルがボリュームの中にあるものだけを取り出し、Add Pointノードにぶち込む、という感じですな。

でもって、せっかくなのでリジッドボディかまして崩してみたり。

規則正しく並べる


規則正しく並べる2
コメント ( 0 )|Trackback ( )

Instance Shape

xsi |2011-05-16
ICEのノード、Instance Shapeについて。
そこにグループを指定した時、グループ内のオブジェクトがどのような順序でインスタンス化されているのか、です。



こんなICE Treeを用意しました。PointCloudに対して適用してあります。
ポイントのIDを1.5倍した値がポイントのX座標に入るようになっていますね。つまり、1.5おきにID順に並ぶ事になります。

そして、Instance Shapeに1から19までの数字の形になったオブジェクトが入ったグループが適用してあります。
1から19までのオブジェクトは、秩序のある名前を付けてあります。すなわち、Aグループ内では

text001_objA
text002_objA



text019_objA

という3桁で桁がそろえられた状態になっており、Bグループ内では

text1_objB
text2_objB



text19_objB

というように、数字部分の桁をそろえることなく書かれています。この数字がオブジェクトの形状と一致しています。

こうした時、エクスプローラ上ではこんな感じで表示されます。



そして、結果はこんなふうになります。上がA。下がB。オブジェクトの下の青枠内の数字はポイントのIDです。





Aは狙い通りで、ツリーの順番通りに並んでいますが、Bは、ちょっと「?」という結果ですね。

マニュアルを読むと、エクスプローラ上で、ソートの順序をNoneにした状態での並び順になっているのだそうです。



こうすると、エクスプローラではこうなります。



というわけで、エクスプローラでこの設定にした上で、Instance ShapeノードのIndexに割り当てられた数字は、グループ内の上から何番目のオブジェクトを指定するのか、という事を意味している事が確認できました。

いや、たぶんそうだろうとは思っていたのだけど、ソート順をNoneにしての順番って事は知らなかったものでね…(^^;
コメント ( 0 )|Trackback ( )

AfterEffectsにてコンポのスタートフレームの値を設定する

mac |2011-05-16
AfterEffectsに対して、AppleScriptからコンポジションのスタートフレームの値を設定するテスト。
AppleScript側で指定した値で、AE側の値を書き換えます。



しかし、AppleScriptからAEのJavaScriptに値を渡すことが出来なさそうなので、中間ファイルを作成し、それを介してやり取りすることにします。

まず、AppleScript。

-----------------------------------------------
set startTime to "01;15;15;10" --開始タイムコードを指定

set tempFile to ((path to desktop folder) as string) & "temp.dat"

open for access file tempFile with write permission
write startTime to file tempFile
close access file tempFile

set jsFile to ((path to desktop folder) as string) & "test.js"
tell application "Adobe After Effects CS5"
DoScriptFile file jsFile
end tell
-----------------------------------------------

でもって、デスクトップに保存してあるtest.jsは以下の通り。

//-----------------------------------------------
function setDisplayStartTime(tcValue){
var selectComp = app.project.selection;
if (selectComp.length == 1){
var frameRate= selectComp[0].frameRate;
var timeValue = currentFormatToTime(tcValue,frameRate);
selectComp[0].displayStartTime = timeValue;
}
}

var filePath = "Macintosh HD:Users:[user name]:Desktop:temp.dat"
var fileObj = new File(filePath);
flag = fileObj.open("r");
if (flag == true)
{
tcSetting = fileObj.read();
fileObj.close();
setDisplayStartTime(tcSetting);
}else{
alert("ファイルが開けませんでした");
}
//-----------------------------------------------

var filePath行の位置を、AppleScriptで指定したパスと同じにする必要があります。
ファイルの読み込みについては、AfterEffects CS4自動化作戦 [OpenSpace]を参考にしました(そのままだよ…)。
同様に、AE側でファイルを書き込んでAppleScript側でそれを読み込めばAEからAppleScriptへ値を渡せますね。

いまいちスマートじゃないけど、とりあえずこれで対処かなー
コメント ( 0 )|Trackback ( )

星を追う子ども

movie/anime |2011-05-15
『星を追う子ども』公式サイト

新海誠の最新作。えーと、先週から公開だったっけ。新宿バルト9にて見てきました。

物語はとてもまぁファンタジーかね。ヒロインの少女が暮らす世界が割と現代に繋がる日本的風景を描いており、それが丹念に美しく描かれている事から、異世界に現実味を持たせようとしているのでしょうか。どちらの世界も非常に美しく描かれており、新海誠の真骨頂といった所でしょう。

ただキャラクターデザインの印象や世界感、所々の絵の見せ方という部分に、どうしてもジブリ的というより宮崎駿的なものを感じてしまうのですね。これが得か損かというと、あまり得には思えない。なにせその印象の元となる存在が大きすぎる。

ちょっと物語に入り込みきれなかったもう一つの要因が、所々のセリフ回しかな。これは完全に趣味の問題だと思うのだけど、モノローグならOKなセリフも口に出されるとちょっと引いてしまうというか、そんな気分のものが散見されました。

お話全体としては結構面白かったし、手に汗握るとか心動かされる場面が結構あったしで、見て損したとは思わないし、むしろ見て良かったとは思います。けれども手放しで絶賛するほどには至る事は出来ませんでした。まぁそこに至る作品は極々稀ですからね。だから駄目ってものじゃないのは当然なんだけど、個人的に、見てて引っかかる部分の引っ掛かり具合が結構大きかったのが残念です。

とはいえ、ほしのこえから10年? かなり高いところに到達したと思うし、今後もまた登っていってくれる事を期待ができる内容だったと思います。

<追記>
2回目行ってきた。
中盤辺りまで気になるのは、やっぱりどうしても宮崎アニメとの類似性を感じてしまうところ。物語じゃないよ。
でも、それ以外の部分はついていけるようになった。2回目だけど楽しめたよ、ホントに。
</追記>
コメント ( 0 )|Trackback ( )

とりあえず、Photoshopで

mac |2011-05-14
とりあえず、PhotoshopでAppleScriptからJavaScriptに値を渡す方法。

test.jsファイルをデスクトップにおきます。
内容は


function newDocument(width, height){
app.preferences.rulerUnits = Units.PIXELS;
var myDoc = documents.add(width,height);
return myDoc.name;
}

newDocument( arguments[0], arguments[1]);


んで、AppleScriptで

set jsFile to (((path to desktop folder) as string) & "test.js")

tell application "Adobe Photoshop CS4"
do javascript file jsFile with arguments {128, 256}
end tell

と書いてやると、128ピクセル×256ピクセルの新規書類が開きます。
ついでにそのファイル名(名称未設定、とかね)が帰ってきます。

javascriptのスクリプトファイル側のargumentsに対してAppleScriptから値を渡せるんすね。ふむ。
コメント ( 0 )|Trackback ( )