大学の授業でプログラミングに触れた話


7月も後半に突入しようとしていますが、皆さんいかがお過ごしでしょうか。

ついこの間始まったような気がする春学期も終わりに近づき、多くの大学生はテストレポートにそろそろ焦り始める時期かもしれません。

 

今日は珍しく、僕の学生としての一面を垣間見せていきます。

ちゃんと学生もしてるんですよ。

 

プログラミングでCG映像を作ろう

 

春学期、一般教養の授業で唯一履修をしたのが

POV-Ray」というプログラミングソフトを使った3DCGの演習。

f:id:pkpuipui:20190715001230p:plain

図1

 

f:id:pkpuipui:20190715010459p:plain

図2

f:id:pkpuipui:20190715010525p:plain

図3




ダウンロードはこちらから↓

https://www.povray.org/download/

 

簡単に説明すると、物体の形状色彩などをコードとして書き出し、それをソフトが読み取って画像や映像として出力されるという仕組みだ。

 

理解するまで時間はかかるが、やってみるとこれがかなり面白い。

 

認識のプロセス

そもそもこのソフトの中では、大きく3つのものを設定して物体を映し出すのだが、それが、普段僕らの目が様々なものや景色を認識するプロセスと同じである。その3つとは、

 

  1. 光源
  2. 物体
  3. カメラ

である。物体に光が当たって、それがカメラ(目)に伝わって初めて物体の視覚による認識が可能となる。

こんな感じ↓

f:id:pkpuipui:20190715005648p:plain

図4

 

実際、確かにどれが欠けていても画面上に物体は現れないし、カメラの視界に物体が入っていなかったり、光が物体にまともに当たっていなかったりしてもうまく映らない。

こうやってデジタルの世界を通じて、現実で起こっていることを理解したという話。

 

最終課題、何作る??

 

友だちと都合を合わせてPOV-Ray会をしながら、10個ほどの小課題を何とか提出し、残すは最終課題。

f:id:pkpuipui:20190715011525p:plain

図5

 

イデアはあった。

 

図1の課題をやっているときに、途中の図を見ていて思いついたものだ。

f:id:pkpuipui:20190715011323p:plain

図6


(これ、ゲー〇キュー〇じゃね??)

 

そう、あのゲー〇キュー〇。髭のおじさんピンクの丸いやつが活躍する名作を生み出したあれの起動画面だ。

youtu.be

 

すぐに制作に取り掛かった。で、出来たのがこちら。

 

一枚一枚の写真の連続で、パラパラ漫画のように動画を作るのですが、これを作るのに使った画像はなんと302枚。総作業時間は5時間以上

 

 

f:id:pkpuipui:20190715014749p:plain

図7

それでも完成した動画はたった10秒、映像制作ってどんだけハードなんだ、、、

 

思ったこと

いくつかあるが、まずはとにかくむずい。3次元の立体を複数扱う中で、移動後の位置と拡大率から座標の移動を計算して、、とか考えてるととても頭の中と画面だけじゃ何ともならん。

最終課題では紙とペンで設計図を書くことになり、デジタルなんだかアナログなんだか。それでも、昔から算数数学が好きだったこともあり、このくらいの計算ならなんとか頭が処理してくれた。これプロはどうやって作業してるのかマジで気になる。

 

(ちなみにプロはすんごい作品を作られています。面倒だから載せないけど、ぜひ興味があったら調べてみてほしい。)

 

 

f:id:pkpuipui:20190715015856j:imagef:id:pkpuipui:20190715015902j:image

 

 

 

 

そして、新しく小学校などで重要視されている「プログラミング的な思考力」について。

これがこのフレームからこのフレームまででこう動いてこんな色を設定して、あでもこのタイミングでこいつだけ動き変わるから一回ここまでで出力して、また新しくフォルダ開いて今度はこの方向に、、、みたいな。やりたいことを頭で綿密に想像して、それをプログラミング用の言語で書き起こす。

 

ちなみにプラグラミングでは使うコード、暗号みたいなものがソフトによって違っていて、言語と呼ばれている。C言語Pythonなどがその例で、聞いたことがある人もあるかもしれない。確かに、言語だよなあ、とかじってみて納得。

 

例えばPOV-Rayでは、

原点中心、半径1、赤色の球体を作る

object{sphere<0,0,0>,1

               pigment{color Red}

              }

みたいに書く。英単語を使ってはいるが、これは英語ではない。全く違う言語なのだ。

なので POV-Rayを使えるようになれば誰だってバイリンガル! というわけではないが、ただの記号の羅列、ととらえるよりは一つの言語としてとらえるべきだと思う。

 

1文字でも違えばコンピュータは読み取ってくれない。いやあ、頭使うよね。

けど、これって普段の生活にもかなり関係することで、

  • 道筋を立てる
  • 全体を俯瞰する
  • 間違ったときにどこが間違っているかを考える
  • いろんな角度から見てみる

ってことの積み重ね。

何かするときにこの辺の意識があるかないかで、物事の効率や正確性が大きく変わってくると思う。

 

ま、詳しい話は教員になるならもっとちゃんと調べなきゃなと思う。

 

 

 

最後に、この授業のなかで久しぶりに課題に前のめりになっている自分に出会えたということ。

やっぱりむいてるのかなあ、こういう何かを作り出すこと。超楽しいし、時間を忘れて熱中できる。あーねっちゅう。

提出日の3日前に提出なんてほかの授業では記憶にない。

 

教員よりもこういう系が向いてたりするのか???

 

まあ僕が将来何になるとしても、この経験は無駄にならないし、僕がこれに熱中できた事実は大切に財産になるんじゃないかと。

 

 

来年の教員採用試験までほぼ1年、自分としっかり向き合っていきたいと思った。(まとめ雑)