見出し画像

趣味のプログラミング(5)

「趣味のプログラミング(4)」の続きです。

2024年5月1日

 先日作成した『ロボットハンドの3D描画』を友人に見て頂いたところ、『動きがスムーズですね』との感想を頂き、なるほど、ロボットぽく無いのかもしれないと思い、リニアではない動きを2パターン考えてみました。
 まずは、スムーズではない動きのパターンです。まるで、潤滑油が効かなくなり錆びついたような動きになりました。

 もう一つは、各指の関節を並行で動かさず、ひと関節づつ動かしたパターンです。関節単位の動きとしては、元の動きに比べて早い動きになり、ダイナミックな感じとなっています。

2024年5月2日

 昨日に続き『ロボットハンドの3D描画』のスムーズではないパターンの3つ目です。ありがちな、細かいインターバルのある動きです。


 次の3DCG描画のテーマの候補を思いつきで、書き出してみます。

・木の成長過程の描画
 木の幹や枝、葉のモデル要素の大きさを動的に変化させる今までにないパターン。
・扇子の描画
 画像テスクチャのあるモデル要素を動かす描画を想定。
・ロボット・クラゲの描画
 半透明なボティから沢山の足が伸びて揺らいでいるイメージ。
・牧草地の描画
 牧草地の草が、風で揺らぐイメージ。
・ストランドビーストのようなものの描画
 オランダ人彫刻家テオ・ヤンセン氏の「ストランドビースト」のようなもの。 
・ロボット・オオトカゲの描画
 ロボットのオオトカゲが動く様子のイメージ。
・モデル要素の編集ツールの整備
 WindowsOS 環境で C# を使って整備していた(簡単な)モデル要素の編集ツールをMacOS環境用に移植し、面描画機能を追加。

 やはり、4月30日の振り返りでも書いたように、そろそろ、モデル要素の編集を楽に行えるよう編集ツールを整備するのが良さそうです。😖

2024年5月3日

 昨日に続き『ロボットハンドの3D描画』のスムーズではないパターンの4つ目です。各指の関節を並行で動かさず、先端側から、ひと関節づつ動かしたパターンです。(第2パターンが、根元側から、ひと関節づつ動かしたパターンで、今回は逆のパターン)


・『ストランドビーストのようなものの描画』について
 次の参考サイトを見つけて、備忘録。
 構造的には、これまでの『ロボットアーム』『2足歩行ロボット』『ロボットハンド』のような関節点の木構造で実現できたものと違い、ネットワーク構造となっている。

・扇子の描画について
 使用するテクスチャは、次の画像を想定、上手くレイアウトできるかどうか…😐

某所の風景画像

・モデル要素の編集ツールの整備について
 まずは、WindowsOS 環境で C# を使って整備していたモデル要素の編集ツールの機能を整理した上で、MacOS環境で実現させる機能を整理していきたい。

2024年5月4日

 前述の参考サイト『ストランドビーストの作り方』を読み、拘束条件のある物理的シミュレーションの数学的な解決方法について考え行き詰まっていたとき、『3DCGプログラミングは、数学的な活動か? IT 活動か?』疑問が湧いたので、試しに生成 AI に訊ねてみました。その内容を次の記事に掲載しました。

2024年5月5日

・『ストランドビーストのようなものの描画』について
 
前述の参考サイト『ストランドビーストの作り方』に掲載されていた 2D 図形を参考にして、各要素の 2D 座標算出手順を、スケッチ用紙へメモ書き。

ストランドビーストの各要素の 2D 座標算出手順のメモ

2024年5月6日

・『ストランドビーストのようなものの描画』について
 
一昨日から、『ストランドビーストのようなものの描画』にトライし始めている状況になっています。まずはダメ元で、『2足歩行ロボットの描画』『ロボットハンドの描画』と同じように JointTree オブジェクトの木構造モデルを前提に実装を進めようとしましたが、あっけなく壁にぶち当たってしまいました。
 実装できたのは、最初の一つのパーツ(モデル要素)の描画のみで、そこから次のパーツの描画へ進められていません。

最初の一つのパーツの描画のみ

 現時点においての壁は、パーツとパーツを接続する関節点(JointTree オブジェクト)に与える角度の算出です。
 そもそも、ネットワーク構造になっているものを、JointTree オブジェクトの木構造モデルに実装することが可能かという点については、モデル要素の閉路的な接続を行わなければ、実装は可能と考えています。
 昨日の時点で、各要素の2D座標の算出手順を整理していましたが、実際に算出しなければならないのは、関節点(JointTree オブジェクト)に与える角度となるため、さらに算出手順を掘り下げる必要があります。😣

関節点(JointTree オブジェクト)に与える角度

2024年5月7日

・『ストランドビーストのようなものの描画』について
 昨日の行き詰まりから、一日たった現在、『ストランドビースト』の描画に、関節点(JointTreeオブジェクト)による木構造は、適切でないという思いに至りました。
 座標算出が優先される描画で、関節点による木構造が適さないなら、また、別のアプローチで描画方法を確立する必要があります。しばらくは、座標算出が優先される観点から、適した描画方法がないか、調査、検討してみたいと思います。😔

2024年5月8日

 平日は、『ストランドビースト』のような重たいテーマを避けて、軽いテーマに取り組みたいと思います。😌
・牧草地の描画

 牧草地の草が、風で揺らぐイメージを描画するために、まずは単純に草を並べてみました。

単純に草を並べたイメージ

2024年5月9日

・牧草地の描画
 配置と配色を変えて、一律同じ揺らぎで動画を収録。

2024年5月10日

・牧草地の描画
 草の配色を変えて、天と地に色付けし、一律同じ揺らぎで動画を収録。

2024年5月11日

 『趣味のプログラミング』で作成した3DCG作品、作品といっても試作品レベルですが、まとめてチェックできるようにするためには、どうするのがいいのかを検討しています。
・案1
 noteに『趣味のプログラミング3DCGギャラリー』を設ける。
・案2
 ほぼ動画となるので、Youtube のチャンネルにて公開する。

2024年5月12日

 昨日、今日は、土日で休日でしたが、色々と予定があり、『ストランドビースト』に着手できていません。
 3DCG 試作品をまとめてチェックできるようにする方法は、note でまとめる方向で考えています。あくまでも、趣味のプログラミングの過程での試作品としての振り返りのためで、闇雲に不特定多数の方に『どうでしょう?!』なんて、お披露目するような感じではないということに落ち着きました。

・牧草地の描画
 昨日までは、一つの草のモデル要素を30×20個コピーして配色し、一律同じ揺らぎとしていましたが、今回は、モデル要素を30×20個生成して配置し、それぞれ異なる揺らぎで動画を収録してみました。

2024年5月13日

・牧草地の描画
 モデル要素を30×20個生成して配置し、それぞれ異なる揺らぎに、波状の揺らぎを加えてみました。少しは、牧草地に風が走る雰囲気が出せているでしょうか😅

 草のモデル要素を40×25個に増やしてみましたが、描画速度が、15FPSから9FPSへ落ちてしまいました。残念😔

2024年5月14日

・ストランドビーストのようなものの描画
 
何かしら、簡単に描画する方法は無いか、頭の中でイメージしてみていますが、なかなか、解決案が浮かびません。

・牧草地の描画
 見た目のらしさは置いて、なんとか広い牧草地の描画性能を上げる方法は無いか、考えていますが、こちらもなかなか、いいアイデアが浮かびません。新しい Apple シリコンの Mac mini を買うしか無いのか…😅

・扇子の描画
 「ストランドビースト」の描画について、早々に解決案が浮かばないので、牧草地の次は、比較的軽そうな扇子の描画になりそう。

2024年5月15日

 趣味のプログラミングの活動なし。

2024年5月16日

 「牧草地の描画」を友人に見てもらったところ、ステレオグラム化したらどうか?とリクエストがあったので、(試行錯誤して)あまり手をかけず、それらしく試作してみました。表示サイズが大きいと立体視が難しいと思います。

2024年5月17日

 趣味のプログラミングの活動なし。

2024年5月18日

 ステレオグラムについて、改めてWikiにて確認。2枚の画像を用いるものと、1枚の画像を用いるものがある。一昨日の試作品は、2枚の画像を用いるパターンを一つの画像の中に描画したものになります。😣

2024年5月19日

「扇子の描画」のための頂点座標をMacのNumbersを使って算出中。

「扇子の描画」のための頂点座標の算出中

2024年5月20日

 「扇子の描画」の「扇面」のモデル試作中。
 どうやら、イメージが逆さまだし、幅も薄い。
 座標算出の見直しですね。😔

「扇子の描画」の「扇面」のモデル試作中(1)

 座標算出を見直して「扇面」の実装コードを修正。
 テクスチャーのイメージは、元のイメージに比べ明るさが下がっています。どこかで、調整できるのか調べてみます。 

「扇子の描画」の「扇面」のモデル試作中(2)
元のイメージ(再掲)

 本家サイトにて、テクスチャーのコントラストの変更方法を探して見ようとトライしましたが、なかなかピッタリ検索できそうに無いので、Google Gemini に訊ねたら、次の3つの方法を紹介してくれました。
 方法 1: シェーダーを使用する
 方法 2: レンダーパイプラインステートを使用する
 方法 3: CPU でテクスチャデータを変更する
いずれ、気が向いたらトライしてみようと思います。

2024年5月21日

 「扇子の描画」の「扇面」だけで、閉じて開く描画を実装。
 イメージ通りと言えば、イメージ通りですが、パッとしません。😣

2024年5月22日

 某所の風景イメージでの「扇子の描画」がパッとしないので、庭園のイメージに変えて大きくしてみました。

 ついでに4個並べて描画してみました。

 パッとしない原因が、扇面のイメージによるところが大きいと思いますが、基本的に2次元イメージでしかなく、3DCGの作品とはなりませんね…😞

2024年5月23日

 「扇子の描画」については、そもそも三次元としての要素がなく、実装後に意外な発見もなく、消化不良の状態です。
 この場合の反省点は、なんだったんでしょうか。まぁ、とにかく思いつきでもトライしてみることに意義があるとは思っていますので、ネガティブな反省はしないでおこうと思います。ちなみに「牧草地の描画」については、実装前のイメージより意外性があり、得られるものがあったと感じられました。
 次は、「ストランドビースト」に行かずに、軽めの「木の成長過程の描画」に挑戦してみようと思います。「木の成長過程の描画」では、JointTreeオブジェクトを用いた「枝のモデル要素」の接続で、「枝のモデル要素」自体の長さを変化させるパターンを想定しています。

2024年5月24日

 「木の成長過程の描画」の描画イメージ検討。
 まずは、幹や枝となる8角錐のモデル要素の実装から…😐

2024年5月25日

 趣味のプログラミングの活動なし。

2024年5月26日

「木の成長過程の描画」の木のモデルの最初の試作。
 実物の木を観察していないので、木らしい枝の付き方が認識できていないです。木の種類によって特徴が異なると思いますが、もう少し、木らしいモデルを目指します。😆

木のモデルの最初の試作

2024年5月27日

「木の成長過程の描画」の木のモデルの試作の第2版。枝が増えました。😆

木のモデルの試作の第2版

2024年5月28日

「木の成長過程の描画」の「成長過程」の動きの実装を検討中。

2024年5月29日

「木の成長過程の描画」の「成長過程」の動きの実装を試作中。

 この動画は、縦長だったためにショート動画として扱われてしまいました。😣

2024年5月30日

「木の成長過程の描画」の「成長過程」の動きの実装を試作中。

2024年5月31日

「木の成長過程の描画」の「成長過程」の動きの実装を試作。

 一旦、「成長過程」の動きは一区切りとして、枝つきを見直し予定です。


続きは、次のNote に掲載します。

この記事が気に入ったらサポートをしてみませんか?