表示する3Dモデリングとアニメーションジオラマ作り自動車を作る最近のコメントアーカイブ2018年11月2018年3月2017年9月2017年8月2017年7月2017年6月2017年5月2017年4月2017年3月2017年2月2017年1月2016年12月2016年11月2016年10月2016年9月2016年8月2016年7月2016年6月2016年5月クリエイティブまさ工学系の大学を中退し、全く別の職種に就いている日曜プログラマー。三児の父として子どものプログラミング教育に興味を持ち、多くの人が楽しくプログラミングの世界に触れる方法を模索している。自動車を作る自動車を作る空間に「3Dモデル」を描いてみましょう。今回は比較的簡単な「自動車」をクラフトします。「自動車」を選んだ理由は、すべてのパーツ(parts)を直方体で作ることができるからです。値と16進数を参照に、自分の好きな色の自動車を作ってみましょう。図2-4-1プログラミングの前に、自動車の設計図を描きます。エクセルのセルを正方形にしてから、作りたい車の形をイメージしてセルに色を付けていきます。ここで重要なのは、クラフトするための「原点(Origin)」をどこにするかということです。今回はクラフトしやすいように、車の右前を「X-Z平面」の原点に決めました。Y軸については、地面から「2」上がったところに車をクラフトするように決めました。図2-4-2図2-4-2が車体のみの設計図です。255)」でクラフトします。値と16進数を見て、自分の好きな色に変更可能です。図2-4-3図2-4-3を参照に車体のプログラムを作成して下さい。設計図をよく見て、一段ずつ車体を作っていきます。1)の直方体で構成されています。よって「直方体ブロック」の設定値を図2-4-3の赤枠、緑枠の通りに入力してください。同様に、2段目から9段目まで「直方体ブロック」の値を決めていきます。完成した図2-4-3のプログラムを実行してみましょう。図2-4-4実行結果です。ツートンカラーの車体がクラフトできました。図2-4-5次にタイヤを作成します。255)で作成します。図2-4-7タイヤをうまくクラフトできました。図2-4-8サイドミラー、ライト、方向指示器、フロントパネル、ナンバープレートをまとめて作成してしまいましょう。図2-4-9設計図より色と位置、サイズを決めて、直方体ブロックを設置していきます。図2-4-10かなり自動車らしくなっていました。後はウインドウを付ければ完成です。一段ずつ作成していきます。図2-4-11ウインドウの1段目の設計図です。図2-4-124つの直方体でウインドウを作成します。図2-4-13ウインドウの1段目ができました。図2-4-14ウインドウの2段目の設計図です。図2-4-152段目を設置するプログラムです。図2-4-16完成に近づいてきました。図2-4-17自動車の完成図です。図2-4-18最後にウインドウの3段目を設置します。図2-4-19自動車が完成しました。角度を変えて、上下左右から覗き込んで、細部がうまくクラフトできているか確認して下さい。自動車を作るプログラムが完成しましたが、このプログラムは問題点がいくつかあります。1自動車を作る位置を簡単に変更できない。2自動車の大きさを変更できない。3自動車の向きを変更できない。これらの問題を解決するため、プログラムを改造します。「リスト」という仕組みを利用して、プログラムを書き換えます。図2-4-20図2-4-20は、先ほど作成した「車体作成」プログラムです。「車体(下)」のデータとしてリスト化したい部分を赤丸で囲みました。データの数は15個あります。車体の下側)」を新しく作成して、「車体作成」プログラムの赤丸のデータを追加していきます。2)のリストができました。図2-4-22図2-4-22がリスト「lower_body」を読み取って、ブロックを置くプログラムです。X座標」を表す変数です。Y座標」を表す変数です。Z座標」を表す変数です。「モデリングの原点」を表す変数で、この点を基準にモデルを作成していきます。timesXは「X方向の拡大倍率」です。timesYは「Y方向の拡大倍率」です。timesZは「Z方向の拡大倍率」です。width)」を表す変数です。depth)」を表す変数です。height)」を表す変数です。「カウンター変数」です。リスト「lower_body」の1番、2番、3番は色のデータなので、「色指定ブロック」に代入します。4番から9番の数値が、車体の一番下のデータ、10番から15番が2段目のデータになります。これらのデータを「直方体ブロック」に代入するように「繰り返し処理」を使ってプログラミングします。X方向の拡大倍率を表す変数です。初期値「1」を増やしてやることで、X方向に拡大できます。Y方向、Z方向の拡大倍率を表します。図2-4-23プログラムの実行結果です。目的通りに「車体(下)」の部分が作成されました。このまま作業を続けていくと、プログラムが縦に長くなりすぎてしまい、プログラミングが読みにくくなります。そこで「サブルーチン」という仕組みを使って、プログラムを読みやすくしてみましょう。「サブルーチン」とはプログラムの中に繰り返し現れる部分を切り離して、プログラムの可読性や保守性をよくするための仕組みです。サブルーチンは、「メインルーチン」から呼び出されて実行されます。実際に「車体(下)作成プログラム」をサブルーチン化しましょう。図2-4-24まずプログラムのサブルーチンにしたい部分を切り離します。図2-4-24を参照に。する」ブロックから下を切り離します。受け取ったとき」ブロックを頭に乗せてやります。最後に、名前「メッセージ1」をサブルーチンの名前「parts1」に変更して、サブルーチンは完成です。図2-4-25「▼」の部分をクリックして「新しいメッセージ」を選ぶと、名前を付け替えることができます。メッセージの名前は自由に決めてかまいませんが、用途がイメージできる名前が望ましいです。parts)であることから「parts1」と名付けました。送って待つ」を合体して作成します。メインルーチンを実行して、「車体(下)」の部分がクラフトできることを確認しておきましょう。自動車プログラムを完成させるこの後の操作は、「車体(下)」を作成した方法と同じです。1車体のパーツのデータをリスト化する2パーツ作成のサブルーチンを作成する。(サブルーチン名は「parts_number」)3メインルーチンからサブルーチンを呼び出せるようにする(データを「リスト化」してサブルーチンを作る作業は同じことの繰り返しです。面倒なだけですから、ダウンロードしたサンプルプログラムを利用してもかまいません。作業の手順だけは頭に入れて置くようにしてください。プログラムの検証まで飛ぶ)車体(上)の作成まず「車体(上)」を作りましょう。図2-4-27「車体(上)」のデータとしてリスト化したい部分を青丸で囲みました。データの数は45個あります。車体の上側)」を作成します。図2-4-29図2-4-29がリスト「upper_body」を読み込んでブロックを置くプログラムです。サブルーチン「parts1」を「複製」して、読み込むリスト名を「upper_body」に変更します(10箇所)。サブルーチン名は「parts2」にしました。送って待つ」ブロックを追加します。メインルーチンを実行して、「車体(上)」が作成されることを確認して下さい。以下はすべて同じ手順を繰り返します。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。