Pixar USDを試してみる

夏前あたりからそろそろ調べ始めると思いたって既に年末。だってビルドとかメンドクサイし、Visual Studioをそのためだけにインストールしたくないし。

てことで、ビルド済みのパッケージがダウンロードできるところを探して見つけたのが以下2つ。(もっとあると思うけど)

  1. USD at NVIDIA[developer.nvidia.com]
  2. Saturn: Pre-compiled binaries of Universal Scene Description[github.com]

NVIDIA版はMayaのプラグインがビルドされていないので、 今回試したのは2番目のほうです。NVIDIA版のほうがPython2一式と依存モジュールも含まれているので付属のツールusdview等を実行するだけならそっちのほうが簡単だと思います。

続きを読む “Pixar USDを試してみる”

Unity:Enable Experimental Operators/Blocks

VisualEffectGraph-Samplesに入っている、パーティクルを円状に配置するブロック「 Position : Sequential (Circle) 」の作成の仕方が分からず半日さまよってしまいました。

プレファレンスから有効にすれば良いだけのようで、あっさり解決。

VFXGraph自体Previewなのにさらに「Experimental」があるとは思いもつきませんでした。

ついでに

VisualEffectGraph-Samplesのバージョンは「 5.8.2-preview rev1 – 2019-03-19 」を使用しましたが、Unity2019.2とHDRP6.9.1/VFXGraph6.9.1の組み合わせでは「Assets/Samples/VoxelizedTerrain/VoxelizedTerrainController.cs」がエラーを起こします。

using UnityEngine.VFX.Utils; 

を、

 using UnityEngine.Experimental.VFX.Utility; 

とすることで、エラーはなくなります。Releaseではなく、現在のMasterブランチであれば修正済みです。


npm unlinkでエラー

nodeのコマンドラインツールを作ろうと思ったら、Windows10でnpm unlinkが動かんっ。

PS Q:\development\npmcuidev> npm unlink
npm ERR! code EINVAL
npm ERR! EINVAL: invalid argument, read

npm ERR! A complete log of this run can be found in:

エラー出してるのは、「npm\node_modules\gentle-fs\lib\rm.js」でおそらくシンボリックリンクを削除するところ。

パッケージをexfatでフォーマットされたUSBのSSDドライブに作成したからなのか、NTFSフォーマットのローカルドライブにへ配置するとunlinkはちゃんと機能してひとまず解決。

ディスクのフォーマットが原因とは思えませんが、何だろ…


Three.js on Electron + Typescript

Three.jsを動かして見た。ついでに今回はTypescript、あといらんかったけどgulpでトランスパイルの実行。

ビルドタスク(タスクランナー)の事とか、今回は使ってませんがBrowserify(tsify)とかimportとかrequireとかmoduleだの、exportだの、、、何から理解していけばよいやらなかなかはかどりません。UnityとかFlashの開発の容易さを改めて思い知らされました。

ダウンロード: threejs_test2

npm install してnpm run build && start で実行できるハズ。

ところでElectronのダウンロードってやたら時間がかかる事がありますね。> node install.js から止まったまま動いてるのかどうかわからないのが不安なんですが、例えば

$ npm install electron@^1.6.15 --save-dev --loglevel verbose

とすると、詳細な進捗を出力してくれるので、ちょい安心できます。


p5.js on Electron

ActionScriptの代替としてElectronの勉強をと言いつつ、仕事が忙しくなり全く手を付けていませんでしたが、ちょっと再開。

なにせ「Electronではじめるアプリ開発[Amazon.co.jp]」の敷居が高い!第3章の「チャットアプリケーションを作ろう」からES6(ES2015)のJavascriptで書き始めて、「import?」さっきまでの「require」はどこいったの?からのReactの浅ーい説明と、Webアプリの開発経験が無いと読み進めるのは難しい内容です。

てなことで、横道にそれて(逃げて?)「Electron上でProcessingを動かしてみる」です。

正確にはそのJavascript実装版の「p5.js」を動かしてみた!です。

Processing-Javaよりかなり重い

 

いままで作ってきたProcessingのスケッチには追加のライブラリが必要なものばかりでしたので使用せず、p5js.orgのFlockingを移植してみました。移植と言っても、p5をインスタンスモードで動かす事とFlockとBoidをモジュール化したってだけです。

モジュール化と読込はnode.jsのrequireで実装しています。ES2016ならimportやclassが使えるので書きやすいんですが、トランスパイルを挟む事になりp5が動かない時に問題の切り分けが今は上手くできそうにないので後回しです。今回書いたのはNode IntegrationなJavascriptという事になります。

つまづいた所が何点か、

いきなりElectromパッケージのインストールができませんでした。セキュリティソフトの「ESET Endpoint Antivirus」が邪魔をしていたらしく一時的にオフにする事で「npm install」を通すことができました。

あと、指定サイズぴったりのコンテンツサイズを用意したかったのですが、

win = new BrowserWindow({"width":800,"height":600,"resizable": false});

とするだけではウィンドウタイトルやウィンドウの枠、いわゆるクロームも含めたサイズのウィンドウが作成されます。

win = new BrowserWindow({"width":800,"height":600,"resizable": false,"useContentSize": true});

とすることでコンテンツサイズが800×600のウィンドウを作ってくれるのですが、Windowsで実行する場合に出るメニューバーを消したい場合、

win = new BrowserWindow({"width":800,"height":600,"resizable": false,"useContentSize": true});
win.setMenu(null);

とするとメニューバーの高さ分隙間が出来てしまいました。これは以下のようにウィンドウを作る前にメニューを消すことで対処しました。

Menu.setApplicationMenu(null);
win = new BrowserWindow({"width":800,"height":600,"resizable": false,"useContentSize": true});

複数のウィンドウを持ったアプリの場合は問題が出るかもしれません。

今回の成果物~electron_test_p5

展開したフォルダへシェルで移動して、$ npm install で必要なパッケージのインストールし、$ npm run start で実行できます。と思います。

道のり長いなー。