|
|
||||||||||||||
|
|
|
|
|
|
||||||||||
トコちゃんの修行日誌 2026年7月 |
|
お仕事中デスクトップ
|
7月30日 IKインバースキネマティクス (IK)、アニメーションを事前に用意するのではなく、手などを目標の位置と向きに合わせるためにボーンを調整する機能です。竿を握らせるような場合に便利です。 プロトタイプで位置と方向に多少ズレがありました。気にしていなかったのですが、じっさいに位置合わせしようとしたら苦労しました。一週間試行錯誤。 竿の位置、方向を計算し手の位置、方向をIKしていました。手の方向を竿の向きに合わせていても、位置を竿のグリップに移動すると、腕の骨の向きが変わるので若干手の方向も変わってしまいます。AIによると、それぞれのWeightを調整することで解決するかもしれません。 作成したアニメーション前上後左右のポーズから竿の位置をドーム状に計算し、IKで設定していました。これを逆に現在のポーズから手の位置を取得し、竿の位置を設定することにして、手の方向だけIKで設定することにして解決しました。1フレーム竿の位置が遅れているはずなのですが、竿の根元なので移動距離が短く気になりません。アニメーションは肩や腕のボーンを元に計算するので、動きが自然で無理な動きが少ないかとも思います。
左手はIKでコントロールしていないので若干ずれたり、後に振りかぶると竿が顔をつらぬいたりしますが、とりあえず右手がしっかり竿をグリップしているので、あまり気にはなりません。 他にも問題は山積みなので先に進みます。 ローポリゴンの動物作成以前にBlenderで動物を作成しました。Furを使用しているので、そのままリアルタイムで動かすことはできません。そこでローポリゴンの動物を作ってみることにしました。 毛皮の外側にローポリゴンのシェルを作成し、そのUVマップテクスチャに毛皮のレンダリング画像をベイク出来たら簡単かと調べてみましたが、難しいみたいです。Furはそのままではベイクできない。ポリゴンに変換する必要があるようです。
テストで動物の周りにローポリゴンの球を配置し、Ray Portalを使用してレンダリングした画像です。これをベイクすれば簡単に出来そうなんですが、出来ないようです。Ray Portal がBSDF(光の反射・屈折・散乱)で色を取り出せないからだそうです。 でAIに相談したところ、正面、側面、上面など複数のレンダリング画像を作成し、手作業でTexture Projection Painting(投影ペイント)してテクスチャを作成することになりそうです。 結構大変ですね。 7月27日 9kmランニング、ワースト記録2025年11月27日 1時間05分57秒75 7月24日 キャスティング
キャスティングのポーズ付けてみた。 これに左右の振りを加えて合成しています。 猫背、直ってませんね。 7月22日 ポーズ付けてみた
AIの生成画像を参考にポーズを付けてみた。 7月21日 プレイヤー修正
若干修正 7月17日 画像生成AI
画像生成AIにキャラクターを元気にしてもらいました。 左上元画像、右上Copilot 猫背の不健康な男の子が元気になりました。共通してサングラスは外すようですね。屋外で遊ぶのに必須なのに。
Copilotに続けてお願いしてみました。やっぱりサングラスは外すんですね。
時代を変えてみました。やっぱりサングラスは外すんですね。 プロンプト「3Dオープンワールドゲームの男の子のプレイヤーを作成しようと思います。元気に野原を駆け回ってるサングラスをしているプレイヤーの画像を作成してください。」
やれば出来るじゃん。画像生成、楽しい! 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ぐらいまで落ちます。花びら一枚一枚、風の影響を計算しているので、何千本も表示すると無理ですね。 もっと拡大して、画面に蝶と花数本になってから。詳細表示に切り替えればいいかもしれない。おしべめしべまで作りこんでいるので、このぐらいのサイズだと詳細表示の意味がありません。 あと影が無かったのに気が付いて入れてみました。カメラから遠すぎて表示されていませんでした。 |