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

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

2014年10月26日日曜日

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

木村でございます。プログラミングのお話の第2回になります。前回CG屋が始めるプログラミング言語はPythonがよい、というお話をしましたので、今回は実際にPythonをどう学ぶかについてお話しさせていただきたいと思います。

基本的にPythonは癖の少ない学びやすい言語、という定評があり、アメリカの大学などの教育機関で教えられているプログラミング言語の中では1番の人気だそうです。ですので、まずは巷の参考書やウェブサイトの記事などを頼りに実際にコードを入力して実行してみるのが良いでしょう。Pythonは他の多くのプログラミング言語と同様、無料で利用できますので、以下のウェブサイトでダウンロードし、御利用環境にインストールすればすぐに使い始められます。

https://www.python.org

Linuxの多くのディストリビューションやMac OS Xでははじめからインストールされていますので、もしそれらの環境をご利用であればインストールの必要すらありません。また、MayaやHoudiniなどPythonインタープリタを内蔵したアプリケーションをお持ちであれば、やはりそれらのアプリケーション上でPythonコードを実行する事が可能です。

ところでPython自体には複雑なところはありませんが、単純にモダン・プログラミング言語の1つとして考えた場合、どうしても初心者にはなじみにくい概念というものがあります。それがいわゆるオブジェクト指向、というものです。近年考案されたプログラミング言語のほとんどはこのオブジェクト指向という概念を取り入れていますが、これはとりわけ初心者にとって非常に理解しづらいものです。私自身今から十ウン年前C++を初めて学んだ時にこの概念に触れたときはさっぱり意味が分かりませんでした。実を言うと今でも正直よくわかっていないというのが本音なんですが、これについては教える側も相当に苦慮しているようです。私が初めて手に取ったC++の参考文献にオーライリー出版の「C++ プログラミング入門」という本があるのですが、この中でオブジェクト指向を「車やソーラーシステムのような現実に存在する特定の概念」と表現しています。おそらく現実のものを喩えに出したほうがわかりやすいだろう、と考えたのでしょう。

これからPythonでプログラミングを勉強される方は、多少ドラスティックなやり方かもしれませんが、思い切ってオブジェクト指向という考え方をしばらくスルーする事をお勧めします。オブジェクト指向の考え方が初心者に難しい理由に、このコンセプトの目指しているものの1つに、複雑かつ大量のコードを効率よく書く事、というのがあります。例えばオブジェクト指向のコンセプトの核になるものの1つに「継承」というのがあります。これは平たく言うと既に存在するコードを再利用しつつ、部分的に変更を加えて新しいコードを生み出すテクニックなのですが、当然の事ながらこのコンセプトを実行に移すには既に他のコードが存在しており、それをどう変更すれば新しいコードがかけるのか、という事を理解していなければなりません。これからまっさらな状態で新たにプログラムを書いていこうという初心者が理解するのが難しい理由の1つがここにあります。

幸いPythonはJavaなどと異なり、オブジェクト指向でありながら従来型の「手続き型のプログラミング言語」のような体裁で書く事も出来る比較的緩いタイプのオブジェクト指向です。ですからはじめは必要な処理を行うコードをベタ書きし、やがてそれを「関数」と呼ばれるコードの器に移して汎用性を高めていく、といったわかりやすい入り方からするのがお勧めです。ただし、Pythonのオブジェクト指向の側面を完全に無視してプログラミングを習得していく、というのは至難の業です。そこで一番基本的な概念、「クラス」と「オブジェクト」に関しては最低限度の知識を持っておくと良いでしょう。例えばオブジェクトは手続き型言語の「変数」に近いものですが、変数が単なる値の器であるのに対して、オブジェクトはその値を操作する関数(オブジェクト指向の世界ではメソッドと呼ばれます)が「値の器」にくっついてくるような形になっています。

オブジェクトがどのようなメソッドを持っているかは通常そのひな形であるクラスで定義されます。そしてPythonではユーザーが作成した変数は必ず何らかの形のオブジェクトになります。Pythonではオブジェクトの名前の後にドット(.)をつけ、その後にメソッド名を書く事で処理を呼び出す事になります。この点だけ理解していれば、後は当座オブジェクト指向の事は脇に置いておいて勉強するのが良いでしょう。一通り文法をさらったら組み込みのライブラリ・モジュールの使い方を知りたくなると思いますが、この際はreという正規表現を扱うライブラリを勉強しておく事をお勧めします。正規表現とは文字列からパターンにマッチした部分を抽出して処理するプログラミング・テクニックの1つであり、テキストファイルの内容からCGのデータのノード名などに至るまで、テキストで表現するありとあらゆるものの処理に非常に高い頻度で用いられるものです。ルールを覚えるのが多少煩わしいですが、必ず役に立ちます。

次回はPythonにまつわる問題点についてお話ししたいと思います。



0 件のコメント:

コメントを投稿

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