特別企画:バーチャル3Dを作ろう
みんなの発表会 に戻る➡
「バーチャルリアリティ」略して「VR」、こういう言葉を聞いたことはありますか? 日本語だと仮装現実といい、バーチャルな3D画像を画面に映し出す技術の事をいいます。VRで作った画像をホームページに貼るととても目を引きますね。
自分でもやってみたい! という君のために、こっそり、バーチャル3Dの作り方を教えます。
(マイクラなどでもワールドという似た機能がありますが、ここでご紹介するのは、HTMLファイルを自力で用意する方法で、ホームページに埋め込んだりできるのが特徴です)
バーチャル「りおん」(のつもり)を作ってみよう。
〔保護者の方・指導者の方へ〕これを実装するには レンタルサーバー が必要です。 無料のサービスも沢山ありますが、うっかり課金することもありますので、お子さんが興味をもたれたら、できれば一緒にやってあげることをお勧めします。また、他の方に公開する場合は、なるべく、セキュリティー対策をしたサーバーという事を証明する、SSL認証 付きのアドレス (https・・・で始まる)を使うのが最近のマナーになっています。できればそこも手を貸してあげてください。
なお、オンラインストレージ(Googleドライブなど)ではうまくできません。「ホスティング機能」という、ホームページを投影する機能がないためです。
【その1】MagivaVoxel(マジカボクセル)で3D画像を描こう!
実は3D画像というのはとても描くのが大変!! 二次元の絵の1.5倍の手間?
いえ、実感として10倍ぐらい大変です!!
マジカボクセルは、あの「マイクラ」っていうゲームに出てくる物体や人物の様な、カクカクしたキャラを描くためのソフトです。このカクカクしたキャラだと、描く手間がとても省けるので、初心者の方にはオススメです。
今回は、マジカボクセルで「りおん」を描いてみました。描く方法はネットなどで調べてみてね。本も沢山でています。
書いたら、「OBJファイル」でエクスポートしてください。(エクスポート機能は、右下の「export」という文字を見つけてクリック!)
【その2】Blender(ブレンダー)でGLBファイルを作ろう!
ブレンダーは、最初開くと、立方体やらがなぜか入っている。これらを全て選択して消してしまおう!
ここに、さっき、マジカボクセルで作成、エクスポートしたOBJファイルを読み込もう! 読み込み方は、メニューから「import」という文字を探して「OBJ」を選択して行います。
読み込んだらすぐに、マッピングを行おう! これば表面の色や模様を付けることを指します。画面上の「Texture Paint」をクリックすると行えるよ!
(じつは、OBJファイルをエクスポートしたタイミングで、マテリアルファイルという、色や模様を記憶したファイルがこっそり出来ていて、この操作をすることで、マテリアルファイルと合体するというわけです。)
最後に原点を合わせる。十字線の真ん中に立つようにキャラを動かそう。
右下に矢印が見えるね! ここを触ることで移動するよ!
最後にエクスポートする。「EXPORT」という文字をクリックして、「GLTF・・・」というメニューを選ぶとGLBファイルが作られます。このファイルは、形と色がセットになった情報をもっているよ。
【その3】サーバーにGLBファイルと背景のJPG画像をアップし、HTMLファイルを書こう!
背景画像はできればパノラマ撮影や全天球画像が良い。スマートフォンなどでも撮影できるものがあるので用意して、jpg画像として準備しよう。ここでは中央公園のパノラマ写真を用意したよ。そして、さきほどのリオンと一緒に、サーバーの同じフォルダ内にアップしよう!
3Dのファイルと、背景画像を入れたフォルダ内で、更にHTMLファイルを作り、以下のコードを貼り付けよう。君の作ったGLBファイルや、背景画像を使う場合は、下の方にある赤い文字を使うファイル名に修正してね!(大文字と小文字は正確に!!)
<!DOCTYPE html>
<html>
<head>
<title>atapra</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://aframe.io/releases/1.0.4/aframe.min.js"></script>
<script src="https://cdn.rawgit.com/tizzle/aframe-orbit-controls-component/master/dist/aframe-orbit-controls-component.min.js"></script>
</head>
<body>
<a-scene>
<a-entity
id="camera"
camera
position="0 0 5"
orbit-controls="
autoRotate: true;
autoRotateSpeed:0.2;
target: #target;
enableDamping: true;
dampingFactor: 0.25;
rotateSpeed:0.14;
minDistance:3;
maxDistance:15;"
mouse-cursor="">
</a-entity>
<a-plane id="target"
width="0.1" height="0.1" position="0 0 0" rotation="0 0 0" ></a-plane>
<a-gltf-model
animation="property: object3D.position.y;
to: 0.5;
dir: alternate;
dur: 3000;
loop: true"
src="Rion.glb" position="0 0 0"></a-gltf-model>
<a-sky src="kouen.JPG" radius="60"></a-sky>
</a-scene>
</body>
</html>
HTMLファイルのURLをブラウザーに入れると、3Dが表示されるはず!!!
【お家の方、指導者の方へ】このHTMLファイルは、「A-Frame」というオープンソースのライブラリを用いています。
HTMLコードの冒頭、
<script src="https://afr・・・・・
の部分で、ライブラリを読み込んでいます。2行ありますが、1つめはA-frame本体、2つめはオービットという、ユーザーが3Dを操作するためのライブラリです。
3Dは、物体の配置、照明の配置、カメラの配置、観察者の視線の設定、と基本この4つが必要で大変なのですがこのライブラリを使う事で、とても実装が簡単になります。うまく行くといいのですが・・・。(私自身も、自宅のPCでしかやった事がないので、環境によってはうまく行かないかもしれません。文献はいろいろありますので、お手数ですが、その場合は、なんとか自助努力でご調査お願いします)
こちら に比較的くわしく解説がありますので、宜しければご参照ください。
みんなの発表会 に戻る➡