lunar0 log

(転載禁止/許可したものはそれとわかるように書きます)

IoTを作った

IoTでビッグデータディープラーニングTシャツ,略して IoT を作ったので,買わなくていいですよ. 届いたらまたこのあたりに写真を貼ります.

Linkis をスキップする

たまにタイムラインで Linkis を踏む人がいるので Linkis をスキップするスクリプトを書いた.

iframe の要素を取ってきて(どうやらログ取り用と本体用があるらしい),idを見てそれっぽいものにアクセスするように設定. そのうち対策されそうだし,いつまで持つかはよくわからないが,気休めということで. とりあえず linkis を呪っておく.

// ==UserScript==
// @name         Linkis Skipper
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Skip Linkis.com cushon Page
// @author       You
// @match        *://linkis.com/*
// @grant        none
// ==/UserScript==

// License: Public Domain

(function() {
    'use strict';
    var iframes  = document.getElementsByTagName("iframe");
    var orig_URL;
    Array.prototype.forEach.call(iframes, function(element){
        if(element.id.match(".*source.*")){
            orig_URL = element.src;
        }
    });
    if (orig_URL !== undefined) {
        window.location.href = orig_URL;
    }
})();

書体雑感

最近使った書体を,ウエイトを揃えてベタ組みで4つほど並べてみた.このなかでは,縦組みでは本明朝(新がな)が一番好みに思える.書体は本文の内容なども考えて選ぶべきもので,どれが好みで,また好みでないというのは,実際には比較的どうでもいい部類に入るかもしれない.

f:id:lunar0:20170117025827p:plain


さて,本明朝には Book というウエイトが設定されている.概ね L と M の中間のウエイトとのことだが,どうもかなだけでなくて漢字の形も随分違うようだったので,重ねてみた.単なる L と M の補間ではなく,例に出した「飾」の偏を見ても,各部の重心や向きがかなり調整されているのが見てとれる.

f:id:lunar0:20170117025839p:plain


何の情報もない組見本で考えたほうが幸せな場面もあるかもしれない.便宜上番号をふったが,本当は冊子の形にして,ページ番号と書体名の対照表でもどこかに置いておけば済む話である.

f:id:lunar0:20170117032220p:plain

Unity で DDS を読む

概要

Unity で画像をランタイムに読み込みたいとき,速度を重視するならば DDS 形式が便利.Mac では変換に使えるソフトが少ないが,圧縮率を試行錯誤する必要がなければ crunch-osx が便利.

追記: fnord software がDDSを読み書きできるオープンソースの Photoshop プラグインを公開している.ありがとう fnord software 😊😊😊🙏🙏🙏

経緯

問題

Unity に100枚くらいのスカイボックス(=600枚の4K×4K画像)を読み込ませたらデータが壊れた.10枚くらいのときは動いていたのでバグなのだろうが,泣いていてもしょうがないのでワークアラウンドを考える.

方法1: WWW.LoadImageIntoTexture()

Unity - Scripting API: WWW.LoadImageIntoTexture

利点
  • 簡単
  • JPG, PNGが使える
  • テクスチャをあらかじめ DDS に変換しておく手間がない
欠点
  • 遅い(小さな画像では気にならない)

方法2: Texture2D.LoadRawTextureData

Unity - Scripting API: Texture2D.LoadRawTextureData

利点
  • 読み込みが圧倒的に速い
欠点
  • 使い慣れたファイル形式が使えない
  • DDSに変換するのが遅い

結果

方法1を試したらテクスチャのロード時間が体感的に長かったので,方法2を使うことにした.面倒なので測定はしていないが,体感的に問題にならなさそうだったらわざわざ DDS に変換する必要はないだろうと思われる.画像を DDS に変換するにはそこそこ時間がかかる.1枚30秒〜1分くらい? 少なくとも Unity が JPEG を読み込むよりも遅い.

DDS を読み込む具体的な方法は Can you load dds textures during runtime? - Unity Answers を参照のこと.

注意点

そのまま Unity に読み込むとテクスチャが上下反転されるので, crunch-yflip オプションを使う.たぶん OpenGL が左下原点なのと関係があるのだろう.

$ crunch -dxt1 -fileformat dds -mipmode none -yflip -file inputimage.tga

FRENZ 2012

Scripted Fireworks from lunar0x on Vimeo.

 

今更書くのもなんだけれども,古いブログに書いていた記事がブログ削除とともにインターネッポヨの海に消滅したので,思い出しながら書いておきます.

これ何

線香花火のシミュレータです.以下のものがシミュレートされています.

  • パーティクルの空気抵抗
  • レンズブラー
  • 破裂した後に再び破裂するパーティクル

C++製です.たしか,次のような構成だったと思います.

  • 配列は OpenCV を覚えたかったという理由で cv::Mat を使用
  • 書き出しは OpenEXR のライブラリを使用

京都の友人の家に遊びにいった帰り,JRに揺られながらコードを眺めて唸っていたのが思い出される.冷房の効いた電車の窓から見た草の波が美しくてなんとなく眺めていたのだった.

あの頃はひと夏をこれに賭けるくらいの情熱で打ち込んでおり,今これを書けといわれたら普通に Blender とかのスクリプトを書いていたと思うし,なんなら既存のパーティクルシステムでこういうのあるよと探してきたかもしれない.

FRENZ 2016 2日目

FRENZ 2016 2日目夜の部に映像を出展しました.

 

Antenna from lunar0x on Vimeo.

 

制作環境

CINEMA 4D + Adobe After Effects + Adobe Photoshop (+ Frischluft Lenscare)

コメント

次からは言いたいことをメモにして持っていこうかと思ったけれども,よく考えたらきちんとしたことはこうして発表する場もあることだし,壇上ではあれくらいの感じでよかったのかもしれない.よくわかりませんが.たしか2012のときはメモを持っていったのだったか.

  • 唐突に始まり,静かな映像が少しずつ変質してゆき,唐突に終わるという構成のものを作りたかった.そのために,使用する素材はクレジットを入れる必要のないもの(有料素材 + パブリックドメイン素材)に限定し,ノイズは Logic のシンセで作るなどした.
  • テレビやバイラルメディアと壇上で言いかけてやや後悔した.発想の種としては1‰くらいあったのだけれども,それよりはミクロな人間行動の論文を日々眺めているところから出てきたような発想のほうが比重としては大きい.アンテナはあくまで設置した人間が電波の発信源に向けるものという感覚*1
  • 会場のプロジェクタが予想外に明るく綺麗だったので,これならもっとモノクロ部分を暗くして,最後の緑色をしっかり浮かせてもよかったなと後悔した.来年はそのへん含め,設備と視覚の限界に迫っていきたい.

技術的なこと

何人か質問をしてくださったが,特段高度なことはしていません.基本的には,全部教科書の入門セクションあたりにある通りです.

  • カラーコレクションは Lumetri にべったり依存している. Adobe 最高
  • ぼかしは Lenscare にべったり依存している. Frischluft 最高
  • フィルムっぽいグレインを加えようとして,重い割に効果が出なかったのでやめた.このあたりはもっと研究をして,要求されるレンダリングパワーの少ない手順を組んでおきたい.
  • シーン1は平面に貼りつけた絵を4レイヤーくらいに分けて動かしているだけ.よく見ると視点が動いているのにビルの屋上の形が変わらず平行移動しているのがわかると思う.
  • シーン2はそこそこ真面目にマットペイントをした.透過部分のあるオブジェクト(街灯とか)を全部切り抜いて,穴を適当に Photoshop で埋めるなどし.最後にC4Dでプロジェクションをする.
  • エレメント(魚の背骨みたいな部分)の少ないアンテナはきちんとモデリングをしたが,細い八木アンテナコスパの関係上完全にぶっさしモデリング.並べるとエレメントの配置の均一さが目立ってしまったので,ノイズデフォーマを入れて配置を少し乱しておいた.
  • 素材はパブリックドメインのものを借りてくることもあれば,有料素材を購入した部分もある.いずれにせよ,細かい粗を消す作業などは必要.できれば自分で撮りたかったが,そうそう外国に行ける身分でもないし,致し方ない.
  • アニメーションは全部手付けで,特段シミュレーションなどはしていない.時間のないときにぱっと使えるまでに習熟していなかったのが理由.
  • 緑色のものが侵食してくるようなイメージについて.緑色ということに意味はなくて,単に原色のなかでは緑色が一番明るく見えるというのが理由.

*1:壇上で高周波になるほど指向性がと言ってしまったのは厳密にはまちがいで,高周波の無指向性アンテナというのも普通に存在しています.最近は知らないけれども,携帯電話の基地局のアンテナとかそうじゃないですかね

TGS 1日目

概要

Tokyo Game Show 2016 に行ってきた.目当てのものは FOVE しかなかったので,ほぼそのために行ったような感じ.

行動

8時くらいに着くつもりでいたが,どうしても眠かったので9時くらいに着くように予定を変更して二度寝した.9時に着いたが,たいして列は長くなく,開場直後に入場できた.

VR体感ゾーンの待機列・ゲーム会社のブースは1-8ホール側であったこと,個別のVR機器そのものを見に来る来場者とは列が分かれていたこと,コスプレ来場者が列の少なくない部分を占めていたので見た目よりスムーズに入れたことが利点か.

FOVE

視線追跡を組み込んだヘッドセット.以下,ざっとした感想.

Pros
  • 視線追跡の精度は比較的よさそう.
  • 着け心地はまあまあ.
  • Unity で開発できるらしい.
  • 視線データのフレームレートが高い.120Hz というのは,低価格デバイスではそれなりに高い部類だろう.
Cons
  • ヘッドセットがずれるとキャリブレーションが壊れる(しょうがない)
  • VRヘッドセット一般の問題として,周辺視野が狭い(空間体験という点でどれくらいディスアドバンテージになるかは不明)
  • VRヘ(ry),人間の視覚からするとまだ分解能が低い.遠くの看板の文字などはたぶん読めない(とはいえよい製品も中々ない.Star VR は視野の広さで利点はあるが,分解能自体はたいして向上しない)
Others
  • ライセンスについて聞くのを忘れた.対抗馬(実際には かなりの高価格になるだろうが)である Star VR のアイトラッキングは中身が Tobii なので,どうせデータを蓄積するためのライセンスは高いんだろうなと思ってしまう*1が,FOVEはどうなのだろうか.心理学やマーケティングへの応用などをアピールしていたので,そのあたり追加料金なく使えると嬉しいけれども……
  • 視線データの精度・正確さは未知数.まあ Eye Tribe + 顎台は注視データの取得にはそこそこ使えるようだし,これも同等くらいのパフォーマンスはありそう.
  • ついでに Xenko 見てこればよかった.
  • 視線の生データのフィルタリングは,見た感じ開発者に任されている*2.まあ,とはいえ,知識のない開発者向けの簡単なスムージングやサッケードは恐らくさして困難な処理でもないし,多分そのうち標準で乗るのではと思われた.

東プレ

Realforce がフルカラーLEDで光るらしい.まあそれはどうでもいいとして(ゲーマーには重要なのかもしれないが),アナログ入力キーボードが面白かった.Page Up と Page Down キーをアナログ入力にして,強打で数十行を一度にスクロールするデモは,明日にでもうちの Realforce に欲しい感じがした.売れ行きがよければ英語配列版も考えるとのこと.

*1:Tobii の安いアイトラッカー Tobii EyeX はライセンスでデータの蓄積を禁止している

*2:デモは複数の開発者が作っており,フィルタリングの方式も違うように見えた