思考言語としてのCGツール

今、ruby開発者のまつもと氏の著書、コードの世界を通勤中にちょこちょこ読んでいるんですが。
まぁなんとも面白いですこれ。非常に楽しい。
読んでない人にはオススメしたい一冊。でもプログラミングがそこそこ分かる一じゃないと楽しめない予感。。。

と、この本の第一章の中にこんな一文がありました。

言語学の領域ではSapir-Whirf仮説というものがあります。これは「言語がその話者の思考に影響を与える」というものです。つまり、話す言語の差異によって発想そのものが左右されるということです。人間の話す自然言語においてこの仮説が成立するかどうかは分かりませんが、少なくともプログラミング言語においては、かなりよく成立するような気がします。つまり、プログラマはその使うプログラミング言語の差異によって、思考とその結果であるコードに決定的な影響を受けます。

これに関連して考察。

まず、上記の引用に対して、「言語学ではSapir-Whirf仮説は否定されつつあるらしいです」という注釈がついていることを付け加えておきます。
 
僕は自分自身全く同じことを思ったことがある為、この言葉に深く納得しました。
おそらくプログラムを書く人ならば大体思ったことがあると思いますが、どうなんでしょう。

僕は仕事の関係や趣味などで、そこそこな数の言語を触ってきました。
その都度それぞれの言語の思想や得手不得手など、なんとなく感じるものがありました。
中には明確なものも含まれていますが、今よりさらによく分かっていない時期の話だったので
理解度の怪しさで言えば120点です:P

それぞれ実現する内容は違ったものの、アルゴリズム的な部分に関しては
全く違うものを駆使して書くことばかりでもなく、似たような処理をつらつら書くことも少なくありません。

そういった場合に感じるのが、言語による細かな記述の差。
そういう細かな差から感じる思考の差異、そして結果。
1個しか知らない時は何も感じませんでしたが、数種類の言語を深く知るにつれ、
あっちではこうなのに、こっちだとこうなのか、などなど、他の言語との差を意識するようになりました。

その差が意識出来るようになって、元の言語(僕の場合MELです)に戻ってきた際、
その知識を駆使してよりエレガントなコードを書こうとするようになりました。
といってももっと関数として簡潔にまとめようとか、変数名はこうした方が良いとか、その程度ですが:P

まつもとさんが述べられているのは言語による思考の違いと生産性の両方に関してですが、
僕は言語の生産性よりはむしろ思考、様々な言語の思想や背景を知ることにより
長期的に見るとより確かな技術としての生産性の向上が見込めるのではないかと思うのです。

もちろん日々の業務をこなすという意味では言語自身の生産性の高さは非常に重要なんですが:P

同じ事がCGツールにも言えるのではなかろうかと思います。

例えばMayaではこの処理をするためにこれだけの手順を踏まなければならないが、
Houdiniではこれだけの手順で良かった、というのを経験したとします。

とするとMaya上で同じだけの手順でそれが実現出来る方法はないか、と模索するようになります。

これはMaya、Houdiniだけではなく、Max、XSI、LW、C4D、とにかくなんでも当てはまります。
とにかく優れた手段、手法に触れ、その便利さを享受すると、
自分の思考は変わるものだということが重要なポイントです。

CGソフトはプログラミング言語とは若干違い、同じことを出来るかと言ったら、
全てに対してYesとは言えないでしょう。
 
ただ、CG屋は自分が使用しているツールを基準に作り方を考えているとおもいます。
ここでこうなるから、じゃあこういうデータが必要だ、とか、
こうしてやったら楽だからここは諦めよう、とか。

ただ、他を知ることでもっとアレコレ工夫出来ることもあるんじゃないでしょうか。
もしかしたらツールを伴うこともあるでしょうし、自分では作れないこともあるでしょう。

思うに、重要なのは知ることです。知っていることが非常に重要だと思うのです。
一番悪いのは盲信的なことであり、狭い視野しか持たないことです。

これはCGツールに限定された話ではないかもしれません。

思考というのはつまり自分の知識と知恵の結晶。
引出しは多くて困ることはおそらく無いんじゃないかと思います。

 
実際にはより優れた手法であるとか、より自分に近い思想なんかに触れてしまうと
元のツールに戻りたくなくて発狂するわけなんですがwww

つまり、I love Houdiniということです(どーん

でもやはり盲信的なのもアレなので、MaxだとかXSIだとかC4Dだとかも調べたりしてますし、
LWCoreに期待を寄せたりしているわけです。
(そういえばLWCoreってどうなったんですか?)

ただやはり一番重要なのはとにかく作ることだと思うので、
調べてばかりが良い事ではないとおもいますけど、
知らないよりは知ってる方が良いかなーと思います。

 
と、今日はコラム的?な感じで最近思ってることを書いてみました。
駄文にお付き合い頂き、ありがとうございました。

「思考言語としてのCGツール」への5件のフィードバック

  1. 全然違うことかもしれないですけど、かつてDigitalFusionを触りだしたころのことを思い出しました。それ以前はAfterEffectsのみでコンポジットしていたのですが、DigitalFusionを触るようになってこういう素材を出せばもっとよく出来る、とか、コレとコレは分けて出そうとか、こういうマスク(白黒画像)があればそのエフェクトはできるぞとか・・・
    DigitalFusionが色々と指し示してくれていたような感覚でした。

    それとやはりその当時いたポスプロの先輩方がかなりのDigitalFusion使いの方々だったので、それに引っ張られてっていうのもあるかもですけど。今でもDigitalFusionと先輩方には感謝しております。

    その内の一人のまさに師と呼べるような方が、今は某chiyamaさんと同じ職場ですw 最初にいたそのポスプロもそうですし、某chiyamaさんのいらっしゃるところもですが、やっぱり良いところには良い人が集うものですね。
    もちろんコマツさんのところ然り。

  2. >チラオカさん
    Twitterではどうもww

    > かつてDigitalFusionを触りだしたころ
    そう、まさにそういうことです!
    結局1個の方法しか知らないのはあまり良くないなぁと思うのです。
    ツール然り、言語然り、です。
    そういうこともあって是非英語覚えたいんですがなかなか、、。

    > 良いところには良い人が集う
    そういって頂いてありがたいです。
    良い人が集まる良い環境が、今後も増え続けて行ってほしいと願うばかりです。。!!

  3. めちゃめちゃ共感できます。
    様々なアプリはホントいろいろよく考えられていて、そんなアイデアの刺激はいつも感じます。
    Maya、XSI、Maxでぶつかり合う昨日や仕様はあるものの、それぞれアイデア豊富でいいですね。

    ソフトが変わると思考が変わって作品にも影響するっていうのは十分あると思いますね。
    昔昔Rendermanとは・・っと調べて物凄いカルチャーショックを受けたことを良く覚えています。

  4. 所詮道具と言われる事もありますが、DCCツールの場合、作り手の思考に訴える部分が強いような気がします。今の部署の立場ですと色々な道具とのつきあい方をしている人を見ることが出来て刺激になります。
    ノード萌えでmax(max MSPの方)やQuartz ComposerとかICEなどをいじると同じようなUIアプローチなのに全く別もの、ということに驚きます。それがまた新しいアイデアに結びついたりするから、面白いですね。

  5. 遅くなってしまって。
    最近書く事が無いのでブログが疎遠です。。

    >ガリさん
    ですよねですよね!
    RenderManですかー。僕は学生の頃、どうしてもプロになりたくてRenderMan調べてたんですが、意味が分かんなくて困りましたwww

    日本だと実際、このソフトで出来るか出来ないか、みたいなところって結構重要だったりするような気はしています。

    Mayaのみでゴリゴリのリジッドボディシミュレーションとか、簡単に出来ますとは間違っても言えないですし、、、

    >TEDさん
    > 作り手の思考に訴える
    そう思います。最終的な方法論に落とし込む際には間違いなくそうならざるを得ないというか。

    > Max, QC, ICE, etc..
    ですねーー!
    Maxは元々プログラミング言語だしやはりそういう側面が色濃く出てますけどICEは関数呼び出ししてるような感覚はないですし、ここには入ってないですがMayaだとノードベースというのは単に視覚化の為でしかないのかななんて気もしてしまいます。

    個人的に最初に触ったノードベースシステムはMayaなんですが、Houdini触ってびっくりしたのは階層構造ですね。
    あれがあるだけで一気にデータの抽象化が可能になるし、非常に便利!
    ああいう考え方を覚えるとやはりプロセス変わってくるんですよね、あれこれ。

     
    うーむ、やはりHoudini最高<結局それか・・・!!

コメントを残す

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