球体の丸さと回転

参考書にあった設定でスザンヌというデフォルトのサルをレンダリングすると、耳などがポリゴンのかくかくでeeveeレンダーの設定を変えても、立体が丸みを帯びなかった。ちょっと気分転換に、Googleのキーワード検索によりblenderで卵をレンダリングするときに、必要なことというネタがあり、そこではモディファイアでポリゴンを一時的に細かくしていた。円に近い形の多角形を一時的に作る機能になる。円周率は最近の教科書では3.14…ではなく3になっている。そちらのほうが数学的には方程式をレゴブロックのように組み立てやすい。もしこれが3.14…だったらそれを暗記することでメモリを使ってしまい、それがなぜそうなっているか、またどう活用するかまでイメージしにくくなっている。ポリゴンは一度に詳細を作るよりは、シンプルなデフォルメを作った方が、概要が分かりやすい。とはいえマスコットのドロイド君の頭のドーム状のパーツが卵の殻のように滑らかになるところを見てみたかった。

球体のポリゴンが実現することで、円形のオブジェクトにピッタリのテクスチャ―があれば、限りなく球体に近い多面体としてレンダリングすることができるようになる。そこでNASAが公開している、地球儀の画像テクスチャーを活用することにした。地球の場合は、地軸が23.4度右手方向に傾いている。Y軸を値を設定する。90度を23.4度、66.6度に分ける不思議な比率になっている。実のところ傾きを左右逆にしてレンダリングしなおすことになった。地球儀の自転は、軸に沿った角度入力で再現されたが、惑星が太陽の周りを公転する様子は、パスに沿った動きで再現しようとしたが、地軸が傾いていると、円形が歪んだ形になるようで、そこで透明なオブジェクトと紐づけて中で地軸をずらして回転させると上手く公転が再現された。またパスに沿った動きのアニメーションの速度はなかなか調べても出てこなかったが、紙飛行機をパスに沿って動かすアニメーションで紙飛行機が飛行する速度を変えるプロパティと同じということが明らかになった。プログラムの素は言語で、母国語の英語の日常的な動きがカギになっていることがしばしばある。

ビー玉はモーターが入っていないのに転がる運動をする。球体に近い形が再現されれば、モーターなどの軸に使われているベアリングの仕組みにも活用できる。これがカクカクのポリゴンになっていると転がる動きがイメージできず、車輪にはなりにくい。また自転と公転の関係性をネストすると、衛星になっている月の動きも再現できるようになった。月は地球の自転とは異なるスピードになっている。月自体も自転しているが、月の公転周期と自転周期は同じでいつも同じ面を向いているのが自然な動きのようだ、その一方で月の満ち欠けなどは、地球の自転と周期が異なっているために位置や角度が変わる。太陽系を再現するつもりはなかったので、自転の周期と公転の周期はややデフォルメしたところもあったが、影ができる仕組みは実に不思議な組み合わせになっている。以前は分からないことは辞書で引くことがも疑問の解消につながったが、今では英語の会話のシーンを想定しながらGoogleなどの検索エンジンを使って、インターネットで検索することが手がかりになっている。3Dの参考書はテンキーの操作がマウスでもできるようになり、3Dの回転体の造形はキーワードで検索するだけではそれを実際にやってみようとはしなかったかもしれない。断片的な情報を繋ぎ合わせる必要がある。

また、mineCraftにおいて猫のテクスチャーを名札を付けること変更するリソースパックを用意した。Redditとう海外の雑談をするSNSで、名前を変えてもテクスチャ―が変わらないのはどうしてか、mobとmobsの綴りが異なっているからだという会話があった。そこで、optifineでは、mobファイルに新しく作ったテクスチャーと、ソースコードを入れるとリソースパックとして機能することが明らかになった。mineCraftも言語に構成されている。それは英語圏では書き言葉だけでなく、話し言葉でもあるのかもしれない。日本語では、英語といえば決まり事を暗記するくらいしか学んでこなかったので、日々更新される言語としての接点は、google検索だった。キーワード検索によって結果だけを都合よく受け取っていたわけではなかった。Mobファイルは、Optifineのjarファイルや公式の1.15のバージョンにも無かったフォルダだった。mc_patcherというテクスチャーを置き換えるツールがあり、Optifineがそれらを統合して現在のプログラム構成になっている。現状調べてみると、randomというフォルダを作り、その中にrandom>entitiy>キャラクターの種類とするフォルダ階層と、mob>キャラクターの種類とする階層が2種類あってどちらにも名前を付けることで外見を変えるテクスチャーが有効になる。Optifineのradomのフォルダとentityに包んでリソースパックを作ることにした。どちらが正しいかは分からないが1.15の構成に合わせることにした。構成がシンプルになれば分かりやすいが、キャラクターが追加されればファイルの種類も増えることが予想される。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です