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

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

RubyでPMDのヘッダ読み込み

なんとなくRubyMMDを読み込んでみることにした。まずは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.read(4).unpack("f")[0]
        @name = io.read(20)
        @comment = io.read(256)
    end
end

File.open("./model/miku.pmd", "rb"){|file|
    header = MMDHeader.new()
    header.load(file)
    
    puts header.magic
    puts header.version
    puts header.name.toutf8()
    puts header.comment.toutf8()
}


参考
Rubyでバイナリのfloatを扱うには
MMDのモデルデータ(PMD)形式 めも
Ruby/てっとり早く文字コードを変換したい