マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

Ruby

コードその1

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…

怪しいスライドを作るd-kamiだった...

現在11ページできている(1日で作ったものだが...)

tracerouteもどきを更新しました!

古いプログラムなので、もう少し手入れをしたいけど、とりあえず修正版公開します。Ruby 1.9あたり以降なRubyが入っているLinuxで多分動くよ!Raspberry Piで動作確認済み。root権限で動かしてね!使用例 ruby modoki.rb google.com綺麗になったらgithubに上…

Raspberry Pi上でパケットダンプを少し更新

Ruby 1.9以降で動かない状態だったので少しだけ動くようにした。TCPパケットが来ると落ちるけど。あと使い方とか書いてないのでREADMEを書きたい。でもRaspberry Pi上での作業は大変だった。Raspberry Piというよりnanoに苦戦した気がする。主に保存と終了が…

MMD on Ruby更新

シェーダを中心に更新しました https://github.com/d-kami/MMD-on-Ruby

結局こんな感じで落ち着いた?

もうこれでいいんじゃないかと?

シェーダーいじいじ

上の画像だとちょっと明るい気がしてのでシェーダ弄って調整。というか結構おかしかった。手抜きよくない。物理演算無理

アンチエイリアス

コメントでアンチエイリアスの方法教えてもらったので早速、適用。上が従来の描画、下がアンチエイリアス込の描画

描画した3Dモデルが荒い...

なんかアンチエイリアスとかの設定がOpenGLにあるのか。それとも自分で何かするのか。シェーダでなんとかなったりしないのか?

久しぶりのMMD

MMD on Rubyちょっと弄っている。物理演算入れたいけど、私の実力とマシンパワー共に駄目そう。ruby-odeというものがあるが...

MMD on Rubyの動画アップロード

MMD on Rubyの動画アップロードしました!

MMD on Rubyのページ更新

IKのバグがあったのを修正したので、それにともなって紹介ページを更新した http://d-kami.net/mmd.html

mikutterのプラグインに移植できるか?

移植してどうするという気もするがやってみようか?

d-kami.net & MMD on Ruby更新

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が必要か?

MMD on Ruby 未完成版公開

http://d-kami.net/にてMMD on Ruby未完成版を公開しました。頑張って完成させないと!

IKの実装が終わった

体調が悪い中、うまくいってない原因が閃いてしまったので、やらざるを得なくなった。IKに失敗してた理由はクォータニオンのかける順番が間違っていたことだった。まぁ、動いてくれて良かった。あとはシェーダの関係で一度消してしまった表情の変化を取り戻…

なんとか見れるスピードにはなったが

NArrayのおかげでだいぶ速くなり、家のマシンで秒間30フレームがいけるようになった。だが、まだIKを実装してないのでぎこちない動きになっている。IKだ!IK!

高速化に向けて...

コメントにてNArrayというものを教わった。Windowsマシンでさっそく gem install narrayするがDEVELOPMENT KITが無いと言われてしょぼんとしてたら救世主を発見し、Devkitのフォルダで ruby dk.rb init ruby dk.rb installをし再びgem installをしたら成功し…

NArrayを使い、高速化を果たしたが...

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とか補完がベジェ曲線とかクォータニオンとか、今まで勉強してこなかった分野の目白押し状態。泣きそう。とりあえずメタルなミクさんのスクリーンショットを置いておく