MMD
以前表示したときとだいぶ変わった気がする巡音ルカ。同じモデルなんだけど、シェーディングの差で別人のようだ
体を動かすのは大変そうなので、まずは顔だけアニメーション。時間と共に変化します。https://github.com/d-kami/MMD-on-Ruby
ちょっと見た目が変わったかな?わからん...無駄にcommitしまくり https://github.com/d-kami/MMD-on-Ruby
https://github.com/d-kami/MMD-on-RubyにLat式ミク対応版(?)をあげておきました。Lat式ミクはhttp://bowlroll.net/up/dl3934からダウンロードして、toonで始まる画像をMMD-on-Rubyのtoonフォルダへ、他のファイルはmodelフォルダに入れます。pmdファイルは…
まだ手抜きではあるが、RubyでもLat式ミクさん表示できた。ただし、github上のプログラムだと無理だけどね!頑張ってそのうち対応する予定
今までシェーダでLambertを混ぜていたが、それをやめた。そして新たにtoonという画像を使うことに。前に比べて平面的になった気がするが、こっちの方が正しいのだろう。多分 https://github.com/d-kami/MMD-on-Ruby
MMD on Rubyをgithubで公開しました。久しぶりにgithubを使ったので、なんか緊張してました。なにか忘れてそう https://github.com/d-kami/MMD-on-Ruby
BMPファイルを読み込めば、MMDのデフォルトのモデルは表示できるので、Google先生に聞いたらRubyでBMPファイルをあつかうを発見した。さっそくダウンロードして、readを使い画像を読み込みこんだ。あとはpgetを使いOpenGLで扱える形式に変更すればOK。OpenGL…
以前mmd.rbで、 @io.read(2 * count).unpack('S' + count.to_s) としていたところを @io.read(2 * count).unpack("S#{count}") に変更した。あと文字列を読み込む部分を @io.read(count).unpack('Z*')[0].toutf8() に変更した。A*でやってたけど、null文字が…
前回のエントリのmmd.rbと今回のmain.rbとシェーダを合わせれば一応MMDのモデルは描画できる。ただし、テクスチャを貼ってないので目が表示されない。怖い。なので正面から見ないようにしましょう。MMDデフォルトのモデルの初音ミク.pmdをmiku.pmdに名前を変…
MMDの材質まで読み込んだ。とりあえず、ここらへんでOpenGLを使って、モデルの描画をやってみたい。以下ソースコードmmd.rb require 'kconv' class MMDModel attr_reader :header attr_reader :vertices attr_reader :face attr_reader :materials def load(…
なんとなくRubyでMMDを読み込んでみることにした。まずはPMDのヘッダのみ。MMDはこちら require 'kconv' class MMDHeader attr_reader :magic attr_reader :version attr_reader :name attr_reader :comment def load(io) @magic = io.read(3) @version = io…
ここにも貼っておこう。左下のコンボボックスで表情を選んでいる。早くアニメーションを実装なければ!
MMDのモーションデータ(VMD)形式 めもを参考にして、VMDを読み込んでいるところ。とりあえず動かしたい
表情を変えるだけなら前回やっていたが、それは描画前に1度しか切り替えなれないものだった。今回は描画後でも何度でも切り替えられるように修正した。さぁ、次はアニメーションか!?
MMDのモデルから表情リストを読み取り、表情を変化させることに成功した。あとはアニメーションかな。IKが大変そうだ
前回はエッジがあるかどうかが際どく、エッジの無い画像と比べてもよくわからなかったが、今回はちゃんとエッジが見える。やったね!
MMDで描画したモデルをfirefoxで表示すると、普通に描画されるが、Chromeで見るとちらつきが発生。何故かと思ったら、描画用のループ(というかタイマで定期的に実行だが)でvertexAttribPointerを毎回呼び出していることが問題だったようだ。1回呼び出したら…
Lat式ミクを利用させてもらってるのにリンクをしていなかった。なのでリンク貼ります。Lat様のページです http://innoce.nobody.jp/
シェーダで正規化した法線と正規化したライトの向きの内積を使うと何故か描画がおかしくなる。他のモデルではうまくいくのに...法線がなんか特殊なのか?モデルに用意されてる法線使わなければ描画できるので、法線抜きで
上の画像がちょっとだけエッジをだしてみたところ。下の画像は以前のやつにちょっと近づけたやつ。服の内側が消えてしまってるのは気にしない。他はよく見ると違うような同じのような
このエントリのグロ注意状態になっている。みんなが通る道らしい? http://d.hatena.ne.jp/edvakf/20111002/1317578036
MMDに巡音ルカが含まれてなかったので、探してみたところ、結構見つかった。そこで直感で選んだルカをWebGLで表示してみた。ライトとかシェーダの関係で残念な感じになってしまってるけど許してー。頑張ればもっと可愛くなると思います!配布元はこちら
LAT式はうまくいかなかったけど、MMD付属の初音ミクはなんとなくうまく表示されている?気がする。今夜はもう満足だ
Ambient入れたら色が明るくなった
diffuseカラーの適用とテクスチャマッピングを終わらせた。あとAmbientとかSpecularの適用か。それが終わったらシェーダで頑張る
drawElementsの第四引数は単純にindexを渡せば良いと思っていた。しかし、それではうまくいかなかった。そこでGoogle先生に聞いてみたところ、WebGL の drawElements の第四引数は「バイト数」というエントリに到達。なるほど、バイト数指定か...と思いなが…
現在、とりあえず1回のdrawElementsで全ての頂点を表示している。テクスチャを考えなければそれで良かったが、部位ごとに違うテクスチャを貼りつけたり、一部だけテクスチャを貼りつける場合、問題になりそうなので、描画方法を考える。とは、言ってもMMDの…
MikuMikuDanceのモデルをWebGLで表示。ただし、色はdiffuseだけな!正面向かせるとテクスチャ貼ってないから目がギャー
MMDのモデルデータ(PMD)形式 めも (まとめ)を見ながらJavaでパースして、JavaScriptに変換し、WebGLで表示した。影がアレなのは気にしない!