バネの気持ち
こんにちは、俺です。
エンジニア(当時はマルチメディアのオーサリング中心に制作していました)で切磋琢磨していた時の話。
あるプロダクションに月給148500円で雇われておりました。
そこはSONYのPC1号機にゲームを下ろしていたり、日本は初めてUNIXマシンとC言語を持ち込んでいた制作プロダクションです。
社長含めて従業員は5名。エンジニアは俺だけです。師匠がいたんですけどその人は食えないと言って他の会社で働きながらそこの手伝いしておりました。
師匠は当時C言語のエンジニアとしても名だたる人でOSやBIOS、コンパイラもサクッと組んじゃう人でした。とても駆け出しの俺がかなう訳がなく、ソースの組み方や最適化の方法等、当時CPUのパワーもなく、RAMの小さい中で実行ファイルを如何に小さく最速で作るか?みたいな事を教えてもらっていました。
※ソースの組み方やアルゴリズムは教えてくれません。それは自分で覚えろと。あと英語のリファレンスを渡されて読んでおけって・・・ぁぅぁぅ
ある時、某大手電機メーカーの試作機でマルチメディア的なものを作りたいって依頼がありまして、社長含めて全員でどんなものを作るべきか?って話になったんです。
で、社長が導き出した企画が 画面内にあるオブジェクト(スタンプみたいなもの)を押して行くと、表示されたオブジェクト間で相互作用が起きてインタラクティブに動くようなものを作りたい!って言われまして・・・。
俺(苗字で呼ばれていました)さ、それできる?って言われて。
うーん。できないことは無いと思いますけど、アニメとか小さくなりますよ(i386sxとかで動かすので今みたいにデカいキャラを動かすことはできなかった)。
とりあえずやってみてよ。キャラはあいつ(アニメーター)が作るから。
えー、わかりました。
という感じで、プロトタイプ制作に入って行くわけです。
今でいうアジャイルっすね。
最初は簡単にスケートボードを作って画面内で動かします。
スケートボードをスタンプのように画面に貼ると、貼ったタイミングから重力が掛かり、画面の下部(床)に落ちます。
落ちただけではそのままなので、ドラックして左右に揺らしてボタン離すとその初速でスケートボードが走ります。壁にぶつかると止まる。
マウスを使って一つのスケートボードがアクションによって動作が変わるっていうのをサクッと作りました。
で、面白くないので、ここから自分もドット絵作ってバネ、タケコプター、プロペラ、何かをアニメのコマ作って動かしてみていました。
スケートボードが走っている間にスプリングを付けるとその場で跳ねます。
ドラッグで上に放り投げると放物線運動(左右に初速があった場合はその方向に)をするようなものを作っていましたが、凄く違和感があったんです。
物理の参考書持ってきて、初速ありの放物線運動の方程式入れて、動かしたんですけど、凄いスピードで動いてしまって、初速が悪いのか減速処理が悪いのかなんて感じでパラメーター変えながら色々試していたんですよね。
その時に当時ITの出版社の常務ってのが良く遊びに来ていて、俺がずっと作っているところを後ろで見てたんですよね。
常務:何か困ってんの?
俺 :いやぁ~何か上手く動かないんですよ。方程式は間違ってないんですけど・・・。
常務:・・・・
俺がずっとちまちまパラメーターを調整しているのを見て、半ギレで常務が衝撃的なコメント吐きました。
常務:あのさー!、俺くんはバネの気持ちが分かってないんだよっ!
【バネの気持ち!?はぁ!?】
(バネの気持ちってなんやねん!!!)
俺 :さすがにバネの気持ちは分かりませんね。無機物に友達いないので。
ほんとに言われた瞬間にこいつ何言ってんだ?と。バネの気持ちってなんだよと。無機物に気持ちがあるのかよと、八百万の神かよ・・・と。
常務:あのさー。ディズニーとかみたことあるでしょ。ディズニーってのはさー 蘊蓄蘊蓄(・・・頭煮えくり返っていたので、会話がほぼ頭に入っておりませんw)
社長もその光景に見るに見かねて間に入って仲裁に入りました。
もうね。こっちは一生懸命苦労してやってんだよ。バネの気持ちが分かったら苦労しねぇんだよと。教えるならちゃんと教えろよと。
若気の至りってのは怖いもので、その日1日モヤモヤして終わりました。
帰り際に社長に飲みに誘われまして、このバネの気持ちってのを説明してくれました。
バネってのは、力に押されて嫌だけど縮む。
で、抑えられていた力が無くなると、その溜めた力を使って空高く飛ぶ。
飛び出す力が無くなると初速が落ちて空中で止まったようになってから今後は重力によって引っ張られて元の地表に戻る。
物理方程式は真空中で作られているため空気抵抗が無い。そのため動きは滑らかにならない。ディズニーはその辺(物理法則)を踏まえた上で、そこにデフォルメを入れてキャラクターを動かすから感情移入しやすい。
正直に言うとディズニーのアニメは物理処理に基づいて作られてはいないがアニメーションとして物理法則を上手く取り入れている。
これがバネの気持ちだと。
・・・・そう言えや。
意味が分かれば早いもので、次の日にはこの空気抵抗値やアニメーションのデフォルメを入れてバネを作りました。
するとどうでしょう。
グググって押さえ付けられてバネがふるふる震えて、マウスボタンを離すとぴょーんと飛ぶ。空気抵抗によって放物線の頂点で止まり、その後重力と自重によって加速度を上げて地上に落ちる。その力でバネがまた縮んでぴょーんと跳ねる。
なんか凄くバネで遊ぶのが楽しくなりました。
細かな調整を行いました。後日、その常務が遊びに来ました。
で、自分なりにバネの気持ちを理解し、作られたバネを見て一言言ったんですよ。
常務:『俺くんもやっとバネの気持ちが分かるようになったか。』
俺 :「ええ、やっとわかりました。先日はすみませんでした。」
常務:『いいよいいよ。こういうのの繰り返しだからさ。クリエイティブに行こうな。』
俺も有機物の殻を破って、片足だけですが無機物の世界に足を踏み入れることができました。