|
|
||||||||||||||
|
|
|
|
|
|
||||||||||
トコちゃんの修行日誌 2026年7月 |
|
お仕事中デスクトップ
|
7月16日 プロトタイプその2完了5月22日のプロトタイプ完了から2ヶ月弱、やっと鳥(動物)、昆虫、花の処理を追加できました。 山上湖に魚280尾、鳥60羽、昆虫90匹、花110本、全部で540体を配置し、動作は若干重くなり始めています。 生き物の移動処理は見えないとこでも実行し、植物は風に揺れる処理、動物との衝突処理を見えている範囲でしています。その他、昆虫は花の蜜や枝先などに留まるよう、これも見えていないところも実行してみています。 ECS(エンティティ・コンポーネント・システム)のおかげでキャッシュヒット(メモリアクセス)が良いのだろうか、処理速度の問題は今のところありません。 Burstコンパイル、パラレルJob化すれば、100倍ぐらい高速化するかもしれないので、1000体ー2000体ぐらいまで可能でしょう。 十分ですね。 すでに幾つか検討してはいるのですが、14日にBlender 5.2 LTS が正式リリースされているので、しばらくプログラムをお休みして、CGでも楽しんでみようかと思っています。 技術的な検討点としては ・地形
地形表示のマーチングキュウブは四面体分割によるマーチングキューブですが、AIによると立方体のマーチングキュウブとくらべ概ね5〜6倍程度の要素チェックだそうなのでリアルタイム処理向きでは無いようです。さらに若干傾けて2:√3:√3の四面体するためにシアー変換までしていて、結構重い処理になっています。 ・水の流れ
GPUによる流れの処理ですが、水深が深くなると圧縮されて水面が下がってしまいます。水量が増えたとき水の密度を調整することで対処はしたのですが、この問題は根が深く解決しそうにありません。調整すると水面がおおきく波立ってしまいます。シミュレーションなので制御が難しい。粒子を細かくして淵で水が渦を巻くような表現をしたいのですが、BlenderのFluidほど粒子を細かくしたらリアルタイム処理は厳しくなります。 ・データ ボクセルデータが膨大なので、マップ全部をボクセルデータにするのは現実的ではありません。洞窟のようなへこんだ場所が無ければ高さマップ(Height Map)で済ませて、橋や洞窟を配置した段階で、特定の場所のみボクセルデータによるエディットを可能にするなど工夫が必要です。 ・生物 幸い生物については問題なさそうです。手を掛ければ掛けただけ良くなるでしょう。 ・釣り シミュレーションの不安定な問題はあるものの、なんとかなりそう。 内容的な検討点としては、釣り以外は何も決まっていないので成り行きですね。 ガチョウの群れを追い込むシープドッグ遊びが楽しかったり、歩くとバッタが一斉にジャンプして逃げるのもおもしろい。 7月13日 ワースト記録2025年11月27日 1時間05分57秒75献血直後 2026年5月28日 1時間03分59秒78 帯状疱疹予防接種副反応、坐骨神経痛弱 風中、気温26度 2026年7月13日 1時間03分42秒36 気温24度、湿度73% 7月7日 モンシロチョウ留まる
風に揺れるチューリップにモンシロチョウを留まらせることができました。 これ、結構大変でした。 昆虫の数、花の数が増えると、処理は掛け合わせた数分増えていきます。花の位置も風に揺れるたびに計算しなくてはなりません。まだプロトタイプなのでメインスレッド処理ですが、バーストコンパイル、パラレルジョブの出番ですね。いまのところECSで十分早いですが。 同様の方法で、木の枝に留まる鳥、木を駆け上るリス、枝をつたって飛び回るサル、なんかも作ろうとおもえばできそうです。 7月3日 チューリップ風にゆれる
風の処理を入れてみました。これだけで、55fps(1秒の描画数)だったのが45fpsぐらいまで落ちます。花びら一枚一枚、風の影響を計算しているので、何千本も表示すると無理ですね。 もっと拡大して、画面に蝶と花数本になってから。詳細表示に切り替えればいいかもしれない。おしべめしべまで作りこんでいるので、このぐらいのサイズだと詳細表示の意味がありません。 あと影が無かったのに気が付いて入れてみました。カメラから遠すぎて表示されていませんでした。 |