Large Display Size Middle Display Size Small Display Size

2015年12月 の日記

2015/12/22(火)

このページの3DCGの説明での予告、

>その辺のテキスト変換作業は私はプログラムで自動で行えるようにしてあります。

>そのプログラムは近日公開予定です。

それはこちらです。→ 

2015/12/17(木)

仕事では「技術」だけではなく「コミュニケーション」も大切と言われています。

私も「技術半分、コミュニケーション半分」といつも考えています。

「技術」ばっかりになりがちで、「コミュニケーション」がおざなりになっているので、過去に私が人から言われてしまった”私に対する苦情”は何だったかを考えました。うわさ話や攻撃を交えた苦情には意味がない(苦情の的がぶれているから)と考えて、切実な苦情のみをリストアップしました。「コミュニケーション」と「自分に対する苦情」はかなり近い関係にあると思います。

苦情をリストアップしている際に、「日本語が下手」という自分の欠点が浮彫りになりました。

「日本語を勉強しなおせば、コミュニケーションが良くなる」

そう思い、勉強を始めました。

その一環としてまずは今自分が持っている会話のテクニックは何と何があるかまとめてみました。そうしたら、話下手という割にはたくさんのテクニックを持っていることに気付きました。筋金入りの話下手ゆえに、多くのテクニックをかき集めたということです。たぶん。



2015/12/16(水)

fig.
▲映画「インターステラー」

DVDで映画を観ました。★4つ(満★5)

「インターステラー」(2014/アメリカ/2時間49分)


「重力が強い場所では時間の進行が遅くなる」———

そんな不思議なことを考えさせてくれる映画です。

地上とは違う宇宙の描写も観られます。

たとえば「探査機ヒーター解除…チェック」という一言で、宇宙船から何か小さい煙りがシュッと噴き出すが、それが完全に無音だったり。

手塚治虫の描く地球以外の惑星が予想を超えるムチャクチャな物理の惑星であるのと同じように、ここで描かれる惑星も科学的な範囲でムチャクチャな惑星になっています。


記念碑みたいなロボットから、欺瞞に染まった人間までキャラクターに深みがあって魅力を感じます。

普通の人には書けないような良いセリフ。主人公が旅立つときの演出も良いなと思いました。

物語の肉付けとしてNASAの資料に恵まれていると感じました。この辺はほしくても手に入らない描写。


主役のマシュー・マコノヒーは以前にも遠くの宇宙を旅するような映画、「コンタクト」に出演しています。(主役はジョディ・フォスターでした)


3時間に迫る長い映画で、退屈することなく楽しめました。

映画ってほんっっとに面白いですね。(映画解説M)

それではさよなら、さよなら、さよなら。(映画解説Y)




2015/12/8 (火)

fig.
▲3DCG「子を守る母親」

JavaScriptによる3DCGです。左の画像リンクをクリックするとJavaScriptを実行し、描画します。

ソースコード ドラゴンの3Dデータ

いつも言うように3DCGをプログラムで描く技術というのは、その内容は中学生の数学で可能なんです。でも今回はもうちょっとパワーアップして「小学校5年生でも可能」と言うことにします。

なぜなら、ソースコードを見ればわかるように、計算は四則演算だけであって、その計算の回数もプログラム上で指で数えるくらいしかありません。どう見ても難しいプログラムには見えない。でしょ?

3DCGの原理である h=x*(s/z)、v=y*(s/z) という式は、先月ここで「中学生の相似の問題です」と書きましたが、さらにその「相似」のおおもとの考え方は「割合」なのであって、「割合」は小学5年生で習うものらしいです。

だから「小学5年生でも可能」なんです。無理あるかな?



これを読んでいる人の中には、3DCGのプログラミングは「並大抵のことではない」と思ってた人もいると思います。実はこんなに簡単だったと知って、少し残念に思うかもしれません。

普通の3DCGプログラミングは入門してすぐに行列や視錐台(しすいだい)を学び始めます。そこがとても難しい。これらは3DCGのハードウェア がそういう計算を前提にしているから学ぶ必要があるんだと思います。

ここで公開している、原理を使った四則演算の3DCGはやり始めると面白いと思いますが、のちに壁にぶち当たります。

"たくさんのモデルを表示させたい"、"アニメーションさせたい"、"テクスチャを張りたい"、"もっと細かくリアルにしたい"、などなど いろいろな要望が出てくると、ここで公開している方法では処理速度が非常に遅くなります。

そういうときに次に目を向けるのは3DCGのハードウェア (OpenGL、DirectX対応グラボ)です。その際は誰でも行列を学ぶ必要が出てきます。3DCGのプログラミングは「並大抵のことではない」と思っていて「でも自分はクリアしてる」という人は、先取りしていると言えます。

だから得してます。残念に思うこともないでしょう。

3DCGをやりたがっている中学生~高校生が必ずいると思います。そういう若者にこの「原理による3DCG」を教えてあげたらどんなに喜ぶかなぁと思っていろいろ説明しています。


ところで、プログラムよりも難しいのは、ドラゴンのような絵を描くこと(お絵かき)と、3Dのモデリング(モデリングソフトの使いこなし)のほうだと思います。

ちょっと本屋に行って美術 のコーナーで人物デッサンの本を見てきました。

ある本の、「どんな形であろうと、この方法を使えば描くことができる」という文面が印象的でした。"この方法"とはこのような方法でした。


▲一つのやり方

赤い線を描くために、物体の構造をこのように描く、というものです。

描いていて楽しいかどうかはわかりません。

私はこの方法は……使わないような。。

まぁこの話題は余談なんですけど。


で、立ち読みして、どの美術 の本も、やはり以下で書いたような内容は載っていました。


1. 単純な形


▲キャリアウーマン

よく、絵の教室 では「物体を丸や四角など、単純な形で捉えましょう」と言われてると思います。

左の画像は私がMicrosoft Excelの図形の「四角」を多用して描いたものです。

絵の教室で教えたいのは「単純な形をたたき台(土台)にして、描きやすくする」ということだと思います。

私は単純な形でストップして「これでいいや」で完成させちゃっています。

細部を描くのは大変なので……。



fig.
▲Excel の図形でできています。

首から上は特にポリゴン数(3DCGでのデータ量)が多いと言われるほど複雑です。

でも、それでも実は単純な形の集まりかもしれません。

左の画像もExcelの「円」を多用しています。

ばらしてみましょう。



fig.
▲ばらしてみた図

このように単純な図形の組み合わせでできています。

赤くかこった部分はしなやかな曲線が必要だったため単純な図形をちょっといじった図形ですが、一番下の2つの顔はExcelのもとからある単純な図形だけを使って作ったものです。

最近、私は年を取ったせいか、昔みたいに細かく描くというのが苦手になって「図形の組み合わせでそれなりに描ける」ということを知ってからというもの、もうそればっかりです。

紙の上だと一度描いて気に入らなかったら、消しゴムで消して横にずらして、というのを何度も繰り返して大変ですが、Excelの図形ならマウスでこの辺かな?とポンと置けばいいので…。


fig.
▲ドラゴンも単純な形の集まりだった!

ドラゴンの頭も、実は直方体 を組み合わせただけです。

ツノは四角錐です。

絵を描くときは最初は単純な形の組み合わせから始めます。

組み合わせが整ってから、細部に着手するのが良いみたいです。



有名なファンタジーの人気イラストレーターの方はこういった3Dのモデリングツールなしで、自分の腕一本で空間を考えて描写 をしているんだろうなと思って、関心してしまいました。


2. バランス

しかし、単純な図形でできているからと言って、図形を組み合わせ始めても、なかなかうまくいかないかもしれません。

絵の教室 ではもう一つこんなことが言われます「バランスを取る」

fig.
▲顔のバランスを整える

「福笑い」そのものですが、しっくりくるようにバランスをとることが必要で、これが苦手な人が多いかもしれません。

(説明のためにわざとバランスを崩そうとしましたが、逆にむずかしかった…)

目先 の絵のバランスだけにとらわれず「そもそも現実はどうだったっけ」と考えたほうが良いです。

友達が近くにいるとき、その髪はどんな感じだったっけ?

現実をその絵柄に書き写します。



fig.
▲体のバランスも整える

体の各部位のバランスです。

「もうちょっと短く、いや短すぎたか」というように自然になるように試行錯誤を行います。

男性の肩幅、女性の肩幅、大人と子供の違いとか絵の教室 では必ず取り上げられる問題です。



fig.
▲Shade3Dはポリゴンを使わないで線を張ってモデリングできます。ポリゴンでもモデリングできます。

ドラゴンも前足の太さと後ろ足の太さの違い、頭を意外と小さくすること、しっぽを長くした方がそれっぽい、など、バランスを取ります。

私も若いころは、「描く女性の肩がどうしても男みたいに張ってしまう」というのを気にしていました。

たぶん、その頃は男性と女性の肩幅の違いを十分に知らなかったからそうなっていたんだと思います。

女性の肩幅は意図的にかなりせまくすると良いです。



3. 骨格

骨格も絵の教室 で教えていると思います。

骨格というのは私にとってですが、絵を描くときの最強のツールです。

私も最初は内部の骨格を考えないで、見た目だけで描いていました。

fig.
▲関節で曲がる、それだけで別のポーズに

見た目だけで描くと、腕が短いとか、首の位置がおかしいとか、そうなりがちです。

しかし、骨格を考えると、最初から正しい位置、正しい長さといった自然なポーズが最初から決まります。



fig.
▲鳥の翼は人間の腕と同じ骨格

鳥のつばさは、元は腕であって、それが進化したものがつばさです。(左図)

あなたの腕が鳥のつばさだとして、ちょっと閉じてみてください。鳥のつばさがどんな形でしまわれて、どんな形で広がるか想像できるでしょう?



fig.
▲ちゃんとしたものを描くのではなく、
 自分に必要なメモで良い。

それが分かったら、骨格を元にしてつばさを描くことを考えます。

人間の腕と同じだと思えば、つばさを大きく広げたところ、羽ばたきのプロセスのつばさを下げたところ、ホバリングするときなど、いろいろ描くことができると思います。

楽しいでしょ?



fig.
▲わかるように、出来上がったドラゴンを画像処理で重ねました。

想像上の生物も骨格を考えると良いです。

この写真 はドラゴンのつばさを描くときに、鳥のつばさはどうだったっけと思ってちょっと書いたものです。

本物っぽく描くためです。


骨格のほか、「筋肉」というものもありますが、私は「まぁいいや」と思って勉強してません。


4. 絵の道具

あとは、ここで紹介した Microsoft Excel の作画機能や Shade3D などのモデリングツールの使い方ですが、大きな壁みたいなもので、結構大変だと思います。

鉛筆を持って描くのも、真っ白い紙に描き始めるのは、どこから描いたらいいのかわからないから難しいでしょう。

昔私の友人が「3Dのモデリングだったら、絵が描けなくても何か作れるかな?」と私に聞いてきたことがあります。

「3DCG も、2Dでの絵心 が必要」という考え方もあると思います。単純な形を使う、バランスを取る、骨格を使う、などなどモデリングでやっていることは、2Dでの絵の教室とよく似ています。

でもコンピューターを使って描くというのは、紙の上で描くよりも手軽で、ハードルが低くなっていると思います。


5. 場面の本物を考える

それから最初のドラゴンの画像は「子を守る母親」という題名が付いています。

実際そんな場面を考えながらポーズを決めました。

ドラゴンと人間が対峙するときというのは、たぶん人間がドラゴンの巣を荒らすときかなと思います。そういうときドラゴンはたぶん「容赦」という文字はなく、人間に襲い掛かるはずです。

何か「我こそは」とセリフをしゃべるヒマなんかないはずで、ひっくり返したように全力で戦うでしょう。ドラゴンにとっては最後に自分の子供だけが無事であれば、他はどうでもいいのですから。

そして視点は人間の視点 であって、飛んでいるドラゴンを下から見上げるはずです。今まさに襲い掛かろうとしている一瞬の風景を 横から見上げているような感じにしました。「わわわ、まずいぞっ」という感じで見てます。あなたがその場にいるとしたら、ドラゴンはどんなふうに見えるでしょうか。

自分だったらどうするのかを考えると、セリフとか場面設定とか、いろいろ決まりやすいと思います。

自分がドラゴンだったらどうする? 自分が人間だったらそのときどうする? ノコノコ入ってきた人間にあなただったら、自然とどうするでしょう=3


6. 人によっていろいろな書き方がある

私は骨格を考えるのが好きでやっているだけで、それがすべてではありません。ゲームソフトの「ファイナルファンタジー」の印象画っぽい華奢(きゃしゃ)な感じの絵はあまり骨格をあてていない絵に見えますが、それで認められて好まれて使われています。骨格を考え始めたら同じような味のある絵 は描けなくなってしまう恐れがあります。

3DCGのプログラミングの話題でしたが…。難しいのは絵 の方ですからね。


7. Shade3D→JavaScript データ変換について

Shade3Dでなんらかのモデル を作った後、それを JavaScriptで使うためにどうすればいいかですが、Shade3Dでポリゴン  ではないモデル(自由曲面など)をポリゴン に変換します。そのままだとポリゴン数が多すぎるので「ポリゴンリダクション」というShade3Dの機能をメニューから探してそれなりに少なくなるように実行します。Shade3DのファイルメニューのエクスポートからFBXを選びます。FBXのバージョンを一番低いFBX2006にして、テキスト形式で出力します。

そのテキストの中から「頂点 」データと、「面 」データを探します。それがどこなのかは難しいと思いますが、今は時間がないので説明できません。

上手に「頂点 」データ、「面 」データを抜き取って、JavaScriptのプログラムへと書きなおします。その辺のテキスト変換作業は私はプログラムで自動で行えるようにしてあります。そのプログラムは近日公開予定です。

ページ制作 homepage6047



ページの上端へ (もくじ開く)