Toucanバーチャル博物館
VRML図鑑 3DCG 展示室   開発日誌 お問い合わせ

トコちゃんの修行日誌 2026年1月

お仕事中デスクトップ

お仕事中デスクトップ

1月27日 魚表示

魚表示

魚のブレンドアニメーション用のシェーダやLODプレハブなどの作成にてまどりましたが、魚表示できました。

3パターンのループでアニメーションします。少ないようですが意外と大丈夫です。途中を滑らかにブレンドするので遠目にはこれで十分です。ファミコン時代のスプライトの歩くアニメーションなども3パターンが多いですね。

鳥などは様々な10のアクション*5段階LODで50個のプレハブが必要になります。さらに3パターンのメッシュなので150個のメッシュが必要です。魚は泳ぐアクションだけですが、それでも15個のメッシュに5個のプレハブ。

ECS用の移動処理は、前に作ったプログラムをベースにしつつ、必要な部分だけを抜き出して、ゼロからサブセット版として設計し直すことにしました。

GrassSystem,ForestSystemに続けて、Entityで生物を管理するプログラムをしようと思います。 生物は動物、基本的な地上の動物、鳥のように飛んだり、水中の生き物、を制御して、動きの特性から昆虫、魚を特別に用意しようと思います。 植物も考えていますがForestSystemに追加がよいでしょうか。 目的地に向かう処理で移動し、その目的地を制御するSteering Behaviorsで群れなどの動きを付けます。地上水中の物理計算も含めたいと思います。 プロトタイプとして、最低限の機能で枠組みを作成お願いします。

こんな感じでGPT-5.1-Codex-Maxにお願いしたら、200行ぐらいで作ってくれました。それに表示更新を追加して400行です。

表示が出来ていると、後の作業がはかどります。以前だったらここまで1週間はかかっていただろうに、GPTが数秒でプログラムしてくれるのは、ほんとにありがたい。動きが変ですが、すでに泳いでいます。

1月25日 球クリッピング

球クリッピング

クリッピング方法を円柱の他に、球と直方体を用意してテストしているのですが、ひさしぶりに球クリッピングをみたら、これもゲームっぽくて良いですね。 

1月23日 フェイドアウト

木のフェイドアウト

クリッピング領域外に出る木などをフェードイン、フェイドアウトさせようと思ったのですが、透明度を変えるだけの処理でつまづきました。

木のエンティティにフェイドの値のエンティティを付与するだけなのですが、AI任せで色々と試すがうまくいかない。草の描画で草の色、草の生えている方向は、同じ方法でできているので間違っていないはず。AIも首をかしげること、まる二日。

やっと解決しました。

木のモデルがサブメッシュを使用していて、作成されるエンティティが親エンティティに加えてサブメッシュ毎にエンティティが作成されていました。

親エンティティは描画しないのに、そこにフェイド用のエンティティを付けていました。なんとも複雑。こんな時の為にちゃんとメソッド(方法)が用意されていて、描画するエンティティに無事フェイドを付けることが出来ました。

ほとんど諦めかけて、夕食にしようかと思っていたところでした。これでぐっすり眠れる。

たくさん木や岩など並べても、ほとんど描画速度に影響しません。

1月16日 アセット購入

木のアセット

魚の泳ぎの改良ついでに、鳥や昆虫の動きも改良していました。その作業も終えて、ひさしぶりにこっち(地形マップ)に戻ってきました。

プロトタイプとはいえ、あまりに殺風景でモチベーションがだだ下がり。Unityのアセットストアで木や草のアセットを物色。悩みに悩んでAutumn Forest - Stylized Natureを購入しました。ローポリとリアルの中間ぐらいで10ドルとお手軽、URP、HDRPにも対応しています。

魚の配置、泳ぎの前に、木や岩の配置表示をECSでプログラムしてみようと思います。ECSは、大量に処理するのに向いているようなので勉強しながら挑戦してみます。

1月7日 明けましておめでとうございます。

魚の泳ぎ改良終わりました。素早いターンで泳ぐようになりました。

録画しながらチェック。イルカ、クジラで停止時にジッターが発生しています。鼻先で目的地への方向が定まらないのが原因だと思われます。

作業が終わったと思っても、様々な問題が発生するのがプログラミングのあるあるですね。そのほか若干修正とテストしてから次にすすめようと思います。

今作っているプロトタイプに移植。魚を群れで表示するなどできるように、Unity ECS - Entity Component System に移植してみます。今の移動プログラムは複雑すぎるので、整理しながら。 

../toucan/TocoDiaryJ.html