Ruby
RawSocketを使ったRubyのサンプルその1。そのうち解説がでるはず最初のコード # -*- encoding: utf-8 -*- require 'socket.rb' ETH_P_ALL = 0x300 def mac_to_s(frame, index) header = frame[index, 6].unpack('C*'); return sprintf('%02X:%02X:%02X:%02X…
現在11ページできている(1日で作ったものだが...)
古いプログラムなので、もう少し手入れをしたいけど、とりあえず修正版公開します。Ruby 1.9あたり以降なRubyが入っているLinuxで多分動くよ!Raspberry Piで動作確認済み。root権限で動かしてね!使用例 ruby modoki.rb google.com綺麗になったらgithubに上…
Ruby 1.9以降で動かない状態だったので少しだけ動くようにした。TCPパケットが来ると落ちるけど。あと使い方とか書いてないのでREADMEを書きたい。でもRaspberry Pi上での作業は大変だった。Raspberry Piというよりnanoに苦戦した気がする。主に保存と終了が…
シェーダを中心に更新しました https://github.com/d-kami/MMD-on-Ruby
もうこれでいいんじゃないかと?
上の画像だとちょっと明るい気がしてのでシェーダ弄って調整。というか結構おかしかった。手抜きよくない。物理演算無理
コメントでアンチエイリアスの方法教えてもらったので早速、適用。上が従来の描画、下がアンチエイリアス込の描画
なんかアンチエイリアスとかの設定がOpenGLにあるのか。それとも自分で何かするのか。シェーダでなんとかなったりしないのか?
MMD on Rubyちょっと弄っている。物理演算入れたいけど、私の実力とマシンパワー共に駄目そう。ruby-odeというものがあるが...
MMD on Rubyの動画アップロードしました!
IKのバグがあったのを修正したので、それにともなって紹介ページを更新した http://d-kami.net/mmd.html
移植してどうするという気もするがやってみようか?
http://d-kami.net/ を更新しました。MMD on Rubyのモーションのバグが取れていると思います。膝が逆に向くと言うバグがありましたが、消えてるはずです...
この画像、よく見るまでもなく、足が衣装を貫通してる。他のところにも突っ込みどころがある。これを解決するには物理演算を使わないといけないような気がするが、すでに速度的に限界に来てるので、これ以上計算させるのはつらい気がする。Ruby以外でやるし…
github上のMMD on Rubyを更新しました。d-kami.netに上げたバージョンと同じで、MMDにデフォルトで入ってるモーションだったら多分動くと思われる物です。まぁ、github上に上がってるモーションが、正常に動くものだと思われます。動かないモーションの方が…
IKを入れた結果MMD on Rubyが更に重くなり、古いマシンではめちゃくちゃ遅くなった。なんてこった。Ivy BridgeのCore i5のマシンでもアニメーションでかなり時間を取られてるので(30FPSでてない)、快適に見るにはCore i7が必要か?
http://d-kami.net/にてMMD on Ruby未完成版を公開しました。頑張って完成させないと!
体調が悪い中、うまくいってない原因が閃いてしまったので、やらざるを得なくなった。IKに失敗してた理由はクォータニオンのかける順番が間違っていたことだった。まぁ、動いてくれて良かった。あとはシェーダの関係で一度消してしまった表情の変化を取り戻…
NArrayのおかげでだいぶ速くなり、家のマシンで秒間30フレームがいけるようになった。だが、まだIKを実装してないのでぎこちない動きになっている。IKだ!IK!
コメントにてNArrayというものを教わった。Windowsマシンでさっそく gem install narrayするがDEVELOPMENT KITが無いと言われてしょぼんとしてたら救世主を発見し、Devkitのフォルダで ruby dk.rb init ruby dk.rb installをし再びgem installをしたら成功し…
MMD on RubyにNArrayを導入したところ、かなりの高速化に成功した。2台のマシンで1フレームあたりの実行時間を計測したところ、片方は0.100〜0.110秒かかってたのが、0.030秒〜0.060秒まで高速化した。もう片方のマシンでは0.050〜0,060秒前後かかってたのが…
ベジェ曲線によるアニメーション補完が完了した。試行錯誤により、ソースコードが汚くなったのであとで綺麗にしておかなくては。いろいろ失敗したおかげで、ありえない動きがあったり、もう違う生物になったりしたけど、なんとか補間は終了した。次はIKだ!…
MMD on Rubyの1フレームあたりにかかる時間が結構ヤバい。それはアニメーションの計算方法がまずいのかと思ってたが、そこは全体の2、3割程度しか時間を使ってなかった。なんと原因は配列へのアクセスだった。37062個の要素を持つ配列2個と49416個の要素を持…
次はアニメーション補間を行う。ベジェ曲線の出番がやってまいりました。きっと悲惨な絵を見ることになるのだろう。うまくいくことを祈る。というかまだやってないのか!って状態である。なかなか進まないんですよ、奥さん。
ボーンアニメーションを微妙に高速化しておいた。とあるPCで1回あたり0.110秒かかってたのを0.08秒ぐらいまで高速化しておいた。0.03秒縮めた。これが活きるかどうかは,,,これから次第か!って、よく考えることもなく、これはまずいのではないか?MMDは30FPS…
ボーンアニメーションを実装した。だけど、まだ補間ができてないので、突然位置が変化する。処理落ちしてるわけではないが、動きがカクカクだ。そして、良く見たら、いろいろ位置がおかしいような。次は補間、それが終わったらIKか
IKとかベジェとか言ってないでボーンアニメーションからやっていくしかないかな。ボーンアニメーションだけだったらそんなに難しくないはず...クォータニオンクラスも作ったし、やることはやってあると思う。とりあえず前へ進もう君のいない道の上へ
連想配列の要素をhash[hoge]でなくhash.hogeみたいにアクセスしたくなったので、method_missingを使ってみた。こんなやり方でいいのかは知らない。そして取得はできるけど、要素の追加と変更ができない。うーん class Hash def method_missing(name, *args) …
タイトルのとおり、アニメーションに苦戦中。IKとか補完がベジェ曲線とかクォータニオンとか、今まで勉強してこなかった分野の目白押し状態。泣きそう。とりあえずメタルなミクさんのスクリーンショットを置いておく