2014-01-31 (金)
休み.
この日記はフィクションです.登場する人名・団体名・地名・職業などはぜんぶ架空のものです. なので実際のものとは何も関係がありません. それから,写真のように見える画像はCGもしくは念写によるものです.
休み.
眠い...
ビルの下のほうの階が停電する日でエレベータ動かなくなったりするので早めに帰る.
kmuroiとsango0とGazyuと新宿をうろつく.紀伊国屋とか.何か食べようとしたけど470円しか持っていなかった. 昨日の鍋代も払ってない気がする.
MMDと同じ物理演算を再現できなくて,昨日からbulletと格闘してたのだけど,bulletのバージョンの違いの可能性もあるのか.http://mikudan.blog120.fc2.com/blog-entry-309.html
追記:結局剛体の位置計算をミスってただけだった.MMDのPMDデータに含まれる物理演算のパラメータは基本的にbullet専用に出来てて,そのまま渡せばそれっぽく動くので細かい間違いに気づきにくい.
btGeneric6DofSpringConstraintもなんだか感覚どおりに動かないし,もう少しbulletいじってみるか...
ysaotomeの家で新年会.苦労した末にeldeshの召喚にも成功した.一部屋に8人いるとさすがに人が多い.
牡蠣鍋にしようという話をしたけど,みんな好き勝手に材料を買っていた.イカとか海老とかマグロとかウニとか.何年か前の反省を生かして,とりあえず全部鍋に入れるという過ちは犯さずにすんだ.
海老(と左上にさばかれたイカ)...
そういえば,前に寿司食べた時のお金をeldeshに払ってなかったなと思って,いくらだったかも覚えてないし代わりに鍋代を出したけど,寿司はこのときか.2年以上前だった.
打ち上げ的なやつ.@浜町
今日は昼から予定が入ってたので早目に出社する日.
明日休みとったけど何するか何も考えてないな...
クレジットカード再発行してから1ヶ月たったのでいい加減,色々支払い失敗してまずいことになるものが出てきそうなので確認作業.カードの番号が自動的に更新されてるサービスと,されてないサービスがあるのなんだろう.
カード会社から利用サービスへ番号変更の通知が行く仕組みはあるようだけど,実際更新されたのかどうか通知とか無いので念のため全部確認しないといけない.あと,今のカード番号の前半を表示するサービスとかもあって,今回は下数桁しか変わってないので更新されたか見た目で分からない...
寝坊した.
会社のラジオ体操にアイマスの中の人が来てたらしい.その時間いつもどおり寝てたので参加しそびれた. http://japan.cnet.com/entertainment/35042780/異様な感じだな...
https://github.com/binzume/mikumikudroid (oculusブランチにあります)
去年の9月末くらいにMikuMikuDroidを改造して遊んでたやつを公開しておく.oculusブランチに入ってますが,手元のリポジトリから必要なコミット移すのがめんどかったので,適当な感じです.あとでちゃんと整理するはず.
ジャイロと加速度センサ必須.Bluetoothキーボードか,USBゲームパッドみたいなものを繋がないと使えないです.
眠い.
存在はしていて放置していたリポジトリに,C85用に描いた図面を更新しておきました.
https://github.com/binzume/oculus7
本に載ってるやつを少しだけ修正.svgはInkscapeとかで開くと良いです.ななかInsidePress vol.4 コミケで買い逃した方もここで買えるらしいです.
hogehoge/trunk/hoge/src となっているとき,git svnでhogeの階層を消すにはどうするんだろ?
git svn clone --no-metadata -t tags -b branches -T trunk http://svn.sourceforge.jp/svnroot/mikumikudroid/ git filter-branch --subdirectory-filter MikuMikuDroid -- --all
何日か前に見つけたのだけど,16GBのSO-DIMMは存在するっぽい. http://www.intelligentmemory.com/dram-modules/8Gbのチップを16個載せてるのか.まだSamplingと書いてあるので流通してないようだけど,これ使えるならX240買っても良いかもなあ.
それにしても,「16GB SO-DIMM」で検索すると8GB*2枚セットがたくさん出てきて,それじゃないよ感が高い.
寝る前にニコニコPlayer(仮)を少しいじってアップデートしておく.マイリストの公開・非公開の設定を編集できるようになりました.あとは細かい修正いくつか.
寝る日.
注文してたNexus用ワイヤレス充電器が届いた.
裏面のゴムが平らな場所さえあれば良く張り付くので,ベッドのフレームに貼り付けて付けると寝る前に端末置く場所に悩まなくて良いし,良い感じになった.そのうち剥がれて落ちそうだけど様子見.
MMDのIKのweightの使い方がわからないな.いくつか実装みたけど,みんな微妙に違う...少なくとも,MikuMikuDroidは角度に乗算しているけど,これだと発散してしまう場合があるので,MikuMikuStudioやMMD.jsみたいに角度を制限するものなのかな.よくわからないけど.とりあえずPmdEditorのreadme.txtに合わせるか.MMDでどう実装されてるか気になるけど逆アセンブルするのは最後の手段にしとこう.
MikuMikuDroidベースにしてアプリ作ろうと思ってるけど,テクスチャ足りないと読み込めないのと,物理演算じゃない剛体同士を結ぶジョイントがあると表示が大変なことになるのも直した方がよさげだな.MMDはわりとなんでも表示してくれる.
twemproxy経由でRedisを使うとき,msetをサポートしてないのは,複数キーに分散した操作をatomicにできないからだと思ってたけど,delが複数のキーを扱えて,なんでだろうと思った.
洗濯したり掃除したり本屋行ったりニコニコ動画のコメントレンダラをOpenGLで書いたりする日.コメントの移動をCPU側に書いてしまったけど,頂点に速度情報持たせて頂点シェーダでやるべきかも.
Android 4.4になってから,Adreno Profilerが使えたり使えなかったりするのだけど,あまり話題になってないし,僕だけなのかなあ.
色々調べながらMMD勉強する.けど初音ミク踊らせたりとかは,まったくしてないです.バイナリエディタでPMD見たり,色々なMMD互換ライブラリのコード読んだり,GLSLのシェーダいじったりしている.
というか時代はPMXなのか.ボーンの回転制限もちゃんとデータに入っているようだ.他にもたくさん属性増えてる.ただ,読めるライブラリの実装少ない(?)
MMDのJava実装
MikuMikuDroid http://sourceforge.jp/projects/mikumikudroid/
BSDライセンス,物理演算,MMD付属のデータ必要,Android専用
MikuMikuStudio http://sourceforge.jp/projects/mikumikustudio/
BSDライセンス,物理演算,jMonkeyEngine必要
NyMmd https://code.google.com/p/nymmd/
MITライセンス,物理演算なし
このあたりを中心に読んだ.
あとJavaじゃないけど,MMD.jsも面白い.
Androidで動かしたかったので,Javaでの実装を中心に見てたけど,中身いじるならMikuMikuDroidが軽量で扱いやすいな.ライブラリとして切り出した版が欲しいです.
そして このとき IKが怪しい動きするなと思ってたのですが,ソースの文字コードが違って「あし」の文字が化けていたというのに気づいた.まさかIKの処理に文字列比較が必要になるとは思ってなかったので気にもしていなかった.
あと,シェーダ読んでて気づいたけどspecularのベクトルが逆な気がするな.適当にマイナス付けたら反射光も正しくなった.ほとんどのモデルはspecular成分無いっぽいのであまり関係ないのかもだけど.
MMDのモデル,改変したり服作ったり色々やってる人多そうだし,githubみたいなので管理すれば良いと思うのだけど,そういうのマッチしない文化なんだろうか.
お腹の調子が悪い.
IntelliJ IDEA 13からデフォルトでsbtプラグイン使えるみたいなので,試してみたり.
とりあえず何もせずとも動いたけど,処理中の表示が何やってるかわからなくて残念だな.でかいプロジェクトだと数分待たされる処理よくあるけど,処理中のメッセージが見えないと不安になる.40個くらいsbtのタスクが並列に走ってるけど,どれが何やってるのか分からない.あとマルチモジュールプロジェクトで,IDE上の依存関係何かおかしい気がするようなしないような...
バックグラウンドタスクを見てみるとこんな感じに「Executing SBT Action」が38個並んでいる.
プロジェクトの打ち上げ的な飲み会.寿司食べた.
なんだか眠いので夕方まで寝る.
Androidで今までSurfaceViewを使ってた箇所をSurfaceTextureに置き換える必要があったのだけど,微妙にわかりにくいというか,使い方すぐ忘れてしまう.
SurfaceTextureViewがSurfaceViewを継承してて,SurfaceTextureはSurfaceを継承してないとか,GLSurfaceViewはあってもGLSurfaceTextureViewは無いので自分で実装しないといけないあたりが混乱を呼んでる気がする.
あとは,android.view.GLES20Canvasあるけど,publicじゃないしどうやってインスタンス取得できるんだっけとか半年に1回くらい同じとこで迷ってるけど,OpenGLテクスチャからSurfaceTexture作ってそれを元にSurfaceを作ってCanvas取得すれば良い.
以前は,OpenGLで文字を描画したいときは一度Bitmapに書き込んでからテクスチャに書き込む必要がありましたが,Canvasとして扱えるのでかなり楽です.そして多分こっちのほうが高速.
というわけで,OpenGL使ってニコニコ動画のコメントを60fpsでレンダリングするのを試そうとしてたのだけど,気づいたらこんなの作ってた.
コメントはまだダミーのデータ.
SurfaceTextureから作ったCanvasに書き込むと,何か色が変なのだけどどこか間違ってるのかな(→追記:多分コメントデータ作るところのバグ.SurfaceTexture無罪).あとピクセルフォーマットを指定する方法がわからなくて透過できないのだけど,どうしたものか.とりあえずシェーダで特定の色を透過させる.
普通の量のコメントで60fps出るか分からないけど,がんばればたぶんいけそう.そのうちやろう.
Oculusもどきで遊ぼうと思ったのだけど,気づいたらMMDのモデルデータ作ってたりする日.そもそもモデリングの能力が足りないので作り方覚えただけ.
Metasequoia,4 にしたら急に見た目変わったな...再度ライセンス登録しないと使えなさそうなので一旦3.1.5に戻す.
しました.自分用に実装して使ってた機能もいくつか入れました.ちゃんと動かすためにはKitKat推奨.
マイリストのソートは本来はサーバ側で記憶してくれるのだけど,今はアプリの設定で持っている.マイリストの設定変更周りが作りかけなので,そっちができたらやろう.
Android 1.6でも動くように実装するために,Build.VERSION.SDK_INTでの分岐が大量にあってつらい.このアプリ,Android 2.2より古いFlashが動かない端末用に作ったものなので,1.6サポートを続けてたけど,Froyo未満の端末は2%くらいだし,そろそろ諦めて良いかもしれない...