2014年も終わります
ちなみにこの写真はダイヤモンド富士を撮ろうと目的地目指していたのだけど、家を出た時間が遅く、日の入り時刻に目的地に着くことができそうになかったので、移動途中で別のポイントに変更したものの目測が誤ってて、その場所では太陽が富士山をかすめて沈んでいってしまいましたとさ、という図。ついでに雲もかかって霞んでおりました。今年最後の富士山写真でございました。
まぁそれはいいのだけど、ともあれ、今年ももうすぐ終わるわけです。紅白見ながらこれ書いておりますが、相変わらず進歩のない一年でございました。来年は色々と進歩したいものでございます。
Finderのサイドバーの表示

で、なんで困っていたのかというと、サイドバーを出すためのメニューがグレーアウトしちゃっているからでございます。だからサイドバーを出すことが出来なかった。

現状、僕の利用範囲でこの問題が起こっているのはMacBook Proだけなのですけど、そいつでは以下の症状があったために、その症状の一環なのかなぁと思っておりました。その症状というのは、普通に使っているとあるタイミングで全てのウインドウがフォルダを新規ウインドウで開く状態になる、という物です。これには、Finderの初期設定を削除してFinderの再起動で対処しています(といっても2回ぐらいしか経験していませんけど)。
しかして、ゴミ箱のサイドバーの問題は、ツールバーを表示していなかったのが原因でした。サイドバーはツールバーの付属物であるようです。ですから、ツールバーを表示していないとサイドバーを表示するためのメニューはアクティブにならないのでした(上図で、ツールバーを表示コマンドはアクティブになっている状態を確認できると思います)。ツールバーが表示されいない、という事を思いつきもしませんでしたな、そういえば(^^;
というわけで、ツールバーを表示してやるコマンドを実行したら、無事、サイドバーが表示されるようになりましたというお話しでございます。

Stuffit Expaner 16 がMac App Storeで配信された
かつて定番の地位を占めていたStuffit Expander。日本だとact2が代理店をしているみたいですけど販売されているバージョンは2011です。これはSmith Microの製品で、そこのサイトを見ると2011ってのはバージョン15であることが分かります。ってことは早晩、日本でもローカライズされたバージョン16が期待できましょうか?
っていうか、2011ってバージョンは2010年末ごろに登場したそうで、で、Stuffit Deluxの16は今年の10月に出たのかな。ずいぶんと長い間アップデートをしてこなかったんすなぁ。OS標準でzipが扱えるようになって、相対的にこの手のツールの価値が下がってしまっているというのが原因でしょうけど、何気にsitファイルやsitxファイルがけっこうHDD内にあったりするので、これに消えられるのは非常に困ったりします。がんばって欲しいものです。
なお、現在act2ではDeluxの2011が税込み5132円だそうです。16は$49.99ということなので、ローカライズされて日本での販売が開始されたら値上げですかなぁ…。
ちなみに僕は2009ってバージョンのライセンスを持っているようで、ここからアップグレードが出来るような買うかもしれません。
昔、便利に使っていた機能があるんですよね。まぁそれはちょっと気の利いたシェルスクリプトを書ければ(アーカイブをsitxには出来ないけど)作れちゃう程度の機能ではありますけど、そのような苦労をせずに使えるのはありがたいことではあります。
余談だけど、Sumith MicroはManga StudioとかAnime Studioとか、ちょっと興味深い名前のツールを扱っています。
前者は
Manga Studio 5 and CLIP STUDIO PAINT PRO are the same applicationsって書いてるんで、まぁそぉいうことなんでしょう。後者の素性はどんなもんなんざんしょ。
そいやPoserもここでしたな。これも7あたりのライセンスを持っているけど、今、いるかといえば微妙っす(^^;
MODOのカメラプロジェクション
ひまわり8号による初画像 [気象庁]
11000ピクセル四方という画像が配布されております。
ひまわり8号は東経約140度の赤道上空35800kmに浮かんでいるそうです。地球の半径は6371km。地球をいっぱいにとらえた時のカメラの画角を考えます。下図におけるθは前述の値を入れると8.6893度となります。

結果、水平画角はその2倍の17.3785度と推察されます。
ところで、気象庁で配布されている画像は地球の範囲より若干広くトリミングされた画像なので、これを地球ピッタリにトリミングし直します。
さて、MODOで球にこの画像をカメラプロジェクションでマッピングしてみませう。球の半径を63.71m、カメラ位置をzに( 358 + 63.71 )mに置いてみます。そいでカメラの画角ですけど、視野の値に17.3785°という値をぶち込んでおきます。さらに、フィルム幅と高さを同じ値にしておきます(例えば両方とも36mmとか)。

そいでもって、カメラプロジェクションの設定です。先ほど設定したカメラからの投影を球に対して行うわけですね。
テクスチャロケータのプロジェクションタイプを「フロントプロジェクション」にプロジェクションカメラを先ほど設定したカメラに設定します。

設定としては以上。ざっとみた感じは、よさげです。

この状態で、テクスチャを球のデフォルトのUVにベイクしてみます。で、それをこのへん [NASA] で配布されている画像と並べてみます。ちなみにNASAの画像は0度が中心に来るような画像なので、140度分スクロールしています。

だいたいいいようですね。
ミソとしては(ゆがませずに貼るなら)フィルムの幅と高さの比率を適用する画像に合わせるということすかね。勉強になりました。

これの背景はこちら。これも背景にたいしてフロントプロジェクションの上、プロジェクションカメラを設定している。
一部のアプリのアイコンがDock上で表示されない

画面左側に表示してて縦長なので、4分割して横に並べてあります。
見ての通り、一部のアプリがいる部分にアイコンがありません。
ちなみこれはデュアルディスプレイの環境で、メインモニタにしているMacBook Proの外付けモニタ側に置かれているDockの状況となります。それじゃってんで、Dockを右側に持っていくと、それはMacBook Proのモニタに表示されるようになるわけで、そうすると正常に表示されました。MacBook ProはRetinaなので、使用しているアイコンの情報が外部ディスプレイとは違っているのだと思われます。で、外付け用のアイコン情報が壊れた、と。
つーわけで、Dock用のアイコンのキャッシュを削除してやればいいんだろうなと思いつくところまではいいのですが、具体的にどうすべきかはググりました。
Clear Mac OS X's icon cache.
たぶん上記ページにある3行のコマンドを実行してやった後に killall Dock を実行してやればいいって事なのだろうと思います。それを実行して僕のところは解消しました(ただし、2行目を実行したところそんなものはないと怒られました)。rmコマンドを管理者権限で実行するものなので自己責任でやってくださいということで、こちらにそのコマンドを引用することはやめときます(^^;
まぁそんなわけで、なんか知らんけど、ちょっとマシンの調子が悪くなって(印象としてメッセージが何か悪さをしていたような…)、その後こんな状態になってしまいましたけど何とか改善したようです、というお話でございました。
XYZファイルをPointCloudに、再び
Softimageにてxyzファイルを読み込むにあたり、それが250万行とかある場合に、ICEのString to Arrayノードに座標をぶち込んで、ってのは無理があるようでした。
ということで、Scriptからパーティクルを発生させる方法を考えるわけですけど、例えばMayaなら座標の配列をコマンドに渡してやればパーティクルが作成されるわけですが、それに相当するものを見つけられていません。まぁ、Mayaでその方法を試したら、やっぱり処理が帰ってこなかったんですけどね。たぶん別のやり方があるのだとは思うけど。というわけで、以下の方法を試してみました。
スクリプトでPointCloudのプリミティブオブジェクトを出すことは出来ました。つまり、グリッドとかキューブとか球とかのプリセットから生成されるPointCloudは作成可能という事です。ということで、グリッドのPointCloudを作成し、必要なポイント数に近い数字になるように分割数を設定してやって、で、パーティクルポイントの位置をxyzファイルから読み込んだ位置情報に設定してやる、という手順を踏んでみることにしました。
import math from win32com.client import constants as c app = Application oRoot = app.ActiveSceneRoot xyzFile = "xyz file path" #eg: "c:\file.xyz" def readXYZFile(): f = open(xyzFile, 'r') str = f.read() f.close() lines = str.split('\n') posList = [[],[],[]] improvisedValueArray = [] i = 0 for line in lines: temp = line.split(' ') try: posList[0].append(float(temp[0])) posList[1].append(float(temp[1])) posList[2].append(-float(temp[2])) improvisedValueArray.append(True) except: LogMessage("NOT Params" ) i += 1 return posList, improvisedValueArray posList, improvisedValueArray = readXYZFile() pntCnt = len(posList[0]) uvCnt = math.ceil(math.sqrt( pntCnt )) subCnt = uvCnt**2 - pntCnt LogMessage("U V:" + str(uvCnt)) posList[0] = posList[0] + [0.0]*int(subCnt) posList[1] = posList[1] + [0.0]*int(subCnt) posList[2] = posList[2] + [0.0]*int(subCnt) improvisedValueArray = improvisedValueArray + [False]*int(subCnt) oObj = oRoot.AddGeometry("Grid","PointCloud","") oParams = oObj.Parameters oParams["subdivu"].Value = oParams["subdivv"].Value = uvCnt - 1 app.FreezeObj(oObj) oPnts = oObj.ActivePrimitive.Geometry.Points oPnts.PositionArray = posList attr = oObj.GetActivePrimitive3().AddICEAttribute( "improvisedValue", c.siICENodeDataBool, c.siICENodeStructureSingle, c.siICENodeContextComponent0D ); attr.DataArray = improvisedValueArray
グリッドから生成してるから、必要数よりも多くのパーティクルができ上がっており、そこで、improvisedValue っていうICEアトリビュートを設定して、必要のないパーティクルにはFalseを、それ以外はTrueの値を持つようにお尻で設定しています。で、ICE上でその値をみて、Falseの物は削除する、というようにしてやりました。

上図は以前挑戦した時にいつまでたっても読み込みが完了しなかったデータでの結果なんですけど、1分もかからずに読み込みが終了し、上のICE Treeの設定もさくさくできました(動作も軽かった)。xyzファイルの読み込みではないけど、この方法で可能かどうか、適当に1000万個の座標を与えてみたところ、1、2分で結果が返ってきたし、割と現実的な物が出来たかもしれないとか思っているところです。
とか、なんかSoftimage使いの方々がたまにみてくださっているようなので、たまにはSIの話題もといったところでございました。
Softimage感謝祭、楽しかったです。
YosemiteにMayaをインストール

Maya 2015での事例ですけど、こんなページが公開されました。
RegisterPkg Error when installing Maya 2015 on Mac OS X [Autodesk Knowledge Network]
エラーが出る原因の大本、ZipImportErrorって部分は同じで、ここに書いてある通りコンソールを起動させるボタンを押して行けばインストールが無事に終わるというところも同じです。ただ、エラーが出るために、果たして正しくインストールされたものなのかという不安が残るわけですね。
ちなみに、Maya 2015 Ext1 SP5 をインストールする時に上記ページにあるようなエラーは出ずに普通にインストールは完了します。
さて、Maya 2014は正しくインストールがされているのでしょうか?
Mayaを使い込んでいない私に検証する手段はなく、使い込んでいる人に検証を頼むにはあまりに忍びないので真相は闇の中です。
うっかりCentOSが正常起動しなくなった話
結論から言えば、原因はParallels Toolsのバージョンでした。一端それをアンインストールして、その後最新版をインストールをするという手順を踏むことで復活します。
ただ、アンインストールするために操作可能な状態に持っていかねばならず、Linux素人な私は四苦八苦した次第です。
起動時にカーネルオプションを指定、変更するには [Vine Linux]
こちらを参考に、ランレベル3に変更し、コンソールからログインできる状態で起動します。そうするとコンソールからのログイン、操作が可能となりました。この状態でParallels Toolsをアンインストールします。ParallelsのメニューからParallels Toolsを再インストールするコマンドを実行し(処理→Parallels Toolsの再インストール)、そのままだと単に/dev/cdromか/dev/cdrom1に接続されただけなので、それを適当なところにマウントします。suして
mount -o exec /dev/cdrom /media/cdrom
とでもしたなら、/media/cdromの中のinstallを実行します。これでremoveを選べるのでアンインストールを行えます。/media/cdromが存在しないとエラーになるかもなので、その時はあらかじめcdromディレクトリを作成しておく。
一端アンインストールしたら、再起動後、普通に起動してきてくれました。ということことで、あらためてParallels Toolsをインストールを行います。これにて解決。
ちなみに、これ、SIを動かすために入れてみた環境なんですけど、Softimage先生、
/usr/Softimage/Softimage_2015_SP1/Application/bin/XSI.bin: symbol lookup error: /usr/lib64/libXext.so.6: undefined symbol: _XGetRequest
とかおっしゃって起動しません。解決方法、分かりません。
ちなみに、maya先生は2014は普通に起動してくださいます(動作がちょっと変なような気がします)。2015は起動途中でクラッシュします。
まぁ動作保証されているLinux環境がCentOSの場合は6.2なわけで、仕方ないってことなんすかね?
そういえばインターステラーを観に行ったんだった
IMAXのフィルムは(ネットをあさると)ネガの段階で15K、ポジにして8Kとか言われているそうで、だから全然足りないと言えるわけですが、一方で、VFXをばりばりに使用したこの映画は、全尺デジタイズして編集後、またフィルムに書き戻してんじゃねぇの?って思ったりするんです。そうすっと、8Kなんてサイズのデジタルデータを取り扱っているとも思えず、まぁそれでも2Kじゃ全然足りなさそうだけど、とかなんとか思ったりちょっとモニョっとしつつ映画鑑賞をはじめました。
まぁ楽しかったので別にいいです。
ということで、成田に行ったのでせっかくなのでこの劇場から徒歩15分程度の所にある成田山に行ってきたのです。
といっても新勝寺境内を歩くというわけではなく、成田山公園の池の周りを散策しました。紅葉真っ盛り。
午前中は晴れていたのだけど、ついた頃には雲に覆われてしまったのは残念な限り。でも、やはり紅葉はこーいうところで観るのがいいなぁと再確認しました(そんな樹木が選択されて植えられているんでとてもあざやか)。
けっこう人出も多く、そんな人々がフレームに入らない(もしくはみんな後ろ姿とかな)シャッターチャンスをねらうために、自然と歩みは遅くなります。
ということで、1時間弱の散策でしたけど、けっこう紅葉を満喫できましたですよ。
MeshLabは偉いなぁ、と
経度,緯度,高度
の3つの要素が1行に書かれ、それが延々と続いていくテキストファイルだったりします。主に座標を記述するために使われている印象でしょうか。数百万行とかそんなファイルだったりします。これが数万、数十万程度なら、SoftimageのICEならStringToArrayノードに
経度,高度,緯度,経度,高度,緯度,経度,高度,緯度...
と連続した形に変形したテキストをぶち込んでやればいいんですけど、数百万行分となるとどうもSIさんはギブアップしちゃうみたいです(ていうか、いつまで待っても(一晩待っても)帰ってこない)。
そこでMeshLabです。試しに200万行のを読み込んでみたら、10秒程度待ったらもう点群が表示されてきましたよ。
おそらく、SIでの僕の実装の仕方がクソだったって事もあるんでしょうが、やはりこのツールは膨大なバーテックスに対する対応が素晴らしいなぁと思った次第です。
ちなみに、こいつ。手順を踏めばその読み込んだ点群に面を貼る事が出来ます。これもまた素晴らしい機能でございますな。
感謝でございます。