「サマーウォーズの OZ を Unity で再現しました」開発日記

サマーウォーズの OZ を Unity で再現しました

先日、動画をあげました。
題名の通り、 OZ の世界を Unity で再現しました。
作ったものは Web 上で公開していて、 OZ の世界を誰でも自由に飛び回れるようになっています。
自分で言うのもなんですが、なかなかのクオリティで再現できました。
ブラウザ上で手軽に体験してみて下さい。

 

http://shogonir.com/unity/ozu/shogonir.com

 

f:id:shogonir:20151215163200j:plain

 

※Unity Web Player が必要になります
※Fire Fox や Opera 等のブラウザでアクセスして下さい (Chrome は非対応)

 

 

 

開発日記

開発期間は約一か月(2015/11/07 - 2015/12/11)でした。
開発中に撮ったスクショがあるので振り返りたいと思います。

 

 

2015/11/07

あれ? OZ 再現出来るんじゃないかな、と思い立つ。
Python で .obj (3Dモデルの拡張子の一つ) を出力してみた。
最初に作ったのはルビーの 3Dモデル。

f:id:shogonir:20151215143613j:plain

 

 

2015/11/08

昔の自転車についていそうなラッパを作成しました。
水色の球体は Unity のプリミティブの Sphere ではありません。
ブラウザ上で動作させたかったのでメッシュの少ない球体にしました。

f:id:shogonir:20151215144151j:plain

 

 

2015/11/10

OZ の中心にいる物体 (Core と呼ぶことにした) を作成しました。
歯の部分も Unity の Cylinder よりメッシュを節約したモデルを使いました。
この時点では目に Unity の Sphere にテクスチャを貼っています。
鼻の部分は Python に出力させましたが、違う方法で作るべきでした。

f:id:shogonir:20151215144459j:plain

とんがり帽子のモデル (Core の周囲を漂う) を作成しました。
とんがり帽子の黄色い部分を作るのに、ラッパの白い部分を生成したスクリプト (horn.py) を使いまわしました。

f:id:shogonir:20151215144913j:plain

 

 

2015/11/11

奥の赤と黒のベルトを作成した。
ベルトは長方形のモデルを20個ほど円形に配置して再現しました。
色の並びは乱数で起動するたびに決定しています。

f:id:shogonir:20151215145212j:plain

 

 

2015/11/12

OZ の守り主、クジラの John の 3Dモデルを作成しました。
このモデルは Sculptris という 3Dモデル生成ソフトを使いました。
Sculptris は粘土をこねるように 3Dモデルを編集できるソフトです。
僕のような初心者にはピッタリなソフトウェアでした。

f:id:shogonir:20151215145443j:plain

色塗りも同じ Sculptris で行いました。
色塗りの時に Resolution が選択できます、ブラウザで動かすことを気にして 256 を選びましたが、512 を選べば良かったと後悔しました。

f:id:shogonir:20151215145723j:plain

 

 

2015/11/13

John の相方、 Yoko のテクスチャを作って Unity に取り込みました。

f:id:shogonir:20151215145900j:plain

さらに Core の上の、翼が生えているオブジェクト (Bird と呼ぶことにしました) の本体を作成しました。(horn.py を再活用)

f:id:shogonir:20151215150219j:plain

Bird と Core の間の水滴のような形の 3Dモデルを作成しました。(horn.py を再活用)

f:id:shogonir:20151215150321j:plain

 

 

2015/11/14

ルビーの上の穴が開いたオブジェクト (Holeman と呼ぶことにした) を作成しました。
まだ穴は開いていません。
六芒星のモデルも作成しました。
六芒星って二つのメッシュで表現できることを閃いたときは、少し気分が良かったです。(表と裏で結局 4枚のメッシュになりました)
Holeman も Python に出力させましたが、 Blender を使うべきだったと思います。

f:id:shogonir:20151215150627j:plain

 

 

2015/11/15

Core の周りにある本棚を作り始めました。
Unity の Cube を円形に配置したあたりで力尽きました。

f:id:shogonir:20151215150939j:plain

 

 

2015/11/16

随分本棚らしくなりました。
本はまだ並んでいません。

f:id:shogonir:20151215151026j:plain

 

 

2015/11/17

Shader をいじり始める。
輪郭の線 (Outline) を細くしたら、急にそれっぽくなりました。
さらに雲 (Cloud) と青い円 (Moon と呼びます (迷ネーミング)) を作成しました。
Cloud と Moon は 2D Sprite で画像を読み込むことで作成しました。

f:id:shogonir:20151215151540j:plain

 

 

2015/11/20

Holeman の上の蕾のようなモデル (Twisted) を作成しました。

f:id:shogonir:20151215151713j:plain

f:id:shogonir:20151215151725j:plain

 

 

2015/11/21

John と Yoko の王冠を作成しました。
結構よくできて個人的に気に入っています。
Holeman の穴と目も完成しています。

f:id:shogonir:20151215151858j:plain

f:id:shogonir:20151215151910j:plain

 

 

2015/11/22

Unity Web Player をブラウザの画面いっぱいに表示できるようにしました。
このテクニックに関しては別で記事にしようと思います。
本棚の本も試しに作成しています。
本はこの段階では Unity の Cube を使っていますが、のちに変更します。

f:id:shogonir:20151215152133p:plain

 

 

2015/12/01

少しやる気が底をついて、期間があきました。
ついに Bird に翼が生えました。
翼のオブジェクトは、大体の形を Python に出力させて、最後に Blender で手で形を整えました。
Holeman の耳も生えました。
さらに Core の下のオブジェクトの作成も始めました。

f:id:shogonir:20151215152533p:plain

 

 

2015/12/03

Core に角が生えました。
角は Core の本体のオブジェクトとは別に作っています。
Core の本体に張り付く六角形のモデルを作成し、テキストエディタで角の先端の点の座標を調整して作成しました。
※全体の 7割から 8割が完成しているため、このあたりから作品を眺めてニヤニヤする時間が増え、作業が進まなくなってきています

f:id:shogonir:20151215152902p:plain

 

 

2015/12/05

青い気流のようなもの (Flow と呼ぶことにした) を追加しました。
絵を描くのは苦手ですが、 Flow は半透明なので大丈夫ですよね。
Flow も 2D Sprite で、GIMP で描きました。

f:id:shogonir:20151215153106p:plain

 

 

2015/12/12

こまごましたオブジェクトを作成して完成

f:id:shogonir:20151215153239j:plain

 

 

作成してみて

非常に楽しかったです。

サマーウォーズは 2009年に公開された映画ですが、当時ぼくは OZ の映像に未来を感じてワクワクしたのを覚えています。
6年前の映画作成時は、おそらく Blender のようなソフトで長い時間をかけて映像を書きだしたのだろうと思います。
当時の近未来を現在、僕が作成したせいでかなりクオリティは落ちたかもしれませんが、Unity で再現しました。
Unity はリアルタイムレンダリングゲームエンジンですので、映画とはまた違い、いろいろな角度から OZ の眺めることが出来ます。
また誰かが、サマーウォーズを見て感じた感動などを思い出してくれたら、嬉しく思います。

また、動画や Twitter でこのファンアートに関する意見や感想を聞かせて頂けると幸いです。
気が向いたらよろしくお願いいたします。

https://twitter.com/shogonir

 

Special thanks

サマーウォーズ
Unity
Blender
Python
Sculptris
GIMP
Visual Studio