mieki256's diary



2025/01/01(水) [n年前の日記]

#1 [nitijyou] あけましておめでとうございます

本年もよろしくお願いいたします。

年賀状を出してきました :

どうにか年賀状を印刷できたので、郵便局の本局まで出向いて年賀状を投函。自分、どうしてもっと早く出せないのか…。

さておき。本局の入り口のあたりに年賀状用の投函箱が用意されているものと思い込んでいたのだけど、入り口が完全に閉まっていて、仕方ないから局の前のポストに入れてきた。

自分がウロウロしてたわずか数分の間に、5人ぐらい次々にやってきて、入り口の前まで行って「アレ? 閉まってんの?」的に引き返してポストに投函する光景を目撃。トータルでは結構な数の人達が「アレ? 閉まってんの? なんで?」と戸惑ったのだろうな…。なんとなくだけど、「もう俺達は年賀状なんて配達したくねえんだよ」という郵便局側のうっすらとした意思を感じないでもない…。

年賀状にはメリットもデメリットも両方あって一概に肯定も否定もできないから、なかなか難しい…。

#2 [pc] 一体型インクカートリッジもアリなのだろうか

年賀状を印刷しようとしたら、プリンタ Canon iP4600 のインクカートリッジが1本切れそうになって、最後まで印刷できるのかハラハラしたけれど、どうにか年賀状を印刷できた。助かった。もっともそのうちインクが切れるだろうから、近日中に予備を買っておかないと。

こんな時は独立型のインクカートリッジより一体型のほうがいいのかもしれない。

独立型は各色を最後まで使えるけれど、一体型はどれか一色が切れると他の色のインクが残っていてもそのカートリッジを捨てることになるので、印刷コストは独立型のほうが良いとされているけれど。独立型は予備を確保しておく際、色毎に用意しておかないといけないのが面倒だなと…。その点、一体型なら予備は1種類で済む。いや、実際は、黒とカラーの2種類のカートリッジになるだろうけど。

大量に印刷するならともかく、自分の場合、現状ではほとんど印刷をしないので、実は一体型のほうがメリットがあるのだろうか…?

ただ、一体型インクカートリッジは、カートリッジ1本あたりの値段が高い。もっとも、ググった感じでは独立型の全色分の2/3の値段になっている模様。とは言え、どれかの色が無くなったら残りのインクも全部廃棄することを考えたら、まだ全然高い気もする…。

#3 [blender] オブジェクトを地面に接地したい

Windows10 x64 22H2 + blender 3.16.19 で試用。

オブジェクトを、その下にある地面相当のオブジェクトに接地させたい。

いつもは、Drop to ground というアドオンを使っているのだけど、このアドオンを使うと、例えばビルボード用のポリゴンを接地させた場合、オブジェクトの原点ではないところで接地してしまうし、地面の角度に合わせてオブジェクトも回転してしまって、その後の修正作業が面倒だった。

ググってみたら、Drop It というアドオンもあるらしい。こちらなら、オブジェクトの原点で接地もできるし、地面の角度に合わせて回転する/しないを選べるので試用してみた。無料で利用できるが、寄付も歓迎している模様。

_Blender Addon - Drop It
_【Blender2.9】無料アドオンDrop itでできること、検証してみた | CGbox
_【Blender】すぐに地面に接着させたい!Drop Itを使ってみた! | SHERPA TIMES

drop_it_v1.2.zip を入手してインストール。

オブジェクトを右クリックした際のメニューの中から、Drop It を選べば実行できる。もしくはVキー。複数オブジェクトを選択している状態でも利用できる。

設定をいくつか変更できる。
これで理想的な接地作業ができるようになった。

Vキーは何に使われていたのだろう :

Drop It が使っているショートカットキー ―― Vキーって標準では何に割り当てられているのだろう…?

ググってみたら、「切り裂き」が割り当てられていたらしい。

_【2024】Blenderのショートカットキーを一覧で紹介!便利なものを厳選! - Render Pool(レンダープール)

「切り裂き」は編集モードで使う機能のようだし、オブジェクトモード時は Drop It が使ってしまってもいいのではないか、ということでこの割り当てなのかな…?

#4 [movie] 「ランボー」を視聴

BS12で「ランボー」第1作目が放送されていたので視聴。恥ずかしながら初見。あんなに有名な映画なのに今まで見たことが無かったのです。

面白かった…。めっちゃ面白かった。最後にガーッとまくしたてる、その内容が実に良い…。

原作にあのシーンは無いそうで、原作通りに映像化することが必ずしも正しいわけではないのだなと再認識させられた。面白くなればOKだし、面白さにも色んな種類がある。この映画の場合、あの台詞群で深みが付加されて面白くなった気がする…。

原作でも、この映画の本来のラストでも、主人公は射殺されてしまうけれど、試写の反応を見てラストを変えたそうで。その結果、シリーズ化に繋がったことを考えると、試写で観客のソレを参考にするのは必ずしも悪いことではないのかもしれないと思えてきたりもした。いやまあ、大体は変な改変になっちゃうイメージもあるんだけど…。作品としては締まらなくなるけど商売はしやすくなる、みたいな妙なイメージが…。

#5 [nitijyou] 日記をアップロード

2024/11/23を最後にアップロードしてなかったのでアップロード、するつもりだったけど最新日まではちょっと無理っぽいのでできるところまで…。12月末まではどうにかアップロード。

2025/01/02(木) [n年前の日記]

#1 [nitijyou] 弟が戻った

14:00頃出発。夕方頃に到着したと連絡があったらしい。

#2 [nitijyou] 体調が悪い

朝から腹の具合がよろしくない…。へその周辺にじんわりとした痛み。

2025/01/03(金) [n年前の日記]

#1 [blender] ワンクリックで地面にオブジェクトを配置したい

blender関係の情報をググって調べていたら以下のページに遭遇。

_【Nature Clicker】Blenderでクリックだけでオブジェクトを生やせる便利アドオン紹介! - TomoGのごちゃまぜ倉庫

Nature Clicker というアドオンを使うと、マウスクリックするだけで、地面担当のオブジェクトの上に、別オブジェクトを次々に配置していくことができるらしい。それは便利そう…。試用してみることにした。環境は、Windows10 x64 22H2 + blender 3.6.19 LTS。

_Nature Clicker- Free Blender Addon
_OliverJPost/NatureClicker

CLICKR_V1_1.py を入手してインストール。

Nキーを押して表示されるタブ(サイドバー?)の中に CLICKER というタブが増える。
少し使ってみたけれど、例えばビルボードの類を配置していく際には、かなりサクサクと作業できそうな気がした。いやまあ、Shift + D でリンク複製して位置決めして、後からオブジェクト群を複数選択して Drop It で地面に落とすことでも作業はできるのだろうけど、クリックしただけで即座に配置が終わるのはどう考えても楽だなと。

2025/01/04() [n年前の日記]

#1 [godot][blender][cg_tools] ローポリの木のモデルを作成中

_先日 に続き、Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ゴルフコースのモデルデータ上に配置できそうな、ローポリの木のモデルを作れないかと blender 3.6.19 LTS を使って試しているところ。

パーティクルを使って枝テクスチャを貼ったオブジェクトを増やす方法を試したところ、なんだかちょっとイイ感じに思えてきた。ポリゴン枚数は増えてしまう気もするけれど…。

木のモデルを包むような球を作って、その球の法線(ノーマル)を木のモデルに転送するとイイ感じになるという話を見かけて試してみたけれど、状態が変わっているようには見えない…。blender ではお馴染みのスザンヌで試したらたしかに法線が転送されて見た目が変わってくれたので、機能自体は間違いなく動いてるはず。自分が何か操作ミスをしているのだろう…。

2025/01/05() [n年前の日記]

#1 [godot][blender][cg_tools] ローポリの木のモデルを作成中。その2

_昨日 に続き、Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ゴルフコースのモデルデータ上に配置できそうな、ローポリの木のモデルを作れないかと blender 3.6.19 LTS を使って試していたのだけど、そこそこそれっぽいモデルが作れた気がする。

tree_lowpoly_take05_ss01.png

「どこがそれっぽいんだよ全然ダメだろソレ」と言われそうだけど、最初に作ったのが下のようなモデルなので…。

tree_lowpoly_take03_ss01.png

これと比べたら、まだゲーム内で配置できる状態にはなりつつあるかなと…。

参考ページ :

作り方をメモ :

一応作り方をざっくりとメモ。いや、上記の参考ページ群を眺めたほうが分かりやすいけど…。

Windows10 x64 22H2 + blender 3.6.19 LTS で動作確認。

手順の流れとしては以下だろうか。
  1. 幹に相当するオブジェクトを作る。
  2. 枝に相当するオブジェクトを作る。
  3. パーティクルを使う準備をする。
  4. パーティクルを使って枝を生やす。
  5. 法線を転送して見た目をらしくする。


まずは幹を作る。
  1. キューブを新規作成。
  2. 頂点編集モードに入って、頂点を全選択(Aキー)。
  3. Mキーを押して、マージメニューを出して、「中心に」を選択。頂点を1つに結合。
  4. 押出(Eキー)を使って、頂点から線をどんどん伸ばしていく。線だけで幹に見える形を作る。
  5. スキンモディファイアを使って、線を角柱っぽい形にする。「適用」でメッシュ化。
  6. 先端が細くなっていくように形を調整。


枝に相当するオブジェクトを作る。
  1. 枝のテクスチャ画像を用意する。
  2. ファイル → インポート → 画像を平面で、を選んでテクスチャ画像が貼ってあるポリゴンを作成。
  3. 原点を調整したり、細分化して少しだけ丸みを持たせたりする。


パーティクルを使う準備をする。
  1. 幹モデルを選択して頂点編集モードにする。
  2. 頂点グループを新規作成。データ(オブジェクトデータプロパティ) → 頂点グループ → 「+」をクリック。
  3. 枝を生やしたい部分を頂点グループに所属させる。
  4. ウェイトペイントモードで、枝をたくさん生やしたいところと生やさないところを塗り分ける。
  5. 右クリックでウェイト値の指定ダイアログが出るので、値を指定して、左ボタン押しで塗っていく。


パーティクルを使って枝を生やす。
  1. パーティクルシステムを1つ新規作成。タイプは「ヘアー」。
  2. パーティクル設定の「頂点グループ」の「密度」に、幹の頂点グループを指定。
  3. 「レンダー」の「レンダリング方法」を「オブジェクト」に。
  4. インスタンスオブジェクトに枝オブジェクトを指定。
  5. 「レンダー」の「スケール」を変更して大きさを調整。
  6. 「発生」の「数」「シード」「ヘアー長」を調整。
  7. 詳細設定を有効にして、回転を有効。
  8. 回転する軸を「グローバルZ」に。「ランダム化」「位相」「位相のランダム化」を調整。
  9. モディファイアプロパティで「インスタンスを実体化」をクリック。パーティクルで発生させたソレがオブジェクトとして大量生成される。
  10. 「適用」をクリックすれば、モディファイアは消える。


法線を転送。
  1. 木のモデルを包むようなUV球オブジェクトを作成。
  2. パーティクルで発生させたオブジェクト群を選択して Ctrl + J で1つのオブジェクトにしてしまう。
  3. 「自動スムーズ」を有効化。右クリックして、「自動スムーズを使用」を選ぶか、オブジェクトデータプロパティで、ノーマル → 自動スムーズ、にチェックを入れて有効化する。
  4. データ転送モディファイアを追加。
  5. ソースに先ほど作成したUV球を指定。
  6. 面コーナーデータを有効化して、「カスタム法線」を有効化。
  7. 「適用」をクリックして反映。

余談。法線の転送について :

昨日作業していた際に、法線の転送が上手く行かなかったのだけど。どうやらオブジェクトを複数選択した状態で「ノーマル」を「自動スムーズ」にしても、1つのオブジェクトしか反映されなかったせいらしいなと…。

Ctrl + J で、枝オブジェクト群を1つのオブジェクトにまとめてしまってから自動スムーズを有効にしてみたら、法線の転送がそれらしく反映された。

ただ、この「自動スムーズ」って、他のファイル形式(.gltf、.obj)でエクスポートした際にどこまで反映されるのか…。

2025/01/06(月) [n年前の日記]

#1 [godot][blender][cg_tools] キーボードのキーに見えるフォントを探している

_昨日 に続き、Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ゲーム画面に、キーボードのキーを表示したい。ショットが打てる状態になったら、左右キーやスペースキーに見えるアイコンを表示して、「このあたりのキーを押して操作することができますよ」と知らせたい。

そのためには、左右キーやスペースキーの画像を作らないといけない。

キーボードのキーに見えるフォントがあったら画像作成が楽になりそう。そんなフォントを探してみることにした。

キーボードフォント :

まずは以下に辿り着いたのだけど…。

_「キーボードフォント」パソコン関連の説明に便利なキートップの絵文字フォント - 窓の杜
_外字神社

ライセンスが _CC BY-ND 3.0 だったので、ゲーム画面に出せるのか、よく分からなくて…。画像化して使う分には問題無いのだろうか。そうでもないのだろうか。よく分からん…。

Davys BigKeyCaps :

そういえば、GIMPの追加フォント(Type1フォント)にもキーボードっぽいフォントがあったなと思い出した。

_GIMP Type1フリーフォント一覧

Davys BigKeyCaps というフォント名らしい。GIMP 2.8.22 x86 Portable を起動して試用。

ちなみに、GIMP 2.10.x はType1フォント(.pfb)のサポートを打ち切ったので、これらの追加フォントは使えなかった記憶がある。古いバージョンのGIMPじゃないと使えない。

_mieki256's diary - GIMP 2.10で利用できるフォントフォーマットが減っていた
_mieki256's diary - pfbフォントをttfフォントに変換してみたい

さておき。この Davys BigKeyCaps フォント、GIMP 2.8.x 上なら一見使えるような感じがしたのだけど、どのコードに何の文字が割り当てられてるのか分からなくて…。

以下のページによると、0x20 - 0x7f 以外に、0xa0 - 0xff にも文字が割り当てられてるっぽい…?

_DavysBigKeyCaps Font : Download For Free, View Sample Text, Rating And More On Fontsgeek.Com

Windows上で、0x80 - 0xff の文字ってどうやって打ち込んだらいいのか、そこからして分からない。ググったところ、IMEを有効にして、例えば「00a1」と打ってからF5キーを押すことで入力できる時もある模様。

_文字コードで漢字・記号を入力する | 日経クロステック(xTECH)


それはともかく、HDDの中から dabkc____.license というファイルを発掘した。中に割り当てが書いてあった。

_dabkc____.license

引用しておこう…。
a - ALT 
b - RETURN 
c - CAPS LOCK (2 lines) 
d - PRINT SCREEN (2 lines) 
e - ENTER 
f - INS 
g - SCROLL LOCK (2 lines) 
h - HOME 
i - cursor up 
j - cursor left 
k - cursor down 
l - cursor right 
m - DELETE 
n - BACKSPACE 
o - OPTION 
p - PAUSE 
q - SHIFT 
r - PAGE DOWN (2 lines) 
s - ESC 
t - TAB 
u - END 
v - CONTROL (the whole word -- "CTRL" is on another key) 
w - HELP 
x - the Macintosh "command" key or four-leaf clover 
y - DEL 
z - hollow apple 
opt-1 -- F1 (193, 0x00c1)
opt-2 -- F2 (170, 0x00aa)
opt-3 -- F3 (163, 0x00a3)
opt-4 -- F4 (162, 0x00a2)
opt-5 -- F5 (176, 0x00b0)
opt-6 -- F6 (164, 0x00a4)
opt-7 -- F7 (166, 0x00a6)
opt-8 -- F8 (165, 0x00a5)
opt-9 -- F9 (187, 0x00bb)
opt-zero -- F10 (188, 0x00bc)
opt-dash --F11 (208, 0x00d0)
opt-equal sign -- F12 (173, 0x00ad)
opt-[ -- F13 (210, 0x00d2)
opt-] -- F14 (212, 0x00d4)
opt-\ -- F15 (199, 0x00c7)
shift-option C -- CTRL (130, 0x0082)
option-j -- PG DN (198, 0x00c6)
option-k -- PG UP (251, 0x00fb)
option-v -- NUM LOCK (2 lines) (195, 0x00c3)
opt-d -- the nonfunctional delta key on Macintosh keyboards (182, 0x00b6)
opt-x -- delete in front of insertion point key (197, 0x00c5)
shift-option-zero -- zero on the numeric keypad -- wider than other keys (226, 0x00e2)
shift-option-e -- enter key as on Macintosh numeric keypad (228, 0x00e4)
option-c -- CLEAR (141, 0x008d)
option-space -- SPACEBAR (202, 0x00ca)
shift-option zero -- zero on wide key as on Macintosh numeric keypad (243, 0x00f3)
shift-option Z -- filled-in Apple
option-z -- Macintosh command key with both hollow Apple and cloverleaf (189, 0x00bd)
option-s -- blank key (167, 0x00a7)
option-r -- the DAVY key (168, 00a8)

ただ、実際にはこの割り当てになってない気もする…。一部は記述通りだけど…。

Windows10 x64 22H2 + GIMP 2.8.22 x86 Portable + dabkc___.pfb で一つ一つ打ち込んで試してみた。

00a1 -- F1
00a2 -- F4
00a3 -- F3
00a7 -- F6
00aa -- F9
00ab -- F15
00ae -- face?
00b6 -- F7
00ba -- F10
00c7 -- CTRL
00db -- Apple
00df -- SPACE
00e7 -- CLEAR

フォントのライセンスは、個人使用なら無料で使えるが、商用利用ならフォント名を製品に明記しつつコロンビア大学に10ドル寄付せよ、と書いてあるように見える。ビミョーに不自由…?

2025/01/07追記 :

Ubuntu Linux 20.04 LTS + FontForge で、元の Type1フォント、dabkc___.pfb を開いてみた。以下の割り当てが分かった。
U+02da -- PG UP
U+03c0 -- PAGE UP
U+2013 -- F11
U+2018 -- F14
U+201A -- 0 (TEN KEY?)
U+201C -- F13
U+2022 -- F8
U+2030 -- ENTER
U+2122 -- F2
U+2126 -- Apple and command
U+2202 -- Left arrow
U+2206 -- PG DN
U+221E -- F5
U+221a -- NUM LOCK
U+2248 -- CROSS
U+2260 -- F12

分かった範囲で、文字一覧を画像化してみた。

davysbigKeycaps_ss.png

2025/01/07(火) [n年前の日記]

#1 [godot][blender][cg_tools] キーボードのキーに見える画像を作成して追加

_昨日 に続き、Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

画面に、キーボードのキーに見えるボタンを表示したい。昨日はキーボードっぽいフォントを探したけれど、ライセンス面が少し不安なフォントしか見つけられなかったので、結局自分で画像を作成することにした。

Inkscape 1.4 で作成。何かの参考になるかもしれないので一応置いときます。ライセンスはCC0 / Public Domain ってことで。

_keycap.svg

key_arrowleft.png

key_arrowright.png

key_space.png

Godot Engine上で表示できた :

Godot Engine 上で、TextureButton を追加して、Textures の Normal に画像を指定。一応表示はできた。

ボタンを押した時に少し下に沈む感じ(表示位置が少し下にずれる感じ)にしたかったのだけど、押された時の画像を別途用意しないといけないのだろうか…? たしかにそういう仕様のほうが汎用性はあるだろうけど、似たような画像を用意しなきゃいけない点はなんだかちょっともったいない気もする。表示位置をずらすだけでも十分なのだけど…。

Buttonの使い方を調べた :

Godot Engine上でボタン(Buttonノード)を使う方法が分からなかったので少し調べた。ボタンが押された時にシグナルが発生するので、接続してスクリプト内に関数を書けばいいのかな。たぶん。

_button_downとbutton_upとpressedシグナルの違い - mmag

ノード → シグナル、で pressed() をダブルクリック。または右クリックして「接続」を選んで、スクリプトに繋いでやればいいらしい。

godot_button_ss01.png


pressed() は、デフォルト設定ではボタンを押して離したタイミングで発生する。離した時ではなく押した時に反応して欲しい場合は、Action Mode を変更する。

godot_button_ss02.png

デフォルトでは Button Release になってるけど、Button Press に変更すれば押した瞬間に pressed() が発生する。


シグナル button_down() はボタンが押された時、button_up() はボタンが離された時に発生するので、これを使えばそのボタンが押されっぱなしかどうか把握できる。スクリプト側でフラグ変数でも用意して、その変数を true/false で設定しておけばいい。

#2 [anime] 「映画 五等分の花嫁」を視聴

たしか年末にBS11で放送されていたソレを録画していたので視聴。漫画を原作とするTVアニメ「五等分の花嫁」の劇場版、だろうか。男性主人公がヒロイン達の誰を選ぶのか、を見せる内容。

おそらくだけどファンにとっては嬉しい内容だったのではないかなあと想像できる作りだった気がする。 結婚式の光景まで描いてたし。個人的にも、こういうラストになるのかとスッキリできた。

劇場版にしては映像面がちょっとアレな感じもしたけれど、尺の長さ的にはたしかに劇場版だったなと…。

それにしてもこのシリーズ、結構なヒット作ではないかと思うのだけど、TVアニメ、TVSP等、毎回監督もスタジオも違うあたりがなんだか気になる…。

2025/01/08(水) [n年前の日記]

#1 [godot] 動的にポリゴンモデルを生成して描画したい

_昨日 に続き、Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

今現在、ボールを打った直後に、Sprite3D でボールの軌跡を描画してる。ボールの座標を毎フレーム、配列に記録しておいて、必要になったらその配列内の座標で Sprite3D を描画する。




一応、軌跡らしきものは描画できているものの、なんだか見た目がダサい…。この軌跡を線のように見せられないものかなと…。

そんなわけで、Godot Engine上で3D空間に線を描画する方法を調べていた。

まずは以下が参考になった。

_[Godot Engine] 3D空間にラインを引く方法

ImmediateGeometry とやらが使えるらしい。が、これは Godot 3.x の頃の話で、Godot 4.x では ImmediateMesh にリネームされたらしい。

ImmediateMeshについて :

ImmediateMesh を使うと、動的にポリゴンモデルを作成して描画することができる。使い方は OpenGL 1.x の glBegin - glEnd に似ている。begin と end の間でプリミティブの座標群を指定すると描画される感じ。

_Using ImmediateMesh - Godot Engine (stable) documentation in English
_ImmediateMesh - Godot Engine (stable) documentation in English

ノードとして ImmediateMesh があるのかなと思ったけれど、そうではないらしい。MeshInstance3D ノードを用意して、その MeshInstance3D の Mesh に ImmediateMesh を追加する。

とりあえずサンプルを書いてみた。

ノード構成は以下。

node_list_ss01.png

Node3D
├─ Camera3D           ← カメラ。これを忘れると画面に何も描画されない
├─ DirectionalLight3D ← 平行光源
├─ MeshInstance3D     ← 床box
├─ MeshInstance3D_2   ← ここに ImmediateMesh を追加する
└─ MeshInstance3D_3   ← 球

スクリプトソースは以下。

_mesh_instance_3d_2.gd
extends MeshInstance3D

var mat: StandardMaterial3D
var ang: float = 0.0

# Called when the node enters the scene tree for the first time.
func _ready():
    mat = StandardMaterial3D.new()
    mat.albedo_color = Color(0, 1, 0, 0.5)
    mat.cull_mode = BaseMaterial3D.CULL_DISABLED
    mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
    mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
        
    mesh = ImmediateMesh.new()


func _process(delta):
    var x0: float = 0.0
    var y0: float
    var z0: float
    var h: float = 5.0

    mesh.clear_surfaces()
    mesh.surface_begin(Mesh.PRIMITIVE_TRIANGLES, mat)
    mesh.surface_set_color(Color.WHITE)
    
    y0 = h * sin(deg_to_rad(ang))
    z0 = 10.0
    for i in range(1, 20, 1):
        var y1 = h * sin(deg_to_rad(ang + 10 * i))
        var z1 = z0 - 1.5
        mesh.surface_add_vertex(Vector3(x0, y1, z1))
        mesh.surface_add_vertex(Vector3(x0 + 1, y0, z0))
        mesh.surface_add_vertex(Vector3(x0 - 1, y0, z0))
        y0 = y1
        z0 = z1
    
    mesh.surface_end()
    
    ang += 120.0 * delta
    if ang >= 360.0:
        ang -= 360.0


実行するとこんな感じの画面になる。緑色で描画されてる三角ポリゴン群が、ImmediateMesh で描画している部分。Sin値を使って座標群を毎フレーム変化させている。




ここまでできれば、後は形状を工夫することでボールの軌跡っぽいものも描画できそう。

少し解説 :

マテリアルの指定は、StandardMaterial3D を使った。StandardMaterial3D.new() で確保して、色々指定していく。
  • albedo_color で基本色を指定できる。Color(R, G, B, A) で指定。RGBA は 0.0 - 1.0 を与える。
  • cull_mode で片面を描画するか、両面を描画するかを変更できる。BaseMaterial3D.CULL_DISABLED を指定すると両面を描画。
  • transparency で、半透明描画を指定できる。BaseMaterial3D.TRANSPARENCY_ALPHA でアルファ値が反映される…のだろうか?
  • shading_mode で、陰影の有無を指定できる。BaseMaterial3D.SHADING_MODE_UNSHADED で陰影無し。


MeshInstance3D の mesh に、ImmediateMesh.new() で確保した ImmediateMesh を指定する。

  • mesh.clear_surfaces() ... 今までの描画内容をクリア
  • mesh.surface_begin(Mesh.PRIMITIVE_TRIANGLES, mat) ... 描画内容の指定を開始。PRIMITIVE_TRIANGLES は三角形ポリゴンを指定。mat はマテリアル。マテリアルの指定は省略できる。
  • mesh.surface_set_color(Color.WHITE) ... 色を指定。ただ、今回はマテリアル側で色を指定しちゃってるので、この指定は無視された。
  • mesh.surface_add_vertex(Vector3(x0, y1, z1)) ... 頂点座標を1つ指定。
  • mesh.surface_end() ... 描画内容の指定を終了。

#2 [blender] blenderのオブジェクトの原点をアドオンで移動

blender上でオブジェクトの原点を決まった位置にワンクリックで変更できる、Set Origin というアドオンがあるらしい。気になったので試用してみた。Windows10 x64 22H2 + blende 3.6.19 LTSで動作確認。

_Blender Set Origin Addon
_Blender Set Origin Add-on - YouTube
_Set Origin v1.1 - 超シンプルな原点(Origin)位置調整Blenderアドオン!無料!


ワンクリックでオブジェクトの原点を最下部に変更できるのは便利だなと…。

標準機能で行う場合 :

標準機能で似たようなことをしたい際は、以下のような手順になるらしい。3Dカーソルを一時的に使って目的を果たす模様。

_【Blender】原点を移動させる|yugaki
  1. オブジェクトを選択して、編集モードに切替 (TABキー)。
  2. 原点を移動させたい面を選択。
  3. Shift+S でパイメニューを出して、カーソル→選択物。もしくは、メッシュ → スナップ → カーソル→選択物。これで3Dカーソルの位置が変更される。
  4. オブジェクトモードに切替 (TABキー)
  5. オブジェクト → 原点を設定 → 原点を3Dカーソルへ移動。

移動してしまった3Dカーソルをワールド原点に戻すには以下の操作を行う。
  • Shift+C
  • あるいは、Shift+S でパイメニューを出して、カーソル → ワールド原点。
  • もしくは、オブジェクトモードで、オブジェクト → スナップ → カーソル→ワールド原点。

2025/01/09(木) [n年前の日記]

#1 [godot] ボールの軌跡の形状をどうするかで悩んでる

_昨日 に続き、Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ボールが飛んでいくときの軌跡をポリゴンで描画したいのだけど、どんな形状にするかで悩んでる。以下のような形があり得るかなと思っているけれど、どれがいいのやら…。

trace_shape_idea_ss01.png


断面としては以下のような感じだろうか。左がゴルフボールのサイズで考えた場合。右は割合を分かりやすくするためのサイズ。

golfball_trace_shape.png


考えてみたら、ボールが飛んでいく方向によって、断面も回転させないといけないのでは…? どういう計算をすればいいのだろう…。

#2 [nitijyou] 親父さんについてその後

詳細はGRPでメモ。

2025/01/10(金) [n年前の日記]

#1 [nitijyou] ワイヤレスチャイムのメンテナンスをした

門に設置していたワイヤレスチャイム REVEX X810 の送信機が反応しない状態になっていた。

_呼び出しチャイム X810(送・受信機セット)・X10(送信機)・X800(受信機) - ナカバヤシ株式会社 REVEX(リーベックス)ブランド

蓋を開けてみたら、電池 CR2032 x 2 の表面が異様なまでに汚れていた。送信機全体にサランラップを巻いて中に水が入らないようにしていたつもりだったけど効果は無かったらしい。

ただ、テスターで測ったら電池の電圧自体はそれぞれ3V以上あった。送信機の電池が切れていたわけでは無さそう。汚れをふき取って入れ直したけど反応無し。スイッチの接点がダメになっているのだろう…。

接点復活剤を隙間から吹き付けまくってみたところ、一応スイッチが反応するようになった。

受信機側の電池も切れていた。単3電池 x 3本を交換。

別用途で使うことにした :

親父さんがお袋さんを呼ぶときにワイヤレスチャイムを使いたいと言い出したので、このワイヤレスチャイムはその用途で使うことにした。門用のチャイムは防雨対応を謳った製品に買い替えたほうがいいのではないかと検討中。

ちなみに、この REVEX X810、送信機は防沫対応で屋外でも使えると謳っていたけれど、実際には雨が降ると送信機の中が水浸しになるので、そのままでは室内でしか使えない…。現行品(別型番)が屋外で使えるように改善されていたら助かるのだけど、そのあたりどうなのだろう…。

2025/01/11() [n年前の日記]

#1 [nitijyou] ワイヤレスチャイムの雨対策について調べてた

門の横にワイヤレスチャイムの送信機を設置したいと思っているのだけど、今まで設置していた送信機は、雨で濡れて内部にまで水が入ってしまっていたので、その問題点を改善したい。何か手は無いものかと少し調べた。

IP44、IP66 :

IP44やIP66といった防塵防水規格があるらしい。10の桁が防塵、1の桁が防水を示してる。

_IP保護等級について|摂津金属工業株式会社|SETTSU・IDEAL
_防塵防水規格のIP66とは?屋外に防犯カメラを設置する際の注意点|ビジネストレンド|法人|キヤノンMJグループ

ワイヤレスチャイムの送信機について、IP44やIP66を謳う製品も存在しているようなので、そういった製品を購入すればマシになるだろうか。ただ、IP44は雨ざらしにできるほどの防水性では無さそうな気もする。屋根の下に設置されてるけれど時々風向きで雨が当たる時もある、ぐらいの状態ならどうにか、という感じではなかろうか。しかし、更に防水性が高いIP66となると、選択肢が一気に減る…。

雨除けカバー、レインカバー :

インターホン用の雨除けカバー/レインカバーという商品ジャンルもあるらしい。透明のカバーをつけて雨が吹き込むのを防ぐことができる。コレを使えば防水性能が低くてもどうにかなるのではないか。

ただ、Amazonで検索した感じでは、大きめのインターホンにつけることを前提にしたものがほとんどのようで、どれもサイズが大きい…。ワイヤレスチャイムの送信機は結構小さいので、そこまでの大きさは必要ではないのだけど…。また、玄関前の壁にネジ止めすることも前提にしているようで、門の横には設置しづらい形に見える…。


いっそ自作できないものかとググってみたけれど、屋内用のカバーの製作事例しか見つからなかった。屋外用となると耐久性その他の問題が出てくるのだろうか…。

2025/01/12() [n年前の日記]

#1 [pc][windows] PT1にBS10を追加しようとして試行錯誤

今頃になって知ったのだけど、BS10なるBS放送チャンネルが増えていたらしい。正確には、BSJapanext が別の帯域に引っ越ししてBS10になった模様。更に、BSアニマックス、BS釣りビジョンの帯域割り当て位置も随分前から変わっていたらしい。

余計なことをしやがって…。PT1を再設定しないといかんじゃんよ…。

そんなわけで、昔の作業メモを眺めつつ、TVTest、Spinel、TVRock を設定し直すことにした。

_mieki256's diary - PT1機にBS新チャンネルを追加しようとして四苦八苦

TVTestとSpinelの設定 :

  1. TVTestインストールフォルダの BonDriver_PT-S.ChSet.txt を編集。編集内容については後述。
  2. TVTest 起動。
  3. 左下のチューナー選択部分で、BonDriver_PT-S に切り替え。
  4. 画面を右クリック → 設定 → チャンネルスキャン。
  5. 「サービスを検索する」にチェックを入れた状態で、「スキャン開始」。

BonDriver_PT-S.ch2 というファイルに、現在のBSチャンネル割り当てが反映された。

編集内容は、以下のページで配布されているファイルを参考にさせてもらった。ありがたや。

_TvTest・TvRock 用 BS・CS 最新チャンネル設定: まんぼうのつれづれ日記

tvtest_tvrock_bscspreset_202501.zip を入手して解凍。中に入っている BonDriver_PT3-S.ChSet.txt を眺めて変更点を反映。

Spinel も再設定。以前と同じ手順で作業した。

これは自分の環境特有の問題だけど、PT1録画機のIPアドレスをどこかの時点で変更していたようで、メインPC上の TVTest からアクセスできなくて悩んでしまった。BonDriver_Spinel_PT1_0_*.dll.ini の冒頭でIPアドレスを指定しているので修正。PT1録画機にアクセスできるようになった。

これで TVTest と Spinel はBS10が見れるようになったけれど、問題は TVRock の設定…。

TVRockの設定 :

TVRock の設定ファイルは、TVRockインストールフォルダとは別の場所にあることを完全に忘れていてハマってしまった。自分の環境の場合、C:\Users\(USERNAME)\Documents\tvrock\ に設定ファイルが入ってた。

TVTestインストールフォルダ/Plugins/TvRockOnTVTest.ini と、TVTestインストールフォルダ/RecTask.ini も修正しないといけない模様。[BSFrequency] という項目があるので、TSIDと中央周波数を列挙していかないといけない、らしい。

他にも、TVRockアイコンを右クリックして出てくるメニューの中から以下を辿って設定。
  • ツール → チャンネルエディタ、で、チャンネル名を追加/削除/順番を変更。
  • 設定 → チューナー → チューナー3, 4でチャンネル設定。BSチャンネルを選んで、チャンネルとサービスを設定。
  • 設定ファイルが入ってるフォルダ内で、無くなったチャンネルの名前がついてるファイル群を削除。

そのあたりは以下を参考にして作業させてもらった。

_2025年のBSJapannextとスターチャンネルのチャンネル番号変更対応(TVRock) | QuintRokk
_2024年のBSデジタル放送のトラポン移動への対応(TVRock+TVTest) | QuintRokk
_TvTest・TvRock 用 BS・CS 最新チャンネル設定: まんぼうのつれづれ日記

動作確認。TVRockアイコンを右クリック → チューナーアプリ起動、を選んで、TVRock経由でチャンネルを変更して、BSチャンネルが全部映るか確認。

その後、インテリジェント → 番組情報取得を選んで、番組表情報が取得できるか確認。ここは結構時間がかかる。

これでようやく、BS10が見れるようになった。でも、今後見ることがあるのかと考えると…。基本的には通販番組を流すチャンネルだろうし…。

余談 :

余談というか愚痴。

関連情報をググっているうちに知ったのだけど、BS4Kで通販番組専門チャンネルが追加されたという話を見かけた。

_4K通販チャンネルが来春“BS右旋"に引っ越し。BS4K左旋は消滅へ - AV Watch

通販番組を4Kで見て一体何が楽しいのだろう…? 帯域の無駄遣い感がスゴイ。BS2Kの画質を劣化させながらどうにか捻り出した貴重な帯域の使い道としてお前ソレは無いだろう…。担当してる官僚さんだか政治家さんは一体どこの企業から接待を受けてるんですか。などと邪推してしまう。


他にも、BS2KをHEVC(mpeg4? H.265?)化する案も見かけた。

_総務省、BS/CS 2K放送にもHEVC圧縮が利用できる改正案。パブコメ開始 - AV Watch

それをやったら今の受信機器は全部買い替えになりそうだけど、その場合自分は経済的に買い替えなんて無理なのでBS放送を見れない状態になって、否応なくネット配信で見ることになって「アレ? 実はTVなんて要らなかったんじゃね?」と気づきそうで…。

ようやくここまで普及したBS放送を潰してしまう愚策のように思うのだけど、たぶんコレって4Kに無理矢理移行させるための策の一つなのかなと邪推してしまった。「どうせ買い替えになるなら4K受信機器を買うか」ってなるやろと取らぬ狸のなんとやら的なことを思ってるんじゃないか。要はBS2Kを視聴してる層への嫌がらせなのでは。

でも、今の日本国民って皆どんどん貧乏になってるから、期待してたほどの買い替えなんて全然起きなくて単にBS放送の視聴者数がガターンと落ちて終わるだけのような気がする。そもそも競合としてネット配信がもうあって、昭和時代のようにTVでしか動画が見れないわけでもないし…。

それに、BS放送って基本的には通販番組しか放送しないし。そのくせ見れそうな番組が流れると思ったらどのチャンネルも同じ時間にぶつけてきて3被り4被りが当たり前でリアルタイム視聴どころか録画視聴すらできやしない。そんな状態で「今使ってる受信機器は使えなくなる、かも?」と追い打ち(?)までかけてくるとか…。

そもそも、BS2K放送を1920x1080iから1440x1080iに落した時に、「画質の違いは視聴体験にほとんど影響がないことが分かったから解像度を下げます」ってお前達言ってたよなあ? あの主張、こっちは忘れてないですよ? 4Kは画質が良いです感動しますってガンガン金掛けて必死に宣伝してるこの状況で「画質なんて実はどうでも良かった」なんてバカ正直に言うんじゃねえこの大馬鹿野郎! 4K宣伝部隊を後ろから撃ってるんじゃねえ! 最後まで「いやーTVの画質って大事ですわマジ大事っスわ」と嘯かないとダメだろ! と心の底から呆れてしまったのだけど、ここに来て圧縮方式を変える? そういうアレコレしてみたって意味無いですよって自分達から言っちゃったこともう忘れてんのかと…。

もっとも、若い人達を見習ってTVなんて見切りをつけちゃうのが一番いいのでは? という気持ちが常にあるので、このあたりはなんとも…。TVで育ってしまったお爺ちゃんはダメだな…。TVというメディアに思い入れがあるせいでついつい熱が入るけど、客観的に見たらこんな不便で利権まみれのクソメディアさっさと捨てちまえ、という気も…。

愚痴でした。

2025/01/13(月) [n年前の日記]

#1 [windows] OneDriveの個人用Vaultを無効化できなくてちょっと困ってる

Windows10上のOneDriveアプリが更新されたようで、「個人用 Vaultを設定しろや」と言ってきたものだから、どういう機能なのかよく分からないままうっかり有効にしてしまったのだけど。この個人用Vaultが有効になっていると、20分ぐらいで自動ロックされてしまう。 *1 ロックされるとタスクトレイ上のOneDriveアイコンがバツ印になって、なんだか鬱陶しい…。ロック解除のためには、メールアドレスを入力して、Microsoftから解除コードを送信させて、その解除コードを打ち込んでやらないといけない。面倒臭い。

自分にとっては今後使う予定がない機能なので、個人用Vaultを無効にできないものかなと調べてみたのだけど、現状では一度有効にしてしまうと無効化ができないようで…。昔は ―― 2019年や2020年頃は、OneDriveのサイトで歯車アイコンをクリックしてオプションを選べば無効化する項目に辿り着くことができたらしいのだけど、現状ではできない。2024/05/03あたりからできなくなってるユーザが続出しているようで…。以下のやり取りでもMicrosoftに対する怨嗟の声が延々と並んでいる。

_OneDrive Personal Vault missing an option to disable it - Microsoft Community
_Cannot disable Personal Vault. - Microsoft Community

OneDriveアプリをアンインストールしてしまう以外に解決方法は無いのだろうか…。ちょっと困るなあ…。

でもまあ、OS起動直後に OneDriveアプリを終了してしまえばいいか。ちと面倒臭いけど、しばらくはそんな感じで様子見してみよう…。

それにしても、使ってもらおうと更に手を入れたら余計に使ってもらえない状態になってしまうとか、なんとも馬鹿馬鹿しい話。
*1: 一応、ロックされるまでの時間はいくつか選択できて、最長4時間に変更可能ではある。

#2 [anime][neta] VR世界内のVR世界

妄想メモ。

TVアニメ「想星のアクエリオン」を眺めていて、独特のキャラデザで興味深いなと思ったのだけど。そこでふと、もしかしてこのキャラ達はVR世界/仮想世界のアバターなのではないかと妙なことを思ってしまった。仮にアバターだとしたら、こういうキャラデザも全然アリなような気もするなあ、と。

件のアニメの作品内で、メインキャラ達はVR世界にログインして戦闘訓練をしていたのだけど。VR世界にログインしていくその光景を見れば、読者視聴者は、VR世界にログインする前は現実世界に居るものと無意識に思い込みそうでもあるなと…。いやまあ、現実世界と思っていたらそこは仮想世界、という設定は有名作品でもちょくちょくあるので、その点は全く珍しくも無いのだろうけど、VR世界を現実世界と思い込ませるための手管の一つとして VR in VR を ―― 入れ子になっているVR世界を使えたりしないかなと妄想してしまった。

逆に、作品内ではVR世界にログインしてるつもりが、実はそっちのほうが現実世界、というシチュもあり得るのだろうか…。まあ、既に何かしらの作品でそういう設定が盛り込まれてそうでもあるけれど。もしかすると鬼滅の刃でそういうシチュがあったかも…? アレはVR世界ではなくて幻覚だったっけ。

VR世界では無くて幻覚…。幻覚と思っていたらVR世界。VR世界と思っていたら幻覚。そんなシチュも作れたりしないか…。

妄想メモです。オチは無いです。

2025/01/14(火) [n年前の日記]

#1 [godot] ボールの軌跡の形状について試行錯誤中

_先日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ImmediateMesh を使えば動的にポリゴンモデルを作成して描画することができる。それを使ってボールが飛んでいくときの軌跡を描画したい。とりあえず、Vector3の配列に記録された座標値群を元にして、正方形を45度回転させたような断面でポリゴンモデルを作れないか、別プロジェクトを作って試しているところ。

ベクトルに対して垂直なベクトルを求めていけば断面の頂点座標を求められるかなと、外積を使ってどうにかしようとしている。 一度、x-z平面上で垂直に見えるベクトルを求めて、そのベクトルを使って更に外積を求めれば、ベクトルの角度に沿った矩形の頂点座標が得られるはず。本当にそういうやり方であってるのかな? ちょっと自信が無いので実験中。

#2 [anime] 「機動戦士ガンダム 水星の魔女」最終回を再視聴

BS11で再放送されていた「機動戦士ガンダム 水星の魔女」が最終回を迎えた。録画していたソレを視聴。これで3回目の視聴だろうか。

やはりこの最終回は良い…。後日談を入れてるあたりが、まず良い…。後日談を入れてあるアニメと言うと 「未来少年コナン」「ナウシカ」「トトロ」「魔女宅」「∀ガンダム」等々を思い出すけれど、後日談があることで作品としてなんだかグッとまとまるよなと…。

たった1カットでいい。止め絵でもいい。「今まで色々ありましたがあのキャラは今こんなことをしているのかもしれませんね」と断片的に提示するだけでも、見ているこちら側の妄想が広がる…。例えばガンダムSEEDシリーズTV放送版の終わり方と、 「∀ガンダム」の終わり方を見比べると、視聴後の印象が全然違う。入れられるなら入れたほうがいい。と思うので、その点「水星の魔女」の最終回は完璧な作りだよなと…。

何より、 あの曲とあのサブタイがあのタイミングで出てくるのが…。つくづく上手い。上手過ぎる…。途中でなんか色々と誤魔化されてる気がしないでもないけど、あのタイミングでアレをやられちゃったら「うむっ! これでヨシ!」という気分に…。素晴らしい。

2025/01/15(水) [n年前の日記]

#1 [godot] ボールの軌跡の形状について試行錯誤中

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ボールの軌跡を、ImmediateMesh を使って、動的にポリゴンモデルを生成することで表現したい。別プロジェクトで実験していたけれど、それらしく描画できそうな気がしてきた。以下のような見た目になった。




ソースは以下。白いソレ、青いソレ、赤いソレの順番で並べてある。

_im3_mesh_instance_3d.gd
_im2_mesh_instance_3d.gd
_im1_mesh_instance_3d.gd

それぞれを、MeshInstance3Dノードにアタッチしている。

node_list_ss02.png


一応、ソースの中身も貼っておく。毎フレーム、配列 poslist: PackedVector3Array に座標値群を入れておいて、その座標値群を元にして、ImmediateMesh によるポリゴンモデルを作成している。

_im3_mesh_instance_3d.gd
extends MeshInstance3D

var mat: StandardMaterial3D
var ang: float = 0.0
var poslist: PackedVector3Array = PackedVector3Array()

func _ready():
    mat = StandardMaterial3D.new()
    mat.albedo_color = Color(1, 1, 1, 0.25)
    mat.cull_mode = BaseMaterial3D.CULL_DISABLED
    mat.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
    mat.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
    
    mesh = ImmediateMesh.new()
    
    var n = 30
    for i in range(0, n, 1):
        poslist.append(Vector3.ZERO)


func _process(delta):
    # store positon to PackedVector3Array
    for i in range(0, poslist.size(), 1):
        var x1 = -12.0 + 4.0 * sin(deg_to_rad((ang + 10 * i) * 0.75))
        var y1 = 4.0 + 4.0 * sin(deg_to_rad(ang + 10 * i))
        var z1 = 10 - 1.0 * i
        poslist[i] = Vector3(x1, y1, z1)

    # set ImmediateMesh
    mesh.clear_surfaces()
    mesh.surface_begin(Mesh.PRIMITIVE_TRIANGLES, mat)
    # mesh.surface_set_color(Color.WHITE)

    var r = 0.5
    for i in range(0, poslist.size() - 2, 1):
        var p0 = get_rect_pos(poslist[i], poslist[i+1], r)
        var p1 = get_rect_pos(poslist[i+1], poslist[i+2], r)
        mesh.surface_add_vertex(p0[3])
        mesh.surface_add_vertex(p0[0])
        mesh.surface_add_vertex(p1[3])
        mesh.surface_add_vertex(p1[3])
        mesh.surface_add_vertex(p0[0])
        mesh.surface_add_vertex(p1[0])
    
        mesh.surface_add_vertex(p0[0])
        mesh.surface_add_vertex(p0[2])
        mesh.surface_add_vertex(p1[0])
        mesh.surface_add_vertex(p1[0])
        mesh.surface_add_vertex(p0[2])
        mesh.surface_add_vertex(p1[2])
    
        mesh.surface_add_vertex(p0[2])
        mesh.surface_add_vertex(p0[1])
        mesh.surface_add_vertex(p1[2])
        mesh.surface_add_vertex(p1[2])
        mesh.surface_add_vertex(p0[1])
        mesh.surface_add_vertex(p1[1])
    
        mesh.surface_add_vertex(p0[1])
        mesh.surface_add_vertex(p0[3])
        mesh.surface_add_vertex(p1[1])
        mesh.surface_add_vertex(p1[1])
        mesh.surface_add_vertex(p0[3])
        mesh.surface_add_vertex(p1[3])
    
    mesh.surface_end()
    
    ang += 120.0 * delta

func get_rect_pos(v0: Vector3, v1: Vector3, r: float):
    var v = v1 - v0
    var va = v.cross(Vector3.UP).normalized()
    var vb = v.cross(va).normalized()
    var pv0 = v0 + r * vb
    var pv1 = v0 - r * vb
    var pv2 = v0 + r * va
    var pv3 = v0 - r * va
    return [pv0, pv1, pv2, pv3]

ベクトルに垂直な矩形を求めるあたりは、以下の図が参考になる…のかな…どうなんだろ…。

about_get_vector_ss01.png

元ベクトルとY軸の外積で横方向に垂直なベクトルを求めてから、元ベクトルと横方向のベクトルの外積で縦方向のベクトルを求めて、その縦方向と横方向のベクトルから矩形の頂点座標を求める。上のソースで言えば、get_rect_pos() がその処理をしている。


ゴルフゲームにも組み込んでみた。




イイ感じになってきた気がする。

ちなみに、以前の版の見た目は以下。

課題 :

Godot Engine の ImmediateMesh で描画できるプリミティブは以下がある。点、線、三角ポリゴンが指定できる模様。
  • PrimitiveType PRIMITIVE_POINTS = 0
  • PrimitiveType PRIMITIVE_LINES = 1
  • PrimitiveType PRIMITIVE_LINE_STRIP = 2
  • PrimitiveType PRIMITIVE_TRIANGLES = 3
  • PrimitiveType PRIMITIVE_TRIANGLE_STRIP = 4

今回は三角ポリゴン、PRIMITIVE_TRIANGLES を使ったけれど、おそらく PRIMITIVE_TRIANGLE_STRIP を使ったほうが描画の効率は良さそうな気もする。

ただ、どういう順番、どういう形で頂点を指定していけばいいのか、そこが分からない…。輪を描くように描画したほうがいいのか、帯を描くように描画したほうがいいのか…。

2025/01/16(木) [n年前の日記]

#1 [godot] ピンの位置を2Dで表示したい

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

旗というか、ピンというか、カップの位置を分かりやすく表示したい。 頻繁にピンやカップの位置が分からなくなるので、「このあたりに旗があるよ」とアイコンを表示して位置を知らせたい。

Godot Engine 4 の Camera3Dノードには、いくつか便利なメソッドがあるので、それを使えばアイコンを表示すべき座標は得られそう。
_Camera3D - Godot Engine (stable) documentation in English

これで一応、アイコン(TextureRectで表示)が3D空間内の特定の座標を指し示すような表示にはなった。

extends Node3D

@export var target: MeshInstance3D
@export var markicon: TextureRect
@export var message: Label

var camera_ang: float = 0.0

func _ready():
    pass # Replace with function body.


func _process(delta):
    var camera = get_viewport().get_camera_3d()
    if camera == null:
        printerr("Not found Camera3D")
        return

    camera_ang = Input.get_axis("ui_left", "ui_right") * (90.0 * delta)
    camera.rotate_y(deg_to_rad(camera_ang))
    
    var msg = ""
    msg += "behind: "
    msg += "true" if camera.is_position_behind(target.global_position) else "false"
    msg += "\nin frustum: "
    msg += "true" if camera.is_position_in_frustum(target.global_position) else "false"
    message.text = msg

    var viewport_size = get_viewport().get_visible_rect().size
    var screen_pos = camera.unproject_position(target.global_position)
    markicon.global_position.x = screen_pos.x - (markicon.texture.get_width() / 2)
    #markicon.global_position.y = screen_pos.y - (markicon.texture.get_height())


ただ、その位置が画面外にある時に、どういう表示をしたらいいのか…。画面外の右にあるとか、画面外の左にあるとか、そういう表示にしたいのだけど…。

カメラの位置と向きが分かれば、そこからベクトルが作れるだろうし、ピンの位置でもベクトルを作れるだろうから、ベクトルの内積だか外積だかそのあたり符号で対象が右にあるか左にあるかぐらいは分かりそうな気もする…。

2025/01/17(金) [n年前の日記]

#1 [godot] ピンの位置を2Dで表示したい。その2

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ベクトルの外積を使って、ピンが右にあるか左にあるかを判別することはできた。以下のような感じになった。上のほうに旗アイコンがあるけれど、球の位置に連動して動いてる。




ノード構成は以下。

nodelist_ss01.png


ソースは以下。

_main.gd
extends Node3D

@export var target: MeshInstance3D
@export var markdown: TextureRect
@export var markleft: TextureRect
@export var markright: TextureRect
@export var message: Label


func _ready():
    pass


func _process(delta):
    var cam = get_viewport().get_camera_3d()
    if cam == null:
        printerr("Not found Camera3D")
        return

    var cam_ang = Input.get_axis("ui_left", "ui_right") * (120.0 * delta)
    cam.rotate_y(deg_to_rad(cam_ang))
    
    var is_behind = cam.is_position_behind(target.global_position)
    var in_frustum = cam.is_position_in_frustum(target.global_position)
    
    var msg = ""
    msg += "behind: %s" % ("true" if is_behind else "false")
    msg += "\nin frustum: %s" % ("true" if in_frustum else "false")
    message.text = msg

    var viewport_size = get_viewport().get_visible_rect().size
    var screen_pos = cam.unproject_position(target.global_position)

    var tw = markdown.texture.get_width() / 2
    if not is_behind and (screen_pos.x > tw and screen_pos.x < (viewport_size.x - tw)):
        markleft.hide()
        markright.hide()
        markdown.show()
        markdown.global_position.x = screen_pos.x - tw
        #markicon.global_position.y = screen_pos.y - (markicon.texture.get_height())
    else:
        var camvec: Vector3 = -cam.global_transform.basis.z
        var tgtvec: Vector3 = (target.global_position - cam.global_position)
        var d = Vector2(camvec.x, camvec.z).cross(Vector2(tgtvec.x, tgtvec.z))
        if d > 0:
            markleft.hide()
            markright.show()
        elif d < 0:
            markleft.show()
            markright.hide()
        else:
            markleft.hide()
            markright.hide()
            
        markdown.hide()


上記のソース内では、x-z平面でだけ考えて、外積を使って任意の座標がカメラから見て右にあるか左にあるかを調べてる。外積は、2つのベクトルに対して垂直なベクトルを求めることができるので…。x-z平面上でその垂直ベクトルが上を向いているか下を向いているか、つまりは符号を見るだけで、右にあるか左にあるかを判別できる。

about_cross_ss01.png

#2 [anime] 「劇場版 乙女ゲームの破滅フラグしかない悪役令嬢に転生してしまった…」を視聴

2025/01/06にBS朝日で放送されていたものを録画していたので視聴。いわゆる悪役令嬢転生モノの劇場版。初見。視聴したことをメモしておかないと忘れそうなのでメモ。

一般的にこの手の作品は特定のゲーム世界内に転生してしまう設定がほとんどだけど、 別タイトルのゲーム設定も混入してくる展開にちょっと感心。それ、アリなんだ…。 そのゲームの制作会社も開発スタッフも同じだし、共通の世界観でゲーム化されているから、という辻褄合わせにも感心。それっぽい。

集団幻覚で成り立っているジャンルに対する不安 :

個人的には、この手のジャンルの基本設定自体がどうにも引っ掛かる…。

えてしてその手の作品内では「乙女ゲーに必ず出てくる悪役令嬢キャラ」という紹介がされるけれど、現存している乙女ゲー作品群にそんな属性のキャラはまず存在しない、とも聞くわけで…。

一体どういうことなんだ。皆で集団幻覚でも見てるのか? 集団幻覚だけでこんなに大量の作品群を作ってしまっていいのか?

いやまあ、これが小説、漫画、アニメ、ドラマなら、たしかにそういうキャラは時々出現するのだけど。ゲームはまた別の話だろうと…。コレって乙女ゲーというジャンルにとって風評被害じゃないの…?

まあ、戦隊シリーズの黄色はカレー好き、みたいなものなのかもしれんけど…。カレー好きな黄色なんてほとんど居ないのに、何故か黄色はカレー好きというイメージが定着しちゃってる…。あるいは、コミケ会場を指差して「ここに10万人の宮崎勤がいます!」とレポートされちゃったソレみたいな。そんな報道はされたことがないのに、結構な数の人が「俺は確かにその映像を見た!」と言い出したりして…。

きっとそのうち、「乙女ゲーだから悪役令嬢キャラを出さないとダメでしょう」と何も知らずに本気で言い出す開発スタッフが出てきて、テンプレとして必ずそういうキャラが入れられるようになってしまって、「乙女ゲーと言えばこういうキャラが出てくるもの」というイメージがますます強化されて、「元々乙女ゲーにはそんな属性のキャラなんてどこにも存在してなかった」という事実が消滅してしまうのだろうなと…。ソレっていいのかなあ…。

そういうことが許されてしまうなら、「ガンダムシリーズには必ずデブキャラが出現する」とか、「ガンダムシリーズには必ずマスクをつけたキャラが出現する」とか、実際にはそうではないことを吹聴されちゃっても文句を言えなくなりそうだけど…。いいのかなあ…。

2025/01/18() [n年前の日記]

#1 [godot] ピンの位置を2Dで表示したい。その3

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

別プロジェクトで、ピンの位置を2D的に示すことができたので、ゴルフゲームのプロジェクトに反映させてみた。一応表示はできたけれど…。なんだか分かりづらい…。アニメーションでも入れたほうがいいだろうか…。でも、別プロジェクトでアニメーションを試してみたら、それはそれでちょっと鬱陶しかった。どうしたものか…。

2025/01/19() [n年前の日記]

#1 [godot] ソースを眺めてる

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

今現在、なんでもかんでもボール担当スクリプト(RigidBodyにアタッチしたスクリプト)に処理を列挙してしまっていて、これはよろしくないなと感じている。なんでもかんでもプレイヤーキャラの処理として書いてしまうのはゲームプログラミングのあるあるだけど…。ちゃんとゲームのメイン処理として分けて書いておきたいので、どこが分離できそうかソースを眺めて把握しようとしているところ。

2025/01/20(月) [n年前の日記]

#1 [godot] ゴルフボールを作りたい

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

そろそろゴルフボールを画面に出したい。今までゴルフボールは、アタリ判定を球にして、見た目については回転具合が分かりやすくなるように只の箱(BoxMesh)を割り当てていた。

球のMesh(SphereMesh)に適当なテクスチャ画像を設定すればゴルフボールのように見えるのではないかと安易に考えていたのだけど、調べてみたらそんなに簡単な話ではないようで…。後で問題点をまとめてみる予定。

2025/01/21(火) [n年前の日記]

#1 [godot][cg_tools] ゴルフボールを作りたい。その2

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

そろそろゴルフボールを画面に出したい。Godot Engine なら、球のメッシュ(SphereMesh)にテクスチャ画像を貼るだけでゴルフボールのように見えるのではないかな、と思って調べていたけれど、それはちょっと難しいことが分かってきた。

ゴルフボールのテクスチャ画像が見つからない :

問題点その1。フリーで使えるゴルフボールのテクスチャ画像が見つからない。有償でも存在するかどうか怪しい。

もっとも、あくまで、3Dモデルに使えそうなテクスチャ画像の話、だけど。

考えてみたら当たり前かもしれない。何故なら、ゴルフボールのテクスチャ画像ってゴルフボール以外には使えないから。汎用性が全く無い…。

  • まず、3DCGで、画面にゴルフボールを出さなきゃいけない場面なんて、フツーは存在しない。
  • 仮に映像作品内でゴルフボールを要求されるとしても、その際はハイポリゴンでゴルフボールを作ってレンダリングしてしまうだろうから、テクスチャ画像なんて要らない。
  • テクスチャ画像を貼ってそれらしくしたい、なんて需要があり得るのは、ポリゴン数を減らしたモデルを要求されてしまうゲーム開発ぐらい。
  • そのゲーム開発においても、ゴルフボールを画面に出したいと思うのは、せいぜいゴルフゲームの開発ぐらい。それ以外のゲームジャンルでゴルフボールが必要とされる場面なんてまず無いし、仮にあったとしても2Dのドット絵として用意しておけば事足りる。

要するに、極めてニッチな需要なわけで…。だから、ゴルフボール用のテクスチャ画像がネット上のどこでも配布されていないのは至極当然なのかもしれない。

ちなみに、ゴルフボールそのものの写真素材やイラスト素材ならネット上のあちこちで見かけた。ポスターだかイラストだか分からんけれど、2D的な画像編集用の素材であれば、まだ需要があるのだろう。

テクスチャ画像を作るのが面倒 :

問題点その2。Godot Engine の球(SphereMesh)に使えそうなゴルフボールのテクスチャ画像を用意するのは面倒臭そう。

Godot Engine の SphereMesh にテクスチャ画像を指定すると、以下のような見た目になる。

spheremesh_ss01.png

使用したテクスチャ画像は以下。

uvcheckermap01-512.png


つまり、上(北極?)、もしくは下(南極?)に行くに従って、テクスチャ画像の横方向が狭くなっていく見た目になるわけで…。

となると、ゴルフボールのように見せるためのテクスチャ画像は、正距円筒図法に近い感じのテクスチャ画像になるのだと思う。上や下に近づくと、横方向に伸びていく感じの画像というか…。

_正距円筒図法 - Wikipedia

しかし、そうなると…。これはちょっと自作が難しいのでは…。

ゴルフボールの表面のディンプル(くぼみ)が、等間隔でタイル状に並んでるテクスチャ画像なら簡単に自作できるだろうけど…。そういった画像を Godot Engine の SphereMesh に設定してしまうと、ゴルフボールの上、もしくは下のあたりのディンプルが、妙に小さくて歪んだ形になってしまうはず。

であれば、元のテクスチャ画像をあらかじめ歪ませておいて、3Dポリゴンモデルを描画した際には歪みが無くなるようにするのだろうけど、そんなテクスチャ画像、一体どうやって作ったらいいのか…。

解決策 :

解決策として思いつくのは、以下の2つだろうか…。

  • 頑張ってテクスチャ画像を自作する。頑張る。何をどう頑張ればいいのか分からないけど。
  • あるいは、Godot Engine の SphereMesh を使うことを諦めて、blender でゴルフボール用モデルデータを自作してソレを利用する。

blenderでハイポリゴンのゴルフボールを作成するだけなら、YouTube上で「blender ゴルフボール」のキーワードで検索するとチュートリアル動画が出てくるので、そこはどうにかなりそう。ただ、ゲーム用のローポリモデルにしないといけないので、おそらくノーマルマップ用画像かバンプマッピング用画像にベイク(焼き付け)する作業も必要になるのではないかなと…。

魚眼レンズ画像から正距円筒図法に変換 :

魚眼レンズ画像から正距円筒図法に変換できるツールを使えば、既存のゴルフボール画像から、Godot Engine の SphereMesh用テクスチャ画像を作成できるのではないかと思いついた。

魚眼レンズ画像から正距円筒図法に変換可能なツールとして、Cube2DM という、無料で利用できるツールがある。試用させてもらった。ありがたや。

_Cube2DM -- Image Projection Converter
_Cube2DMの詳細情報 : Vector ソフトを探す!

Cube2DMx64_170315.zip を入手。解凍して任意のフォルダにコピーして、Cube2DM.exe を実行。

  • 入力画像として、ゴルフボールの部分だけを円状に切り抜いた画像を渡す。
  • 入力形式は、魚眼レンズ(等立体各射影)を選んでみた。
  • 入力画角は180.00度。
  • 出力形式は、全球パノラマ形式(正距円筒図法)。
  • 出力サイズは、1024x512。

試してみたけれど、ビミョーな結果になった。

入力画像は以下。

golfball_take0.png

出力画像は以下。

golfball_take1.png

たしかに、180度分だから、1024x512 の半分の領域は埋まっているし、上や下の部分が横方向に引き延ばされた感じになったけれど…。左右端のディンプルが、横方向に狭まってしまっているような気がする。そのあたりは真ん中と同じ大きさになってくれないとテクスチャ画像としては利用できないのではないか。

他のツールで処理してみたらどうなるだろうと、パノラマ画像作成ソフトの Hugin 2024.0.1b で試してみたけれど、そちらも似たような状態になった。

_Hugin - Panorama photo stitcher

hugin_ss01.png

左右の端のディンプルの大きさが期待したソレとは違うものになってるし、半球として3Dプレビュー表示しても、左右の端のディンプルが狭まってしまっている。

球の画像を魚眼レンズ写真に見立てて処理するやり方では、上手く行かないようだなと…。

2025/01/22(水) [n年前の日記]

#1 [godot][cg_tools][blender] ゴルフボールを作りたい。その3

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

3Dモデルとしてゴルフボールを作れないか試行錯誤中。Godot Engine 上で、球のメッシュ(SphereMesh)にテクスチャ画像を貼って、ゴルフボールっぽくしたいのだけど…。

blenderでハイポリゴンのモデルを作成 :

まずはハイポリゴンの3Dモデルとして、ゴルフボールを作っておきたい。それさえあればレンダリングして実験用画像を作れるし。

blender でゴルフボールを作成する手順については、以下のチュートリアル動画が参考になった。ありがたや。blender 3.6.19 LTS で試してみた。

_【blender2.9】初心者向けチュートリアル|10分でつくるゴルフボール - YouTube
_【Blenderチュートリアル】色々なボールの作り方 - YouTube
_Blender 3D Modeling | How To Make Golf Ball In Blender | 1 Minute Blender Tutorial - YouTube

後からサブディビジョンサーフェスをかける手順と、最初にサブディビジョンサーフェスをかける手順がある模様。試したところ、前者は頂点数が若干少なく、丸みを持ったディンプルになって、後者は六角形が強調されたディンプルになる印象を受けた。

球の画像を正距円筒図法に変換 :

Google Gemini 2.0に、「球の画像を正距円筒図法に変換するツールは無いかな?」と尋ねてみたら、「貴方の要望にピッタリのツールがありますよ!」と言ってきた。Dagik Earth Map Image Converter (DEMIC) というツールがあるらしい。本来は惑星の写真を正距円筒図法に変換するためのツールのようだなと…。

_ダジック・アースマップ画像変換ツール: Dagik Earth Map Image Converter(DEMIC) - ダジック・アース

Windows版の Demic_win.zip を入手して試用してみた。解凍して、今回は D:\Prog\DEMIC\ に置いておいた。Demic.exe を実行すると起動する。フォルダ内には Demic説明書.pdf というマニュアルも入っていた。

たしかに、Cube2DM よりそれっぽい画像に変換してくれる気がする…。まあ、Cube2DM は魚眼レンズで撮影した画像を変換するためのツールだろうから、比べるのはおかしいのかもしれないけれど…。

そのままだと、1枚の画像から180度分しか得られないので、blender上でハイポリゴンのゴルフボールを4方向からレンダリングして、GIMPで開いて360度分が入った正距円筒図法相当の画像に仕立ててみた。球の画像を正距円筒図法にすると端の部分がどうしてもボケてしまうので、他の画像を下のレイヤーとして配置して、レイヤーマスクでグラデーションをかけて、ボケてしまっている部分をうっすら消しながら馴染ませていった。

出来上がった画像は以下。CC0 / Public Domain ってことで。

tex_ep_eevee.png
_tex_ep_eevee.png (1.3MB, 2048x1024)

一応、psd と xcf を入れた zip も置いときます。

_tex_ep_eevee_psd_xcf.zip (16.05MB)


blender でローポリモデル(UV球)に貼ってみた。

golfball_take02_ss01.png

イイ感じなのではなかろうか。

ただ、このテクスチャ画像は、IBLで照明を当てて、色がついてしまった状態の画像なので…。この3Dモデルを回転させると、照明とは無関係に、影やハイライトがついた状態でグルグル回ってしまって不自然な見た目になってしまう。本当に欲しいのは、ノーマルマップ画像かバンプマッピング画像なわけで…。

でもまあ、件のツールを使えば、球の画像から正距円筒図法の画像を作ることもできそうだと分かったので、これはこれで…。どこかしらの場面でこのツールが役立ちそうな気がする。ありがたや。

ハイポリゴンモデルの凸凹をローポリモデルにベイク :

ハイポリゴンモデルの凸凹具合を、ローポリモデルのノーマルマップ画像にベイク(焼き付け)できないか試してみた。環境は blender 3.6.19 LTS。

作業手順は以下が参考になった。ありがたや。

_【Blender3.1】ノーマルマップで凹凸を表現しよう! | CGbox
_【Blender2.9】ベイクを使って効率化!焼きこみを行おう! | CGbox

「ハイポリゴンモデルもUV展開しておかないとマズいのかな? だとしたらかなり面倒臭いな。大変そうだ」と不安に思っていたけれど、それは完全に勘違いだった。ハイポリゴンモデルはUV展開等しておかなくていい。ローポリモデル側でUV展開してあればそれだけで作業できるらしい。

最初の作業時は、光源に対して変な方向に影がついて悩んだけれど、ノーマルマップノードを挿入しないまま、テクスチャ画像ノードの出力をいきなりノーマルに入れてしまっていたのがまずかったらしい。ノーマルマップノードを間に入れてやったら、それらしい結果になった。

出っ張り具合と引っ込み具合が逆になっている気がするけれど…。画像ウインドウ?内で、ノーマルマップ画像の緑チャンネルを反転してみたらそれらしいディンプルになった。これでいいのだろうか…?

得られたノーマルマップ画像は以下。CC0 / Public Domain ってことで。

golfball_nmlmap.png
_golfball_nmlmap.png (328KB, 512x512)


blender上で、ローポリモデルにノーマルマップとして設定してみた。

golfball_take03_ss01.png

どう見てもローポリなのに、パッと見はゴルフボールのように見える。イイ感じなのではなかろうか…。これでいいんじゃないかな…。

Godot Engine上で使ってみた :

得られたノーマルマップ画像を、Godot Engine 4.3 x64 上で使ってみた。SphereMesh に設定する。

godot_ss01.png

凸凹具合が反対になってしまった…。

ググったところ、ノーマルマップには DirectX版と OpenGL版があるそうで。blenderで使うノーマルマップ画像は OpenGL版らしい。でも、Godot Engine も OpenGL版を使いそうな気がするのだけど…。OpenGL互換がどうとか言ってるし…。

緑チャンネルを反転すれば DirectX版とOpenGL版の変換はできるらしいけど、今回は Godot Engine上で NormalMap の Scale を -1 にして対応してみることにした。

godot_ss02.png

godot_ss03.png

これでそれらしくなったのではなかろうか。

2025/01/23追記 :

Godot Engine上で凸凹具合が反対になった点が気になったので、blender上でノーマルマップ画像を作り直してみた。以下のような感じになった。

golfball_nmlmap2.png
_golfball_nmlmap2.png (328KB, 512x512)

この画像なら、blender上でも、Godot Engine上でも、期待した凸凹具合になった。

2025/01/23(木) [n年前の日記]

#1 [godot][cg_tools][blender] ゴルフボールを作りたい。その4

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ローポリモデルに指定できるゴルフボール用のノーマルマップ画像を作成したものの、Godot Engine上で凸凹具合が反対になってしまった点が気になったので、再度 blender上でベイクして作成し直した。

以下のようなノーマルマップ画像が得られた。CC0 / Public Domain ってことで。

golfball_nmlmap2.png
_golfball_nmlmap2.png (328B, 512x512)

この画像なら、blender 3.6.19 LTS上でも、Godot Engine 4.3上でも、期待した見た目になってくれた。

どんな点に注意すれば期待したノーマルマップ画像が得られるのか、今一つ分かってないけれど…。もしかすると、「押し出し」の値を指定してベイクするか、もしくはローポリモデルのほうをハイポリゴンモデルより大きめにしてからベイクすると改善されるのかもしれない…?


ついでに、ディンプルが大きめの画像も作成してみた。これも CC0 / Public Domain ってことで。

golfball_nmap.png
_golfball_nmap.png (256KB, 512x512)


Godot Engine上で使ってみた結果は以下。

godot_ss01.png

ノーマルマップをベイクする手順をメモ :

blender 3.6.19 LTS で、ハイポリゴンモデルの凸凹具合を、ローポリゴンモデルのノーマルマップにベイク(焼き付け)した際の手順を一応ざっくりとメモしておく。

  1. まずはハイポリゴンモデルを作成。
  2. 次にローポリゴンモデルを作成して、UV展開しておく。マテリアルも作成して割り当てておく。
  3. レンダーエンジンを Cycles にする。Cycles じゃないとベイクできない。
  4. ローポリモデルのマテリアルに画像テクスチャを追加して、画像を新規作成。色空間は「非カラー」にしておく。
  5. ハイポリモデル → ローポリモデルの順で複数選択。
  6. ベイクしたい画像テクスチャノードを選択。
  7. レンダープロパティで、ベイクの項目を開く。
  8. ベイクタイプは「ノーマル」。「選択物→アクティブ」にチェックを入れる。押し出しに、0.2 - 0.5m等を入れる。
  9. ベイクボタンを押すと、新規作成しておいた画像にノーマルマップがベイクされる。
  10. 画像を保存。

出来上がったノーマルマップ画像は、ノーマルマップノードを経由して、プリンシプルBSDFのノーマルに入れることができる。ノーマルマップノードが無いとおかしな見た目になるので注意。

ベイク時の「押し出し」の値は、ベイクしたいオブジェクトからどれだけ離れた位置から内側向けのレイを飛ばすかの距離。上手くベイクされない時は、この値を増やして範囲を広げてやると改善される時があるらしい。

一応スクリーンショットも貼っておく。

bake_normalmap_ss01.png

bake_normalmap_ss02.png

bake_normalmap_ss03.png


参考ページは以下。

_【Blender】リアルに見せる技法!その名もノーマルマップ! - ゆるブレ!
_【Blender3.1】ノーマルマップで凹凸を表現しよう! | CGbox
_ノーマルベイクやり方|Kioshiki Kageji
_Blenderでノーマルマップを作成(ベイク)する方法 | STYLY
_ノーマルマップを上手にベイクする方法【blender3.4.1】 - YouTube
_【Blender】ノーマルベイク時のレイの考え方

TexToolsでベイク :

blender上で TexTools というアドオンを使うと、ベイクが少し楽になるらしい。試してみた。環境は、blender 3.6.19 LTS + TexTools 1.6.1。

  1. ハイポリゴンモデルは、名前の最後に "_hp" をつけておく。
  2. ローポリゴンモデルは、名前の最後に "_lp" をつけておく。
  3. ハイポリゴンモデルとローポリゴンモデルの両方を複数選択。
  4. UVエディター内でNキーを押してサイドバーを表示。TexToolsタブを選択。
  5. 「ベイキング」を展開。
  6. ベイキングの種類として、Tangent Normal を選ぶ。
  7. 「ケージを押し出し」に適当な数値を入れる。
  8. 「AA」でサンプリング品質を選ぶ。
  9. 「Bake 1x」をクリックすれば、ノーマルマップをベイクすることができる。

textools_ss01.png

textools_ss02.png


たしかに、簡単にベイク作業を行うことができた。事前に画像を新規作成しておかなくても、いきなりベイクボタンを押せば作成してくれるし、サンプリング品質も別途指定できるし、「押し出し」の量も指定できる。

このアドオン、もしかして、レンダーエンジンを Cycles にしなくてもベイクしてくれるような…? 内部的にレンダーエンジンを Cycles に切り替えて処理してくれているのだろうか?

2025/01/24(金) [n年前の日記]

#1 [windows] お袋さんのノートPCをメンテナンス

お袋さんのノートPC、DELL Vostro 15.3558 をメンテナンス。Windows Update をしておいた。ついでに自分用のローカルアカウントも追加。

せっかくの機会だから、Windows10からWindows11にアップグレードしようかなと思っていたけれど、確認してみたら CPU が Intel i5-5200U。Windows11 はサポートしてないCPUだった…。

これは Linux でもインストールして使うしかなさそうだな…。しかし、Linux用のパーティションはどのくらいのサイズが必要なのだろう。64GBで足りるだろうか。32GBでは全然足りなかった記憶がある…。

ググって分かったことをメモ :

とりあえず、このノートPC DELL Vostro 15.3558 は、起動時にF2キーを押せばBIOS設定画面に入れるらしい。F12キーでBoot Menu が出るらしいけどそちらは試してない。

Linuxをインストールする際は、以下の設定が必要っぽい。
  • BIOS が UEFI に設定されてること。
  • SATA Operation Advanced Host Controller Interface (AHCI) に設定されていること。
  • Legacy オプション Read-Only Memory (ROM)s を無効に。
  • セキュア ブートを無効に。

#2 [nitijyou] お袋さんが病院に行った

詳細はGRPでメモ。

2025/01/25() [n年前の日記]

#1 [pc] DELL Vostro 15.3558について調べてた

お袋さん用のノートPC、DELL Vostro 15.3558 (CPU Core i5-5200U、RAM 4GB (DDR3-1600, PC3-12800), Windows10機) について調べてた。Windows11にはアップグレードできないスペックなので、今後どうしたものかなと…。

Windows10がインストールされているSSDを別のSSDと交換してしまって、Linux だけをインストールしてしまうのもアリかなと思ったけれど、そもそもSSDの交換はできるのかどうか…? RAMも4GBしかないけれど増設できるのかどうか…? そのあたりを調べていた。

以下のページが参考になりそう。

_デル Vostro 15 3000(3558) SSD換装 | 名古屋でパソコン修理・遠隔サポートは、さくらパソコンレスキューのブログ
_Dell Vostro 3558 SSD 換装: 風船あられの漢字ブログ
_Dellのノートパソコン Vostro15 3558 の HDD が逝ったので SSD に換装し Windows 11 をインストールし延命させました! | 千里のポータルサイト
_DELL Vostro 15 3000シリーズ 3558 SSD換装とメモリ増設 - YouTube
_メモリ増設 Dell ノートパソコン Vostro 15 3000 (3558) Celeronエクスプレスモデルにメモリーを増設 | N1729.com
_Vostro 15 3000(3558)レビュー:パソコン徹底比較購入ガイド
_Vostro 15 3000(3546/3558/3559/3561)の比較(違い)


このノートPCは、ひっくり返して、バッテリーを外して、かつ、アクセスパネルを外せば、HDD/SSDやメモリにアクセスできるらしい。

使えるメモリの種類は SO-DIMM DDR3-1600(PC3-12800)。1スロット8GBまで、2スロットあるから16GBまで対応。今現在 8GB x 2枚が3,000円以内で購入できそう。ただ、低電圧版(1.35V)と通常版(1.5V)があるようで、どちらを選べばいいのかDELLのサイトを眺めてもよく分からなかった。まあ、おそらくは低電圧版を入れることになるのかなと…。メモリを増設してる方々は低電圧版を選んでいるようだし…。

SSDの交換もできそうな気配がする。SATA接続の2.5インチSSDを選べばいいのかな。M.2タイプではないっぽい。

もっとも、メモリを増設したり、Linuxをインストールしたとしても、そもそもお袋さんはノートPCを滅多に使わないので、作業が無駄になりそうな気もする…。以前も階下にノートPCを1台置いていたけれど、何ヶ月も電源を入れてなくてバッテリーが干上がってほとんど劣化してしまったので…。

2025/01/26() [n年前の日記]

#1 [tv] NHKスペシャル「ゲーム×人類」を視聴

NHK総合で、昨日と今日、2日に渡って放送されていたソレを録画していたので視聴。TVゲームをテーマに、というかTVゲームと社会の関わり合い方を紹介していく番組だろうか。「PART I 30億人の熱狂と未来」と「PART II 変貌する人間と社会」の2部構成。

第1部は、ゲーム市場の成長ぶりをグラフで紹介したり、eスポーツやインディーゲームの存在を紹介したり、ゲーム種類の幅が広がってきた様子を紹介したり、ロシア国内のプロパガンダゲームを紹介したり、といった感じだった。

第2部は、全盲の方が格ゲーをプレイしてる事例、ゲームをキッカケに結婚した事例、ゲーム経由で犯罪に巻き込まれる事例、ゲームを歴史教育に活用する事例を紹介していた。

全く知識が無い人でも今こういう状態になってるらしいと多少は把握できる雰囲気になってた気がする。まあ、詳しい人ならツッコミを入れたくなる部分も多々ありそうだなとは思ったけど…。世の中にはこういう事例がありますよ、と知ることができたので、視聴できて良かった。

さておき。ゲームを使って子供達に政治的主張を伝えようとするのはなんだか嫌だな、と思った直後に、しかしそんなことを言い出したらアニメや映画や漫画や小説もアウトになっちゃうなと気が付いた。ガンダムだって、アニメを通じてスペースコロニーがどうとかの知識を子供達に吸収させてきたわけだし…。ロシアや中国のように、政府にとって都合のいい情報だけを国民に与えるために、特定の情報は隠蔽するように画策してる状態よりも、利用者側がその気にさえなればどんな情報も入手できる状態のほうがはるかに健全だろうし。「これを見せるな」ではなく、「これを見せるならこっちも見れるようにしておこう」のほうがいいよな。たぶん。…本当にそうかな? そこは情報によるんじゃないか?

#2 [neta][anime] 教えてニャンパ先生

バカ妄想メモ。

深夜アニメを眺めているうちにふとなんとなく思った。昨今のアニメって、草食系男性主人公がとにかくグイグイ来る美少女達に囲まれてるシチュが妙に多い気がするなと…。

自分から何のアクションも起こさない男性主人公の前に白馬に乗った王女様達が次々に現れる、なんてことは現実にはまずあり得ないわけだけど。そのあり得ないことがフィクション作品故に次々に起こっていくあたりがそれぞれ人気を博している理由の一つ、ではあるのだろうなと。しかし、これほどまでにそういったシチュが、何度も何度も繰り返し提示されている現状に、何の問題も無いと言えるのだろうかと少し不安になってきた。日本の未婚率だの、少子化だの、そういった面に地味に影響を与えてしまっている可能性は全く無いと言い切れるのだろうか…。

そこでふとバカ妄想。たまには自分からアクションを起こして試行錯誤していく男性主人公を描いた作品が出てきてもいいのではないか。肉食系とまではいかなくても、せめて草食系から脱することを啓蒙する作品というか…。そんな作品が現代日本では求められていたりしないか? それもまた社会貢献の一種だったりしないか?

そこから更にバカ妄想。声優業界には女性と距離を縮めることに関して達人の域に到達している方々が結構いらっしゃるという話もチラホラ見かけるわけで、それら歴戦の勇者の方々に監修をお願いしたり原作者ポジションに立ってもらう、という企画はどうだろう…。視聴者が「そんな斬り込み方が…!」と目からウロコの教育アニメ…。

どうせなら、そういった方々が演じやすいキャラを作ってしまって動かすのもアリなのかな…。

「オイ、ニャツメ。お前、あの娘とお近づきになりたいと思っておるのだろう? ならワシが指南役をしてやろうではないか。こんな感じで声をかけると良いぞ。(いきなりイケボに) お嬢さん、この後xxxxをxxxxなどはどうですか? (元の声で)こんな感じでどうじゃ」
「さすがニャンパ先生。そんな手管が…」

みたいな。

ニャンパ先生の中の人はあの方以外考えられないけど、ニャツメの中の人は別の方に変えたほうがいいかもしれない…。オリジナル版のニャツメの中の人はニャンパ先生2号を演じてもらったほうがたぶん合ってそう…。せっかくだから3号4号も用意したほうが…。候補が何人か思い浮かぶ…。

ここまで男性向けコンテンツとして妄想してたけど、ニャンパ先生が実例を披露するあたりで女性のアニメファンが「キャー!」と喜んでくれそうな気もしてきた。実は女性向けとして考えたほうが商品としては成立しやすい…? 考えてみたら先生のイケボだから通用する技の数々なのであって、そのへんの凡人の声質では「コレ全然参考にならねー」と言われそうでもあるか…。

アニメとして作らなくてもいいよな…。例えばキングレコードが声優さんを司会にしたトーク番組を時々作っていたりするけれど、あんな感じの実写トーク番組でも十分なのかもしれない。ニャンパ先生1号2号3号は指南役として出演していただいて、若手の男性声優さんと女性声優さんがお題となるシチュを演じたVTRを見せて、さてこういう状況ならどう振舞うのがベターなんでしょう、先生よろしくお願いします。「そうだねー。俺だったらこう行くかな? (イケボで実演)」。みたいな。

などとバカ妄想をしたけれど、そういった声優の方々に話を持ち込んでも、プライベート面を切り売りしたくないとか、俺の秘策の数々を披露したくないなあとか、フツーに断られそうな気もする…。

いや、でも、女性ファンは、先生の実演シーンで絶対喜ぶよな…。喜ぶと思うんだけどな…。どうなんだろう。

バカ妄想です。オチは無いです。「ニャンパ先生」というワードを何故か思いついてしまったので書きたくなっただけでして…。

2025/01/27(月) [n年前の日記]

#1 [anime] 「メダリスト」のOP曲になんだかちょっとハマりそう

録画していたTVアニメ「メダリスト」の4話を視聴。フィギュアスケート選手を志す女子小学生の成長物語、という説明でいいのだろうか。

OP曲、いいですな…。作詞作曲編曲は米津玄師さん。曲名は「BOW AND ARROW」。4話目の視聴でようやく歌詞にも意識が向くようになって、そこから俄然興味が湧いて、色々ググって「なるほどなあ。名曲だ名曲だと聞いてはいたけど、これはたしかに名曲かも」と感心してしまった…。

とは言え正直なところ、曲だけ聞いても、あるいは歌詞だけ眺めても、全然ピンとこない人がほとんどだろうな、とも思う。「なんでこの程度の曲が話題になってるんだ?」「どうせ作曲者のネームバリューだけで喜んでるんだろ。オタクってつくづくちょろい連中だな。ケッ」と言い出しちゃう人達も居るのだろうなあ、などと想像してしまうぐらいに、曲や歌詞だけを見聞きした状態ではピンとこない気もする。

しかし…。アニメ版、あるいは漫画原作に多少触れた上で、この曲を耳にすると、そこから途端に化学反応の連鎖が次々に起き始めるはず。この曲はそういう種類の曲なのだろうと思う。歌詞の一文一文が示すところ、イントロのリズムの意味、選んだ音色が目指したのであろう各イメージが推測できるようになってくると、「ああ…そういうことか!」という気づきが得られる。昔の流行り言葉(?)で言えばアハ体験というやつだろうか。それも一つや二つじゃない。「あー、ここもか。いや、ここもだな。いやいや、もしかしてここもそうなんじゃないか?」と次々に仕掛け(?)を見つけ始めて…。そこまでくると、聞き手の脳内では作品本編や曲に対するイメージもグングン広がって、そりゃもう本編と曲への思い入れだって青天井で増していくことは容易に想像できる。

この曲は作品本編をたしかにブーストしていると思えるし、本編も曲をブーストしていると言える。タイアップ曲としては理想の形ではないだろうか…。そして、作品本編とタイアップ曲、その2つの関係性を意識した上で、改めて曲名を見直すと…。

弓だけでは役に立たないし、矢だけでも役に立たない。だけど、弓と矢が一緒になった時、途端にそれは本来持っていた実力を発揮する…。もちろん歌詞内容からしてこの曲名は、 選手とコーチの関係性を示唆しているのだろうけど。ひょっとすると、タイアップ曲というものの目指すべき形(の一つ)すら示唆してしまっている、などと捉えることだってできてしまうのではなかろうか。

個人的に、あまりこのワードは使いたくないと思っているのだけど、それでも今回は使わざるを得ない…。米津さんって天才じゃないのか…? よくまあこんな曲を作ってみせたもんだなあ…。素晴らしい。

もっとも、前述のとおり、曲だけ聞いてもピンとこない人が多数だろうとも思うわけで、このあたりアニソン/タイアップの難しさを思い出したりもする。曲単体での魅力を増そうとするとタイアップ先と乖離してしまってタイアップとはなんぞやということになるし。タイアップ先にしっかり寄り添うと曲単体としてはなんじゃこりゃになってしまったり。さりとて、曲単体でもイケるけどタイアップ先にも寄せてある、適度なバランスを重視し始めると、どっちつかずな感じになって記憶に残らない凡庸な曲になってしまったりもして。アニソンには、どちらに寄せるのが正解なのかその判断自体が難しい、という面もありそうだよなと…。それでも数々の名曲、ヒット曲が出ているわけだから、投げやりになって雑な扱い方してちゃダメだよなとも思うけど。

何にせよ、感服しました。ネット上で、「米津さんの作る曲は原作理解の解像度が圧倒的に高い」という評を見かけた記憶があるけれど、これはたしかに納得せざるを得ない…。こんな方に曲を作って貰えたなんて、「メダリスト」という作品は幸せ者じゃのう…。良かったね、いのりちゃん。米津おじさん(お兄ちゃん?)が君のためにいい曲作ってくれたよ。みたいな。

余談。一般的な曲と比べて、この曲のフルバージョンの長さが妙に短いのは何故か、てなあたりの仕掛けにも感心してしまった。よくまあそんなこと思いついたもんだなあ…。そこまで寄せるか…。いや、そうすることで寄せられるのではと気づくあたりがまずスゴイ。フツーはそんな発想出てこないでしょう。やっぱり天才としか思えない…。素晴らしい。

2025/01/28(火) [n年前の日記]

#1 [godot] ゴルフボールのテクスチャを反映させてみた

Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

_godot - 2025 - mieki256's diary Title List
_godot - 2024 - mieki256's diary Title List

ゴルフボールに、 _先日作成したノーマルマップ画像 を指定してみたのだけど、ゲーム画面上では凸凹具合が全く見えず、只の白い球になってしまってなんだかガックリ。

golfball_ss01.png


あんなに苦労してノーマルマップ画像を作成したのに…。ボールが回転してることも見た目では全然分からない…。せめてゴルフボールに何かしらのマークっぽいテクスチャだけでも貼っておこうか。いや、焼け石に水かな…。

実際のゴルフプレイ動画をググって眺めてみたら、ボールにマークがついているだけでもボールの回転具合が結構分かりそうな感じに見えた。もっとも、カメラがボールをズームして映してる時の話だけど…。小さく映ってる時はやっぱり分からないかも…。

2025/01/29(水) [n年前の日記]

#1 [nitijyou] 台所用の流し台ストレーナーを購入

台所の流し台ゴミ受(おそらく2021/07/16に購入)が壊れたらしいので、ホームセンターホーマック(DCM)で代替品を購入してみた。

流し台ストレーナー、という名称の商品らしい。品番: 9402、品名: 流し台ストレーナー、材質: ステンレス、販売: 株式会社カクダイ、税込767円。上部直径 85mm、下部直径 73.5mm、深さ23mm。

今まで使っていた品は、排水口を塞いで水を溜められるゴムがついてたけれど、これまでの利用状況を鑑みると、流し台にわざわざ水を溜めて何かの作業をする場面が皆無だったので、今回は排水口を塞ぐゴム等がついてないシンプルなものを選んでみた。値段も少しは下がるし…。ただ、今までは網だったのが、ステンレスの板に穴がいくつか開いてるタイプになったので、ゴミが流れやすくなってしまったかもしれない。網のタイプがあれば良かったのだけど、そういうものは店頭になかった。

ちなみに、以前購入した品は、当時税込1,078円だったけど、今回店頭で確認してみたところ、ほぼ同じ製品が2,000円ぐらいになっていた…。

そのうちまた壊れて買い替えることになりそうなので、念のためにパッケージの画像も残しておく。

nagashidai_ss01.jpg

nagashidai_ss02.jpg

nagashidai_ss03.jpg

#2 [zatta] ウォーターポンププライヤーについて調べていた

結構前から、風呂場のシャワーヘッド(KVK製)の根元から水がピューピューと漏れるようになってしまって、シャワーホースごと交換したいという話になっているのだけど。交換用のシャワーホース自体は妹が色々調べて購入済みなのだけど、元々ついているシャワーホースの根元のナット?金具?が外せなくて困っている。

金具のサイズは24mm、らしい。妹がモンキーレンチを購入してきて試したらしいのだけど、全然回ってくれなかったそうで。自分も先日試してみたけど、そもそもホースの根元のあたりはスペースがほとんどなくて、モンキーレンチが入るスペースすらない。

どうにかできないものか、狭いところにも入る工具はないかとググってみたら、ウォーターポンププライヤーなる工具が存在するそうで…。配管工事をする時に使う工具で、くの字の形になっているので、狭い部分に入れて作業することもできる模様。

_ウォーターポンププライヤーの使い方 【通販モノタロウ】

ホームセンターホーマックの店頭で探してみたところ、2,980円や3,980円の品がほとんどで、お試しで購入するのはちょっと…。ただ、DCMブランドの品なら税込1,000円ぐらいで買えそうではあった。もっとも、安いということは罠があるはず…。数回使ったら壊れるとか、表面加工や材質がアレですぐに錆びるとか、取っ手部分のバリが酷くて手が傷だらけになるとか、そういう何かしらが潜んでそうだなと…。でもまあ、数回使えればそれで事足りる場面だってあるだろうし、状況によっては全然使えそうな気もする。

ただ、ウォーターポンププライヤーを使うと、ナットの表面がボロボロになるという話も見かけた。もし、この道具を使って作業しても問題を解決できなかったら業者さんにお願いするしかなくなるけれど、ナット表面がボロボロだからこれじゃ作業は無理です、と言われてしまう可能性もありそうで…。安く済ませようとしてアレコレしてたら結果的に高くついてしまった、なんて展開はあるあるだし…。最初から業者さんにお願いしたほうがトータルでは安く済みそうな気もする…。

何はともあれ、こういう工具もあるらしい。さて、どうしたもんか。

2025/01/30(木) [n年前の日記]

#1 [nitijyou] 雪がそこそこ降った

朝からずっと雪が降っている。

朝と夕方の犬の散歩もちょっと大変だった。面倒臭がって合羽を着ないで行ってきたけど、帰ってきた頃には体中が雪で真っ白。失敗した。合羽を着ていくべきだった。

ただ、雪が積もってる風景の中で、真っ白な合羽を着て歩いてるのも危険な気もする。車を運転しているドライバーから見て、ハッキリ視認できる色って何だろう…。黒や茶では風景の中に紛れてマズかったりしないか。赤や緑のほうが目立たないか。それとも、黒や茶のほうが明度差があるから、それはそれで目立つのだろうか。いや、どのみち雪が張り付いて真っ白になっちゃうかな…。

雪の日用の目立つ色、迷彩色を避けられる色って何だろうな…。

2025/01/31(金) [n年前の日記]

#1 [anime] アナログ感のある映像ノイズって何があるだろう

思考メモ。

TVアニメ「不遇職【鑑定士】が実は最強だった」を眺めていたら、ED映像全般にデジタル的な映像ノイズが付加されていて、目にしているうちになんだか考え込んでしまった。

誤解を招くノイズ :

こっちはBS放送で見ていて、しかも当日は雪が降っていたものだから…。うっかりするとこの手のノイズを目にした時に、天気のせいでBS放送の信号が弱まって受信できなくて画面にノイズが入ってしまっている状態と勘違いしそうでもあるなと…。いやまあ、そういう時のBS放送画面ってもっと盛大に画面が崩れたり、そもそも映像が止まったりするので、件のアニメのソレはあくまで演出で入れてるノイズと判別できるはずとも思うけど…。

日本のアニメスタジオって東京に集中してるし、演出家さんも東京近郊で暮らしているのだろうから、TVアニメと言えば地上波放送に決まってるし、作った映像は確実に視聴者の元にそのままの形で届くはずとすっかり思い込んでいるかもしれないなと…。例えばBS放送での視聴 ―― 受信状態によっては映像にノイズが入ることだって全然あり得るということが頭の中からスポーンと抜けているので、こういう誤解(?)を招きかねない演出も積極的に入れてしまう面があったりしないかと邪推したりもして。

でもまあ、今後ネット配信が主流になっていけば、壊れたデータを受信してしまったのではないかと疑われかねないこういった演出が多少は減ってきたりするのかもしれないか。いや、そんなこともないか。ネット配信で不具合が出れば映像がそこで止まるから、ノイズ云々はむしろ無縁になって、今まで以上に映像ノイズが利用される場面が増えていくのかもしれない。

世界観に合っているノイズ :

閑話休題。こういったデジタル的な映像ノイズは、デジタルワールドを舞台にしたアニメであれば雰囲気的に全然合ってそうな気もするのだけど。ファンタジー異世界を舞台にしたアニメではちょっと合ってない気もしてきた。

例えば、スタジオジブリの「ゲド戦記」でデジタル的な映像ノイズが挿入されていたらどう感じるだろうか? 「お前それは違うやろ」と感じる人が多数なのではないか。しかし、その「違うやろ」を、雑に平気でやっちゃうのが日本のTVアニメ業界…。

まあ、件の作品は、異世界転生はしてないけれど、謎のステータス画面がキャラの目の前に平気で出現しちゃう設定なので、こんなのよくあるゲーム世界とどうせ似たようなもんやろと雑に分類しちゃってもいいのかなあ、という気もしているけれど。「ゲド戦記」は謎のステータス画面なんて出てこないから、あのへんと一緒にしちゃうのは違うわな…。

さておき、ファンタジー異世界に、デジタル的な映像ノイズが合ってないとしたら、一体どんな種類の映像ノイズなら合ってくれるのだろうか? …そこはやっぱり、アナログ的な映像ノイズかな? そういう種類のノイズならファンタジー異世界のイメージにも合うのだろうか?

などと考えたところで悩んでしまった。アナログ感のある映像ノイズって、一体どんなノイズ…? 何があるんだ? 例えば「ハリーポッター」シリーズあたりでは、どんな映像ノイズを使ってただろうか? 思い出せない…。そもそもノイズが載ってるシーンなんて無かったかな…? 過去映像を見せる時にどうしてたっけ…?

それはともかく、アナログ感のある映像ノイズと言えば…。思いつくのはフィルムに起因するノイズだろうか…。昔、手塚治虫先生が、フィルムノイズと本編のキャラが絡み合い続ける実験アニメ(「おんぼろフィルム」)を作っていたけれど、あのアニメを見ればどういうノイズが存在していたのか網羅できそうな気もする。

他にもあるとしたら、地上波アナログ放送で見られたノイズや、ビデオテープで目にしたノイズだろうか…。でも、そのあたり、どういうノイズがあったっけ…? 同期ズレ? 色ズレ? 今となっては思い出せないな…。あの頃ってどういうノイズがあったかなあ…? 砂嵐映像を加工した感じのノイズもあり得そうだけど…。ノイズと言えば、まずは砂嵐だよな…。

そこまで考えて、ふと気が付いた。映像を記録するメディアが存在しているから、そこに映像ノイズというものも存在するのだよな…。しかし、ファンタジー異世界には、映像記録メディアなんておそらく存在しないだろうから、映像記録メディアに起因する映像ノイズを画面に出した時点で、それは既にイメージが合ってないよね、と考えることだってできそう。

となると、他にどんなノイズがあり得るのだろう…。ファンタジー異世界=魔法が存在する世界であることを強く感じられる映像ノイズ…。そこまで来ると、ちょっと思いつかない…。見た瞬間に「おー。これは魔法らしさを感じる映像ノイズですな」と思える映像ノイズって…それって一体どういうノイズなんだ…? 例えば、蝋燭の炎が揺らめくような、ああいうノイズだったり? あるいは、昔の遺跡が朽ち果てていく、あの感じを連想させるノイズ…ってソレどういうノイズやねん。映像の一部が、岩が崩れてるように欠落してるとか? しかし、それって映像ノイズとして見てる側に理解されるのだろうか。

そもそも映像ノイズって、どういう時に使うものなんだろう…? 見てる側に一体何を伝えたくて、あえてノイズを入れているのだろうか…? そのノイズって、別の何かで代替できないのかな? 「コレを使うことでも同じ効果が得られるよなあ」と思える何かって無いのかな?

思考メモです。オチは無いです。

以上、31 日分です。

過去ログ表示

Prev - 2025/01 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project