ハリウッドVFX業界就職の手引き

ハリウッドVFX業界就職の手引き
鍋潤太郎氏による、海外のVFX業界で働くための手引き。お薦めです。

2014年11月29日土曜日

プログラムを書いてみる その4

木村でございます。皆さんもニュースなどでお聞き及びかもしれませんが、今アメリカでは丸腰の黒人青年が警察官に射殺される、という事件をきっかけにして、抗議行動が各地に広がっています。この週末はアメリカではサンクス・ギビングという祭日で、この日のある週の金曜日は俗に「ブラック・フライデー」と呼ばれ、全米の小売店がセールをやる事で有名なのですが(買い物客が殺到して大きく黒字になる事からこう呼ばれます)、事件を理由にこのブラック・フライデーの買い物をボイコットするという人達まで現れました。この事件が起ったのはミズーリ州という中部の州なのですが、LAではこれに敏感に反応した人達がやはり抗議活動をしています。ご存知の方もいるかと思いますが、LAでは昔、ロドニー・キングという黒人男性が警察官に暴行された事件をきっかけにして暴動が起り、今でもLA市民はこうした出来事にナーバスになっています。今回はLAは比較的落ち着いていますが、住んでいる身としては若干不安ではあります。


それはさておき、「プログラムを書いてみる」の最終回です。最後はプログラムの開発に有用なツールや、今後期待できる技術について簡単にお話しして終わりにしたいと思います。

開発ツール


IDE

IDEとはIntegrated Development Environmentの略です。Environmentとありますが、通常はアプリケーション・パッケージの体裁をとっている物が多いです。プログラムの開発、とりわけコンパイル系の言語を使った開発ではコンパイル、リンク、デバッグといった複数のプロセスがあるため、それを統一した環境から利用できれば便利だろう、という発想の元にこうしたツールが用意される様になりました。コンパイル系の言語は広くアプリケーションの開発に用いられるため、そのIDEも各OSのデベロッパーから純正の物が用意されています。WindowsであればMicrosoftからVisual Studioが、OS XであればAppleからXcodeというIDEがそれぞれフリーで提供されています(Visual Studioはエンタープライズ版が有料です)。よってC++などを使う方はこれらのIDEを手に入れるのがよいでしょう。

Pythonなどのスクリプト系の言語の場合、書いたコードを即座に実行できるため、テキストエディタだけで開発が出来てしまいます。私もスクリプトを書く場合はVimというテキストエディタだけで大概済ませてしまいます。従ってIDEを必ず手に入れた方がいい訳ではありませんが、通常のテキストエディタでは出来ないような便利な機能がIDEにはあります。例えばリファクタリングと呼ばれる機能は、あるファイルの中で関数やクラスを定義していて、他のファイルでそれらの関数やクラスを利用していたとします。何らかの事情があってそれらの関数やクラスの名前やメソッドの定義を変えなければならなくなった場合、もとのファイルを変更するだけでそれを参照していた他のファイルの内容も変更してくれる、という便利な物です。書いているスクリプトの規模が大きくなってきたら、IDEの導入を検討してもよいでしょう。スクリプト用のIDEで有名なのはEclipseです。もともとJavaの開発のために作られましたが、PyDevというプラグインをインストールする事でPythonの開発にも使えます。オープンソースですので無料なのも魅力です。商用にはKomodo IDEというIDEがあり、こちらは有料ですが始めからPythonに対応しています。

VCS

VCSとはVersion Control Systemの略で、その名の通りプログラムのバージョン管理のために用いられるツールです。プログラムは一度書いてもバグのフィックスや新機能の追加などでどんどん書き換えられていきます。その際、過去の履歴をとっておき、それを好きなときに参照したり、戻ったりする事が出来れば、開発効率が上がります。VCSはそうした機能を提供するための物で、このブログを書いている現在最もポピュラーなVCSはおそらくSubversionでしょう。SubversionはUnixの世界で広く使われていたCVSを元に開発されており、その事から非常にポピューラなVCSとなりました。その反面、中央集約型のバージョン管理の手法が扱いづらい、という批判もありその事から最近ではGitという分散型のバージョン管理システムが人気を集めつつあります。GitはLinuxの開発者であるリーナス・トーバルスによって作られたVCSで、各ユーザーがリポジトリ(プログラムの履歴をまとめたアーカイブのような物)の完全なコピーを持って作業できる事から、分散型と呼ばれています。

VCSは通常複数のプログラマが大規模なプログラムを共同で開発していくときに最も有用なツールです。その場合は既に会社等で利用しているVCSがあるでしょうから、それを使うのがよいでしょう。もしそういった物がまだないという事であれば、恐らくGitがよいオプションかと思います。Gitにはリポジトリをクラウド上に保存して世界中の開発者にアクセスさせるGitHubというサービスもあり、人気を集めています。

ちなみにCGではプロダクション・パイプラインにおいて、共有アセットのバージョン管理にこういったプログラム開発用のVCSを用いるところもあります。

これからの開発ツール


Fabric Engine

昨年末、イギリスのVFXハウスMPCが自社のツール開発にカナダのFabric Software社のFabric Engineを導入する、という事を発表しました。Fabric Engineは、特に3DCGの分野でのアプリケーションやツールの開発をサポートするためのフレームワークであり、その中枢はKLと呼ばれるスクリプト言語によって成り立っています。このKLを使って開発したアプリケーションはC++などで作った物よりも高速である、と同社は謳っています。この事の理由の1つに、KLがGPUコンピューティングをサポートしている、という事があります。これまで、GPUコンピューティングは複雑な技術の1つであり、NvidiaのCudaやOpen CLといったC/C++用のフレームワークを使って開発をするのが普通でした。KLは、それをスクリプト言語から利用できる様にする事で、一般のCGプロダクションのTDにでも気軽にGPUベースのツールを開発できる様にしているという事のようです。また、KLを使って作ったスクリプトはMaya, 3dsMaxといった異なるCGアプリケーション上で互換性があるため、ツールの移植が容易であるという点も魅力なようです。


Fabric Siggraph 2014 Trailer from Fabric Engine on Vimeo.

以上、「プログラムを書いてみる」と題してお送りしてきました。何かのお役に立てれば幸いです。




0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。