murnana's diary

プリントの裏に書くとか、そんな感じです

Unity内でkemono_friends_lang 1日目

流行りに乗っていくスタイル。
思ったよりも時間がかかってしまいそうだ…

記事の趣旨

kemono_frends_langをUnityでゲームに組み込めるようにするまでを記録したものです。
技術的なまとめではありませんので、ご注意ください。 途中で放棄したらごめんなさい。

記録:

友人から「けものフレンズ」を元にした変なプログラミング言語の存在を教えてもらったので、入社まで暇だしUnityに組み込んでみるかと、軽い気持ちで始めた。

それが まちがいの はじまりだった。


まず、そもそもその変なプログラミングの使い方を知ることから始まった。

nijipi.com

なんじゃこりゃ…HelloWorldを出力するだけで、どんだけ時間がかかっているんだ。
説明はUNIX/Linux環境ということは、今の手元で開いているWindowsは、このままでは使えないと。

とりあえず、先に開発元ソースを探すことに。幸いすぐ見つかった。

github.com

中身はRubyで書かれているらしい。む、Rubyか…使ったことないな


Ruby環境…の前に、Unityのプラグインの作り方について調べた

そもそもUnityのプラグインを自分の力で作ったことがなかった(使うことはあったが)。
というわけで、作り方をさっと調べてみた。

まとめると

  1. Unityプラグインの種類は2種類あり、今回はネイティブプラグインを使ったほうがよさそうだ
  2. RubyスクリプトはPlugin インスペクター上には載らない可能性がある
  3. ネイティブプラグインC/C++で作れる

といった感じだ。ということは、以下の方法によって作れるだろうと予想

  • kemono_frends_langをRubyを使って再現する(RubyC/C++に組み込む必要がある)
  • kemono_frends_langをC/C++を使って再現する(C/C++側でスクリプトを読み込み、結果を使えるようにする)
  • いっそUnity C#の力で読み込み、再現する(プラグインなし)

どの方法でもできそうだが、折角なのでRubyを使ってみることにする。


Ruby環境をととのえる

Ruby環境と、組み込める準備をしておく。

Ruby - RUBYスクリプトをDLL化する方法(44428)|teratailからC++プログラムにRubyを組み込むに行きついた。が、インストール方法がよくわからなかった。
何を間違えたか、RailsInstallerからダウンロードしてセットアップしたが、途中間違いに気づいてRubyInstaller for Windowsから落とした。

そして、libとdllと必要なヘッダを吐き出すため、Windows 環境で Ruby (trunk) をビルドする (2015年版) - sonots:blogを見ながら、githubからソースコードをとってきてビルドを行った。


ビルド方法を見ながら行ったが、うまいことVC++に入れることができない。 何かがおかしいのだろう、と思い、今度はREADME.winを見ながらビルドしてみた。

nmake testがうまくいかない。…何が悪いのだろうか…? 今日はここまで。


Next: murnana.hatenablog.com