blender 4.4 - アスキーアートメーカーを作ってみた
ここでは、ジオメトリノードを使い、アスキーアート風の表現を試みてみました。
環境 Blender 4.4.1 , Mac Mini M1 OS 14.4
ジオメトリノードは情報は英語からのものが多いため、この記事では英語バージョンを使用し、日本語訳はできるかぎり併記します。
HalfTone
下準備として、基本のハーフトーンパターンを作成する。

マテリアルプロパティで、黒のマテリアルを作成

平面オブジェクトを追加し、Geometry Nodesワークスペースに切り替え、New をクリック

以下のジオメトリノードを組む

Set Material には、作成した black マテリアルを指定する

ノードを追加し、下のように接続

カラーランプ 下矢印ボタンで、Flip Color ramp(カラーランプを反転)を実行

デフォルトでは、画像の明るいエリアにある円インスタンスが大きく、暗いエリアは小さくなるため、カラーランプで逆に反転させている。
Position および、Vector Math(Multiply Add)ノードを追加し、スケールと位置を合わせる。

Multiplier(乗算)で拡大縮小、Append(加算)で位置の調整を行う。

ASCII 01
アスキーアートなので、円の代わりに、文字(キャラクター)で埋めてみる。
Mesh Circle の代わりに、String to Curve ノードを接続

a だけではすこしさみしいので、文字列を chaplin に変更。

文字間隔がゼロなので、chaplin のすべての文字が同じ位置に重なって表示される。
Random Value ノードで、chaplin のいずれかの文字をランダムに表示させる。



ベースの画像や文字列を変更した試作バージョン


ASCII 02
これでも工夫しだいではわるくないが、ベース画像の明るさによって、文字の大きさでなく、異なる文字列を割り当ててみたい。
そこで、これまでのノードを組み直し、下のように変更した。

下の 5 ノードは、これまではインスタンスの大きさを変化させるために使っていたが、Instance Index に接続し、文字列の インデックス番号に値を渡している。


Color Ramp ノードからは、画像の明るいエリアはゼロに近く、暗いエリアは 1 に近い値を出力するので、Map Range で ゼロから 12 までに範囲を拡大、明るいエリアはより左の文字列を、暗いエリアはより右の文字列をピックアップするよう設定した。




設定する文字列や、Color Ramp、Map Range の値の調整でかなり幅広いバリエーションも得られます。お試しください。
まとめ
君、けっして残り多いとはいえない人生の貴重なひとときを、いったいなにに費やしているのだね、といわれてもしかたありませんが、こんなことを比較的真剣にやっていると、ジオメトリノードの知識もいやおうなく積み重なります。参考まで。
参考
アスキーアートをタイプライターで作る方法&作品をまとめた1939年の書籍が公開に(GigaZine)
そのころはタイプライターでやっていたんですね。
