WindowsXPでLiquidのコンパイル

タイトルの通りなんですが。
やっとこさ成功しました。
半ばあきらめてたので初めてコンパイルに挑戦して挫折したところから見ると
かなり時間があいてますが。
一応成功しました。


今回使用したのは、
・winXP pro(32bit)
・Maya8.5
・VC8 express
・3Delight 7.0
です。

SVNでソースをごそごそ落としてきます。
Liquidのファイルの中にvc8用のslnファイルがあるので、おもむろに開いて、とりあえずビルド。

まぁ、最初は華麗にエラー祭りです。

MAYA_LOCATIONが設定されてない。
面倒なので全部フルパス記述にしてやりました。
%MAYA_LOCATION%\includeなら、C:\Program Files\Autodesk\Maya8.5\includeという風に。
今回は非常に洗練されたとかそういうのは置いといて、
とりあえず動かすことを主題に据えてやってみました。
まぁMAYA_LOCATIONを環境変数で設定してやればよかっただけなので、これはこれでヤッチマッタ系な気もしますが、まぁ、一応。。
MAYA_LOCATIONって、良くわかんない環境変数だから作りたくなかったんですよ!

ほんで次はファイルが足りないらしいことが判明。
readme.txtには、
if you want to compile the generic RIB library, you’ll need to create an empty unistd.h
in your MSVC standard include directory (due to the bison/flex file generator), and install zlib headers and libs.

と書いてあるので、とりあえず空のunistd.hをつくり、VC8のincludeディレクトリに突っ込みます。
空なので、0kbです。中身は何もありません。空なので。

あとはzlibをインストールしてやります。

このzlibが厄介でした。
まずzlibのサイトからソースコードを持ってきます。
コンパイルされたものもダウンロード可能なのですが、コンパイラのバージョンが古いので、
一応心配ということでソースコードからビルドします。

そんで、こんどはzlibがMASMをインストールします。

ここで重要なのは、英語版をインストールしないこと。
僕は先に英語版を見つけたので、それをインストールしようとしてましたが、それはどうやら無理だったっぽくて、あきらめました。

ただ、もしかすると、MASMはいらないのかもしれません。
というのも、僕が最初にコンパイルしようとして失敗したのは、アセンブラ版とかなんとかそういうやつだったらしく、途中(MASMインストールした直後)で気付いてdll版とlib版をコンパイルしたので、もしかしたら必要なかったかも?と思っただけで、ここは定かではありません。
で、実際にdll版とlib版を両方コンパイルして、両方パスの通っているところにコピーしたので、
実際にはどいつが動いているのか、それも良くわかっていません。

ほんでzlibのコンパイルが通ったら、
system32にzlib1.dllを、includeパスが通っているところにzlib.h、zconf.hを、libパスが通っているところにzdll.libとzlib1.expをコピーします。

このとき、管理者権限でやっていると、管理者しか読み込みが出来なくなっていたりするので、
ちゃんとパーミッションの確認をしてやった方が良いと思います。

ここまでやって、やっとliquidに戻ってきます。
自分が使うレンダラの設定を終わらせた後に、ビルドします。
AqsisなのかPRManなのか3Delightなのか。

で、多分ここまでちゃんと終わらせたらmllがビルドされていると思います。
あとはliquidディレクトリの下にあるmelとiconsもコピーするなりパスを通すなりしてやります。
mllも同様に、plug-insにコピーするなりMAYA_PLUG_IN_PATHを指定するなりします。

あとはMayaからプラグインをロードすればOKです。

一つだけ注意。
LiquidBinというプロジェクトがVCのソリューションの中に含まれていると思うのですが、
それに関してはMFCを使用しているようで、ビルドが出来ませんでした。
それをコンパイルしたい場合は、お金出してVC2005を買う必要がありそうです。

で、とりあえず適当にいじって、レンダリングしてみました。
シェーダはネットでDLしたやつで、おそらくAdvanced RenderManのLaryさんが書いたものと思われます。
DLはこのページこちらから。
レンダリング結果はこんな感じ。

ほんの少しだけ触ってみただけなんですが、
これを使ってプロジェクトの効率化を図るというのは、かなりやりがいのある仕事なんじゃないかと思います。
というか、そうでもしないと作業者全員がバッチリ機能を把握して触れるツールだとは思えません。
RenderMan自体がそういう性質を持っているので、Liquidのせいでもないんでしょうけど、、。
あと、slimみたいなシェーダ構築ソフトも付属されていないので、自分で書くか、shaderManのようなものに頼るか、どちらかだと思います。
Mayaのデフォルトシェーダはそのまま使えるのかわかりませんが、たぶん無理なんじゃないでしょうか。
やり方あるかもしれないので、詳しくはわかりませんが。

なんにしても、やっとこさ取っ掛かりGET、って感じです。
はぁーーー疲れたーーー。

忘れる前にざっくりまとめただけなので、読みづらかったらごめんなさい。
いつか誰かがコンパイルする時の指標にでもなれば幸いです。

「WindowsXPでLiquidのコンパイル」への6件のフィードバック

  1. MAYA_LOCATIONは、複数のバージョンを使い分けたいとき便利です。
    バッチファイルに書いとけば、Maya8.5用とかMaya2008用の起動スクリプト分けられます。

    >自分が使うレンダラの設定を終わらせた後に、ビルドします。

    これ、結構驚いたんですけど。
    レンダラ変えるのにリビルドしなきゃいけないの!?なぜっ!?

    >シェーダー
    これが一番のネック。Mayamanはよくやってると思う。
    アーティストは『なんでたかがフラクタルがMayaとMayamanで違うの?!』って言うけど、それって難しいと思うんだよね。

    Occlusionはシェーダ関係ないのでそこをとっても
    occlusionパスから実用化したいなぁとおもうのです。

  2. >hajimeさん
    >自分が使うレンダラの設定を終わらせた後に、ビルドします。
    えーと、語弊があるかもしれません。。
    僕も詳しくわかってないのですが、デフォルトだとAIR, 3Delight, Aqsis, Pixie, PRManに対応してるっぽいです。
    なにやらレンダラが提供しているライブラリをコンパイルの際に使用しているようで、今僕のマシンに入れてあるのが3Delightだけなので、3Delightでコンパイルしました。
    詳しくはわかりません。。。!!
    もしかするとディスプレイドライバ?とかなんとか、そういうやつだけでしか使ってない可能性もあるので、ちょっと試してみます。
    というか、そのディスプレイドライバってのが何なのか、とか、もうちょいLiquidに関していろいろと知らないとイカンような気がしています。

    シェーダは非常に難しい問題ですね、、
    でもそこの差を埋めるために努力するのもまた無駄な手間なような気もしますし、、
    Occlusionはテクスチャも何も関係ないですし、一番実用的かもしれませんね。

  3. ところで、純粋に質問なのですが、Pixieとか単体レンダラ用としてはわかるんですが
    3Delightはオリジナルのrib出力機能があるじゃないですか。

    liquid使う理由あるんでしょうか?

    Airも、Mayamanつかいにくいとか、高いとかそういう理由でliquid使う理由はあるんですけどね。

  4. >匿名だけど多分hajimeさん
    えーと、はい。
    3Delightはオリジナルがあるので、多分普通は必要ありません。
    今回3Delight版てことでビルドしたのは、とりあえず僕のマシンに3Delightしか入ってなかったからってだけですwww

    多分3Delightならそれそのまま使うのが一番良いんじゃないかと思いますが。
    多分。

    でもLiquidも、mtor+PRMan使ってたはずの現場から生まれているので、何かしら理由はあるのかもしれません。

  5. はじめまして、

    僕もMaya 7.0ですが、liquidをコンパイルして使用しています。

    liquid+pixieとliqud+aqsisで利用です。
    ちなみにレンダラごとに、コンパイルしなおさなくても、
    そんなに影響ないと思います。
    マニアックな機能を使いこなしたいのでしたらコンパイルしなおした方が無難だと思いますが。。。

    liquidを使うメリットとしては
    単純にmtor+PRManはライセンス料高いからその削減では?

    1.8からはだいぶ使いやすくなっているので
    好みで選ぶ方もいるかもしれません。

    個人的には3DelightのRib出力機能もliquidの派生ではないかなとか思ってたりします。

    なんにせよコンパイルお疲れ様です(^^

  6. >@hさん
    はじめまして。
    書き込みありがとうございます。

    おぉ、Liquid使用者、実はぽつぽついらっしゃるんですね。心強いです。

    > レンダラごとのコンパイル
    はい、そう思います、、
    でもディスプレイドライバに関してはコンパイルしておいた方が作業しやすいかなーとは思います。
    MayaのRenderViewに結果が出てくれるというのは結構快適です。

    > Liquidを使うメリット
    ライセンス料ってのもあると思ったんですが、元々LOTRではmtorを使用してたんじゃないかと思うんです。わざわざ開発するってのは、やっぱりライセンス料以外の何かがあるんじゃないかなと思っています。
    FramestoreCFCにしても、古くからのPRManのユーザーなはずなのでライセンスがないってことはないでしょうし、やっぱり何かあるのではと思ってしまいます。

    > なんにせよコンパイルお疲れ様です(^^
    ありがとうございますww
    使いこなせるように頑張りますっ。

コメントを残す

メールアドレスが公開されることはありません。