- BACKNUMBERS -
2024 / 5
2024 / 6
2024 / 7
2024 / 8
2024 / 9
2024 / 10
2024 / 11
2024 / 12
2025 / 1
2025 / 2
2025 / 3
2025 / 4
2025 / 5
2025 / 6
2025 / 7
2025 / 8
2025 / 9
2025 / 10
2025 / 11
2025 / 12
2026 / 1
2026 / 2
最新月

web6047 - 2026年 3月

ここは個人の趣味のページです。

昭和49年生まれ、血液型B型、男。

名前は、かわ、kawa、d_kawakawa、cookiepuddingman、平行四辺形 などいろいろあります。

工場で働いており、モノ作りが好きで小学生のころからプログラミングをやっています。

文書を書くときの助詞や助動詞、副詞などが苦手で、記事を書いて後から「不自然だな」と思ったりします。

iTunes real time information:
now loading...

注: ここに表示される氏名、名称と当ホームページはなんら関係ございません.


私がプログラミングを好むのは、プログラミングは私の「物づくり」に対する探求心創造性を十分に満たしてくれるから、、です。

憧れに向かう、形にするのが楽しくて好きだ。そんなわけで、この個人ページではプログラミングの話をすることが多いです。


ここの管理人、
AI の利用やめるってよ。

AI の問題点:

  1. 自分で考えずに AI を利用することで、考える力が減退する。
  2. 人と人との交流(教える、教わる)が減る。
  3. 創作物のオリジナリティが無くなる。(自分の力で作ることの喜びが減る)
  4. 犯罪に使われている。
  5. AI のハルシネーション(幻覚を見ながら語ることがある)により、人間が間違った知識を AI から学んでしまう。
  6. 公序良俗に反するコンテンツの氾濫。(2025/10/18追加 ChatGPT の OpenAI がそのような方針をとったから)

これらが向こう10年解決されないだろうと見込んで、やめることにしました。(2025年5月23日~)

私は AI に頼らず「自分の力」を大切にしたいです。

…とはいえ、人間は新しく見つけた技術を手放すということは基本的にやらないと思います。

だから私も後々 AI を利用することにはなると思います。

でも上記の問題点は確かなもので、将来 AI ロボが私の家の扉をコンコンと叩いて

「市からの要請で、お手伝いするため おうかがいしました」

と言うまでの間は、この AI 技術を導入せず、頑張ってみようと思います。

でもこの考え方、キツイと思うのでマネしなくていいです。

- Special Documents -

特別な記事へのリンク

3DCGプログラミングの方法
書籍「はじめて読む486」の
サンプル動作環境の作成方法
3Dお姉さんによるプログラミング解説
RPG のルーツ(PDF)
4コマ/機動戦士初心者ガンダム

ゲームコーナー 

クレイジーバルーン
(↑, ↓, ←, →)
テトリス
(←, →, ↓, z, x)

その他 単発のアプリ

矩形波は複数波形の合成です
SVC: 簡易的な試作
SVC: パーツ連結のみ
SVC:パーツ連結,ポーズ補間

- 以降は日記です -

2026年3月1日

プログラミング 人体描画システム6

  1. 人体描画システムを知恵袋で活用し始めた
  2. 吹き出しのしくみ
  3. VBA 矢印図形の注意点
  4. しかし知恵袋の衰退
1. 人体描画システムを知恵袋で活用し始めた

私が今かかりきりで作っている「人体描画システム」。

知恵袋の回答の添付画像でさっそく使い始めましたね。


SAVE/LOAD 機能でポーズを呼び出すと、吹き出しはそのままにポーズだけが変わりますね。

たとえばこう、

寝ながらめんどくさそうに。

知恵袋の質問者たちを見ていると、こういう気楽なスタイルの方が良いのかもしれません。


やれやれポーズなのに言葉が逆。

いるんだよなぁ、こういう回答者。頑張ろうとも言わずに。┐(´∀`)┌ヤレヤレ


お願いポーズで言われると…

こういう感じのシングルマザーとかたくさんいそうだな。

2. 吹き出しのしくみ

以上、どのようなポーズに切り替えても、吹き出しは自然な位置を保っています。

吹き出しのデータは Excel で作っていて、そのときに、点線の四角形は「HTML で文字を表示する部分」を示しており、

赤い矢印が「吹き出しの "尾"(話者に向けられた尾状の印)の方向」を示しています。

Excel の図は、Excel VBA で操作することが可能で、点線の領域の位置とサイズ、矢印の位置と方向などをテキストファイルに落とすことができます。(図形自体は .png へ落とすメソッドがあります。私が使っている Excel 2010 では図を一度グラフの枠に入れて、グラフの枠に .png へ落とすメソッドがあるのでそれを利用します。最新の Excel ではたぶんグラフでなくても標準で .png へ落とすメソッドがあるんじゃないかと思います)

  1. テキストファイルに落とすときに、ファイル名を .js にして、内容を JavaScript にすれば、インターネットのページで使う JavaScript とすることができ、
  2. キャラの口の位置(実際やっているのは頭の中心です)の 3 次元座標を 2 次元座標へ投影(変換)し、
  3. 吹き出しの矢印の延長線上にその 2 次元座標が来るように、吹き出しの位置を調整すれば、吹き出しは自然な位置を保つことができる、

というしくみになっています。

3. VBA 矢印図形の注意点

しかし、Excel の図形で「直線の矢印」を作り、それを VBA で内部データを見ると、矢印の方向を示すデータは見当たりません。矢印の矢がどっちを向いているのか分からないと困ります。

なぜ方向データが無いのかというと、、

このような矢印を、


上下反転すれば、


左右反転すれば、


上限反転+左右反転すれば


…のようにすべて表現可能です。

微妙な角度は縦横サイズが変わることで おのずと表現されます。

だから「左上の開始点」と「矩形のサイズ」で直線の形を表現し、そして「上下反転する/しない」、「左右反転する/しない」というデータで「線の方向」を示しています。

だから矢印の方向を示すデータはないんです。

この説明をここに書かないと、私の記事を読んで「VBA で直線データを使おう」と思った人が、いざやってみると分からなくて困る、、ということになるので書いておきました。

4. しかし知恵袋の衰退

3D キャラ画像を知恵袋で活用し始めた、という話をしましたが、アメリカの「プログラミング知恵袋」である「Stack Overflow」は

下図グラフの左端が 2008 年 同サイト発足、

>Jeff Atwood and Joel Spolsky launched Stack Overflow for the public in 2008 as a programming Q&A website.

(ジェフ・アトウッドとジョエル・スポルスキーは、2008 年にプログラミングに関する Q&A ウェブサイトとして Stack Overflow を一般公開しました。)

ピーク時には 20 万件の質問を受付けていましたが、2022 年 11 月に ChatGPT が公開され、放物線を描くような落ち方を見せて、その後は斜め 45 度の降下が続き、グラフ右端の 2026 年では言葉通り「雀の涙ほど」となっています。

これが日本の「Yahoo!知恵袋」でも同様だとすれば、「知恵袋、知恵袋」と話題にするのも、なんだか時代遅れという感じもします。残念ですね。。

  • 初心者に厳しい、
  • 重複する質問が多すぎる、
  • うかつなことを言うと叱責や罵倒が飛んでくる

(下記窓の杜の記事より)

という文化が知恵袋には多かれ少なかれあるので、それが ChatGPT 以前の若干の降下原因のひとつと言われています。

私のように「頑張ろう」みたいなメッセージを出す人は少数派ということですかね。


このグラフはここ、

https://data.stackexchange.com/stackoverflow/query/1926661

にアクセスして、「Run Query」ボタンを押し、「ロボットではありません」の認証を行って、再度「Run Query」ボタンを押して、「Graph」タブをクリックすることで誰でも表示できます。


↑この私が書いた「グラフ表示方法の案内」を、AI が人間に代わってできるかどうか試したら、まぁ多少の操作の差異はあるものの、AI の案内通りにやってみたら普通にグラフにたどり着けましたね。

AI 動作確認:「ウェブの操作案内」(人間側の発言数5)
https://chatgpt.com/c/69a409c8-60ac-8324-a98f-af8ea24b8def

もはや「波」といえるほどの AI 波(えーあい・なみ)が人間社会に押し寄せていて、人間の仕事がなくなる勢いですね。

こうやって記事を書く意味もなくなっていくのかなぁ。


「人体描画システム」でプログラミングを教えようとしているんですけど、、

AI や他の人にはできない私なりの教え方がたぶんあると思うので、その線でやってみるか…

「Stack Overflow」について報じた各ニュース
窓の杜: 2026年1月9日
IT開発者向けの質疑応答(QA)サイト「Stack Overflow」で投稿数が激減、ユーザー戦慄
GigaZine: 2023年7月27日
IT技術系Q&Aコミュニティ「Stack Overflow」のトラフィックがわずか1年半で半減、チャットAIによる影響か?

(訪問者のどんなニーズと この記事がつながるか)

  • キャラに追従する吹き出しのしくみ
  • 面白いものを見たい
  • 日記を読みたい

2026年3月2日

プログラミング PC DOS J6.1/V + Turbo C

1. レトロ環境で円を描こう(FD や Vz)

2. レトロ環境に見る宇宙

3. レトロ環境にはなぜ宇宙があるのか?

3-1. 宇宙の実演(単なる円)

3-2. 可能性があるから宇宙がある

3-3. GUI が宇宙(可能性)を消しているのか?

3-4. Linux に宇宙はあるか

4. レトロ環境の宇宙の起源

※私は物書きのプロではなく、この記事は素人(の中の、中か下)の内容です。

この記事の価値は、

・古い時代の懐かしいアプリや、新旧のプログラミングの様子を見ることができる

・レトロ環境に熱が入るのはなぜなのかあれこれと探っている

・レトロ環境の宇宙の起源は何か

の 3 点です。また、長文で読みにくいというデメリットがあります。

1. レトロ環境で円を描こう(FD や Vz)

古い道具を使って、画面に円を描きましょう。

エミュレータの「VirtualBox」で PC DOS を起動して、ファイラーの FD を起動します。

FD は Windows のエクスプローラーに相当するものです。

WORK ディレクトリに移動して、作業を始めます。

テキストエディタの「Vzエディタ」を起動しました。

PC DOS J6.1/V が英語モードなので Vz エディタも英語版が起動します。DOS が日本語モードなら Vz も日本語版。

FD も同じで、英語版と日本語版があります。

Vz エディタは最近オープンソースになりましたね。

そして、Turbo C に同梱の BGIDEMO.c を参考にグラフィック関係の設定を書き、

最後に circle( 320, 240, 240 );

と書く。円を描く命令です。

closegraph(); を最後に書かないと、実行後に画面が乱れてフリーズしました。これも BGIDEMO.c を見て学びました。

tcc -c test.c

というコマンドでコンパイルします。

tcc は「Turbo C のコンパイラ」という意味で tcc。

-c は「コンパイルだけして、実行ファイルは作らなくてよい」という意味です。test.exe ではなく test.obj が作られます。

.exe には実行するときに必要な「スタートアップ」コードと、「外部ライブラリの関数」コードが含まれているので実行できますが、.obj にはそれらが入っていないので実行できません。

そして、

tlink   /x   c:\tc201\lib\c0s   test , test ,, c:\tc201\lib\cs   c:\tc201\lib\graphics

というコマンドで .exe の実行ファイルを作ります。

これを読んでいる人が tlink を使うことは基本無いはずですが、記事として意味不明な記述を避ける意味で、コマンドの説明を行います。

  1. tlink   /x   c:\tc201\lib\c0s   test , test ,, c:\tc201\lib\cs   c:\tc201\lib\graphics

    tlink は「Turbo C のリンカ」という意味で、tlink。
    リンカは別々のファイルに収められたコンパイル済み関数群を1つのファイルへ結合する、という道具なんですね。
    これがあるから .exe の実行ファイルを作ることができます。
    gcc とか bcc とか lc とかのコマンドだけで .exe が出来上がるのはそれらが内部で別途リンカコマンドを呼び出しているからです。
  2. tlink   /x   c:\tc201\lib\c0s   test , test ,, c:\tc201\lib\cs   c:\tc201\lib\graphics

    /x は「マップファイルを作らなくてよい」という意味です。
    tlink を使うと map ファイルというものが作られますが、私は map ファイルの使い方はよく知らなくて、特別いらないので作らない指定をします。
  3. tlink   /x   c:\tc201\lib\c0s   test , test ,, c:\tc201\lib\cs   c:\tc201\lib\graphics

    次の c:\tc201\lib\c0s は .obj の拡張子が省略されており、c:\tc201\lib\c0s.obj とも書けます。
    c0 は「C言語のゼロ」(ほんとにそういう意味かは知らないけど)、つまり実行ファイルが実行を行うのに必要な「スタートアップ」のプログラムという意味で、つづく s はメモリの使い方が「small」な方式です、という意味です。
  4. tlink   /x   c:\tc201\lib\c0s   test , test ,, c:\tc201\lib\cs   c:\tc201\lib\graphics

    続く test はこれも .obj の拡張子が省略されています。
    今回の円を描くプログラムをコンパイルしたもので、先に tcc で作った test.obj ファイルのことです。
    ここまでのカンマ , の区切りでつなげたい .obj を指定しています。
  5. tlink   /x   c:\tc201\lib\c0s   test , test ,, c:\tc201\lib\cs   c:\tc201\lib\graphics
    ,test,, の部分は実行ファイルの名前指定 test.exe のことです。
  6. tlink   /x   c:\tc201\lib\c0s   test , test ,, c:\tc201\lib\cs   c:\tc201\lib\graphics

    続く c:\tc201\lib\cs は .lib 拡張子が省略されており、c:\tc201\lib\cs.lib とも書けます。
    メモリの使い方が「small」な方式、、のための各種関数をおさめたライブラリです。
    各種 .obj を集めて .lib となっており、リンカはこの .lib からもコードを取り出し結合しています。
  7. tlink   /x   c:\tc201\lib\c0s   test , test ,, c:\tc201\lib\cs   c:\tc201\lib\graphics

    最後の c:\tc201\lib\graphics はこれも .lib 拡張子が省略されています。
    今回のグラフィック関係の関数を収めたライブラリです。
    ここまでの区切りでつなげたい .lib を指定しています。
    (つなげるのは .lib 内の必要な部分のみ)

これらを毎回コマンド画面に書くのは面倒なので、まとめて m.bat に書いて、

m と書いて Enter キーを押すだけでこれらのコマンドが実行され、test.exe ができる、という感じにしてあります。

m は make の m です。

実は以上と全く同じことが、以下のコマンド1つで行えます。

tcc test c:\tc201\lib\graphics.lib

tcc はメモリの使い方をデフォルトで small を選ぶようになっており test.c をコンパイルし test.obj を作ります。続いて tlink を適切なスタートアップコードと test.obj、tcc に指定されたgraphics.lib を指定して呼び出し、test.exe を作ります。map ファイルの出力は省きます。

リンカを自前で呼び出すことで、実行ファイルのしくみを垣間見ることができます。(とはいえ、最近の gcc などの Cコンパイラだと、リンクするスタートアップやその他のコードが複雑で難しくなっています)

メモリの使い方が small だとか large だというのは古い x86 CPU 特有の方式で、現代の intel core シリーズでは廃止されています。

test.exe を実行すると、

きれいな円が描けました。

たのしすね。

でも最初、

tcc test.c

とだけやってエラー出していました。

できないから、後から、

c0s.obj とか必要なんだっけ、、と思い出したり、

「グラフィクス関係の関数が無い」というエラーが多発して、

えーーーっと??

と思って FD で探したら、graphics.lib があったので、これ付ければいいのか?と思って付けたら動いた、って感じです。

クールに最初から全部知ってるわけじゃないんですわ。

2. レトロ環境に見る宇宙

これは lasm(多摩ソフトの Light Macro Assembler)というアセンブラでテキスト画面をいじる関数を作って、そのアセンブリ関数を C 言語から呼び出す、ということを「どうやればいいのか」と思っていろいろ調べてやってみたものです。

こちらはアセンブラでグラフィクスを描いたところです。

これをやりたかったのは中学生~高校生の頃で、

実際にできたのは 51 歳になってからの、つい先日のことです。

エミュレーター内ではあるけど、最速の超高速で描かれるわけですね。ここに可能性と宇宙とロマンがあります。

VRAM や BIOS、ファンクションコールに、I/O など、メカ的な物が当時の古いコンピューターでは丸出しになっていて、ユーザーがいじって自由にあれこれできるんですね。

今の Windows はセキュリティでガチガチに固められていて、自由があるようで無い(宇宙が無い)んです。

図はまったく同じことを JavaScript でやったところです。

64bit core i5(8gen)3GHz なので、たぶん上記の VRAM アクセス(16bit、16MHzくらい)よりも速いと思います。


以上は、

PC DOS J6.1/V(有料) フリーウェアの『FreeDOS』
lasm(有料) フリーウェア『OpenWatcom』の wasm
『FD』はもともとフリーウェア
『Vz』は有料だったけどオープンソースになった
『Turbo C ver 2.01』(英語版のみ)もアンティークソフトとして無料公開されています。
アンティークソフトのページは無くなったけどソフトウェアへの直リンクのみ(2026年3月2日現在)生きています
これ


…というわけで私がやったこれらのことは、全部無料で行えます。
3. レトロ環境にはなぜ宇宙があるのか?
3-1. 宇宙の実演(単なる円)

なぜ古いパソコンを動かして、円を描くだけとか、VRAM にアクセスして直接四角形を描くという作業を行って、「宇宙」とまで言えるのか。

謎ですね。

ここまで記事を書いて試しに PC-9801 というレトロパソコンの「N88 日本語 BASIC(86)」という BASIC 環境を起動して「円」を描きました。(以前に宇宙を感じたから)

これがなぁ、困ったことに、普通に面白いんだなぁ。

横方向に走査線が入っていて、1ドットが縦長(縦2ドット)なところとか、可能性を感じてしまう。

ここに宇宙があると言うなら、それって単なる懐古ではないのかな。

昔、若いころに趣味の開発に夢を持って入れ込んだ、そのときの思い出にすぎない。

だから、その思い出が無い人にはわからないのも当然。

3-2. 可能性があるから宇宙がある

この BASIC の赤い円の画面には先があって、さまざまな命令があり、マシン語さえも備えている。。

でも今の Windows だって、プログラミング言語の画面一つには先があって、さまざまな命令があり、マシン語(アセンブリ言語)も可能。


Windows には感じない宇宙を、どうして BASIC には感じるのか。

命令を打ち込み、高解像度で描きなおしたところ(1ドットが通常通り、横1ドット縦1ドット)


別の話をしますが、昔子供のころ、ファミリーベーシックのあの赤と白のキーボードを見て、「ほしい」と思ったけど、ほしいと思ったのはそこに可能性を見たからです。

このページで「BASIC で円を描いた画面を見て可能性を感じた」と言うのと、おそらく同じ種類の可能性です。

何かが出来そうだ、という可能性です。


ファミリーベーシックは手に入らず、代わりにもっと高性能な MSX2 を手に入れて、

可能性を感じて MSX2 に求めたのは、「BGM はどうやって鳴らすのか」、「ファミコンみたいな画面スクロールはできないか」ということでした。

今に至るまでそれらは実現されていないけど、ノウハウは別のところで学んだので、たぶんやろうと思えば(インターネットという情報の宝庫もあることだし)できると思います。

音楽 IC や画面 IC に 2 進数を使って命令を出すんですよね。

そんな高度なこと小中学生にできるはずもないのに当時はそうとも知らずに追いかけていました。

可能性に引かれるんですね。


さらに別の話をしますが、私は「厚紙」を見ても可能性を感じます。

厚紙に切り出しの線を鉛筆で引いて、はさみで切り、立体的な何かを組み立てる。

そういうペーパークラフトも私は好きだったんですね。

厚紙の上に思い描いた可能性に引かれ、意気揚々と何かを作っていました。


「BASIC の画面」も、「ファミリーベーシックのあの見た目」も、「ペーパークラフトの材料である厚紙」も、「こうすれば、これができる」という見当が付く、つまり可能性があるんですよね。

3-3. GUI が宇宙(可能性)を消しているのか?

でも繰り返しになりますが、それは Windows だって「こうすれば、これができる」という見当は付き、可能性があります。

BASIC や厚紙にはモノづくりの宇宙(可能性に引かれること)があるのに、Windows や macOS、Linux には(多少はあるけど多大には)宇宙を感じません。感じるものに差があるんですね。

古いパソコンの BASIC 画面には宇宙あり 最近のパソコンの JavaScript には宇宙なし

BASIC を使って円を描いただけ。
ここに可能性を感じる。

JavaScript を使って、スピン回転+通常回転を両立。
でも、自分で頑張って作っているものなのに、それが動く環境について「いろいろできるだろうけど」という冷めた言い方をしている。

ではもし BASIC の画面で「いろいろできるだろうけど」とため息交じりの冷めた言い方をするとしたら、それは何を付け足すとそうなるのか。

また逆に Windows(JavaScript)の画面で「可能性を感じる」と愛情交じりに言わすには、何を引けば?そうなるのか。


…わからないけど、たぶん「GUI」(グラフィカル・ユーザー・インターフェース)かな。。。

昔、DOS から Windows や MacOS に移行したとき、なんか残念な気がしました。

やっぱりウィンドウという GUI の枠にはまってしまって、自由がないっていうのかな。


じゃぁ、GUI が自由を阻害してダメだと言うのなら、Windows から GUI を外してみたら、、

BASIC には GUI が無い。 Windows の cmd.exe の画面で右上の□を押すとフルスクリーンになり、まるで GUI の無い昔のパソコンのような画面になる。

↑実行すると、こうなる↓(余談)

ところで、「copy con」(私的通称コピーコン)は隠れた「マルチライン "一方通行" エディタ」です。
「コンソール入力をファイルへコピーしなさい」という意味のコマンドです。
行末で Enter を押すとその行は確定され、その行には戻れません。一方通行です。
最後に CTRL + Z を押して Enter を押すと終了します。
些細なテキストファイルがほしいとき、わざわざテキストエディタを使わなくても、その場で作れます。


でも、cmd.exe をフルスクリーンにして昔のパソコンのような GUI 無しにしてもあんまり宇宙は感じませんね。

面倒くさいだけみたいな。

じゃぁ、、、

Windows 3.1 は DOS の上で動く

「GUI 無しから始まる、アプリな Windows」

だったけど、それだとどうだろう。

コマンド入力で win とやれば、 Windows 3.1 という名のアプリが起動。


ややっ

なんだか、この Windows 3.1 で C 言語とかの GUI アプリを作ったら楽しそうだな、と可能性やら宇宙やらを何となく感じるぞ…!

もしここで、win と入力して立ち上がるのが Windows 11 だったら、可能性感じないとかかな、、、

もしかして、Windows 95, 98, Me まではこの Windsows 3.1 のように可能性や宇宙のある環境であって、Windows NT をベースにした Windows XP あたりからどこかつまらなくなったのかな??

…わからんけど、

3-4. Linux に宇宙はあるか

ところで、Linux はどうなんだろう?宇宙はあるのだろうか?

Ubuntu とか Linux って標準で gcc( C 言語コンパイラ)が使えるんですね…

Ubuntu ですけど、宇宙無い気がする。決して悪くはないけど…



画面に円を描いたらどうかなと思って、GTK3 というライブラリを導入。まずはウィンドウ作成。
そして、これまでとまったく同じ円を描きました。

参考にさせてもらったサイトさんはこちら
大変ありがたいですね。

参考にさせてもらったサイトさんはこちら
こちらも大変ありがたいですね。


▼…で、この中になんぼの宇宙があるんですかって話ですけどぉ、、

よーく見ると、、宇宙が見えます…!! 来てます!

発言がうさんくさいですね。(疲れてきた)

両者を並べてみましょう!さぁどや!

うーーーーーーーーーん。(こんなことやってるのがなんか笑える。ただの円でしょう、みたいな)

左!BASIC の赤い円!宇宙!あーーーー疲れて見えなくなってきたわ。

右!Linux の C 言語の赤い円!宇宙!あーーーー、あるんじゃぁ、ないですかねぇ。

もうええわ…(なんで関西弁なのかと言うと、ボクシング漫画「はじめの一歩」の千堂の影響です)

あーー、BASIC の赤い円、宇宙見えたわ。

こころ踊る楽しさなんですよね。

Linux には、、C 言語だしなぁ、Linux だしなぁ、宇宙見えそうだけど、

不思議だなぁ、やっぱり違うな。Linux にも無いぞ。

4. レトロ環境の宇宙の起源

奥にハードウェアが見えるかどうかなのかもしれない。


BASIC のほうはエミュレートされたとはいえ PC-9801 というハードウェアの存在があるんですよね。

古い機械というのはそのしくみが単純で分かりやすいです。


やはりハードウェアなどのメカニカルなところが手の届くところにシンプルに見えていて、把握できるところが可能性や宇宙につながっているのかなと思います。

高度な技術が蓄積されれば、やりたいこと(アプリ)はいくらでもできるけど、いざしくみを見ると高度過ぎて何をやっているのかブラックボックスになってしまっていて、手が出せなくてどこかつまらないんだと思います。

GUI(ウィンドウ)はハードウェアとソフトウェアの間に割り込んでいて、先がどうなっているのか見えなくさせています。宇宙を遠ざけているんですね。


古い機械を勉強することは、現代の高度な機械の基礎部分を勉強することに等しいと言えます。

技術的にレベルアップしたい人は古い機械を教材として少し学んでみると良いかもしれません。

比較的単純なので学びやすいと思います。


下図は関係ないけど萌えポーズ


orz 力尽きました

(訪問者のどんなニーズと この記事がつながるか)

  • レトロ機に見る宇宙の話
  • 懐かしいソフトウェアの話
  • 日記を読みたい

2026年3月8日

プログラミング 人体描画システム7

人体描画システムは昨年 2025年4月14日 の日記からずっと続けています。

小学生のころから追いかけている RPG 開発を完全停止して、付きっ切りという感じです。

「人体描画システム」の日記記事をざっと並べるとこんな感じ。。。

  • 2025年 4月14日 キャラクタ 再作成
  • 2025年 5月11日 プログラミング キャラクタを 3D 化
  • 2025年 5月20日 プログラミング キャラクタ 必要な知識体系
  • 2025年 5月25日 プログラミング ローカル座標系の不備
  • 2025年 6月12日 プログラミング ローカル座標系の不備 直し
  • 2025年 6月14日 プログラミング ローカル座標系の不備 再度直し
  • 2025年 6月18日 プログラミング 「クォータニオン」はじめました
  • 2025年 6月28日 プログラミング 「クォータニオン」はじめました2
  • 2025年 7月18日 プログラミング 「クォータニオン」はじめました3
  • 2025年 7月18日 プログラミング 「クォータニオン」はじめました4
  • 2025年 7月27日 プログラミング 「クォータニオン」はじめました5
  • 2025年 8月11日 プログラミング 「クォータニオン」はじめました6
  • 2025年 8月15日 プログラミング プロファイラ
  • 2025年 9月 7日 プログラミング 「クォータニオン」はじめました7
  • 2025年 9月10日 プログラミング 「クォータニオン」はじめました8
  • 2025年 9月15日 プログラミング 「クォータニオン」はじめました9
  • 2025年10月 4日 プログラミング 「クォータニオン」はじめました10
  • 2025年10月 6日 プログラミング 「クォータニオン」はじめました11
  • 2025年10月19日 プログラミング 「クォータニオン」はじめました12
  • 2025年11月 2日 プログラミング 最近
  • 2025年11月 8日 プログラミング 最近、その後
  • 2025年11月16日 プログラミング 最近、その後2
  • 2025年12月 1日 プログラミング 最近、その後3
  • 2025年12月 3日 プログラミング 最近、その後4
  • 2026年 1月 1日 プログラミング 人体描画システム1
  • 2026年 1月11日 プログラミング 最近
  • 2026年 1月11日 プログラミング 最近2
  • 2026年 1月19日 プログラミング 人体描画システム2
  • 2026年 1月25日 プログラミング 人体描画システム3
  • 2026年 2月 8日 プログラミング 人体描画システム4
  • 2026年 2月15日 プログラミング 人体描画システム5
  • 2026年 3月 1日 プログラミング 人体描画システム6
  • 2026年 3月 8日 プログラミング 人体描画システム7(今日の記事)


とりあえずラジオ体操をやろうということで、やり始めたらうまくいきませんでした。(2026年2月8日の日記)

動画の最後でおかしな動きを見せています。

このうまくいかない原因は、自分の認識不足でした。

人が腕を上にあげて下ろすとき、ただ肩の角度を下げているのではなく、腕を少しひねりながら下げているんですね。

じゃあということで「下ろす回転」と「ひねる回転」を1つの回転としてやろうとしたんですが、ここが間違いだったんです。

腕を下すときは肩を中心にその回転軸は Z軸。

腕をひねるときは肩を中心にその回転軸は「直立状態のときの Y軸」。

だったんです。

鉄棒で逆上がりするとき、その回転軸は鉄棒ですよね。

それと同じで腕を下すときは肩を中心に肩に前後に走る軸、Z軸を中心にして横に腕を下ろしていきます。

ひねりは腕をあげたことはちょっと忘れて、普通に立っている状態で、肩を中心に肩に上下に走る軸、Y軸を中心にして腕を回転するとひねったことになります。


それらは別々の回転だと気づかなければ1つの回転として行い、上記の動画となってしまいます。

気づいて修正をすると下の動画となります。

赤を中心に緑がひねりながら時計回りに回転しています。

そして青は緑を中心にひねりながら時計回りに回転しています。

それぞれのパーツは親のパーツの回転を自分にも適用してから、そこから自分の回転を行うので、このような複雑な回転が実現されます。

ひじを曲げたとき、その状態で肩を回すと、ひじの回転はそのまま維持されながら肩の回転が行われますよね。


それを人体モデルにも適用したところが下の動画です。

アニメを終えると GUI を表示するようにしています。

プログラムとしては今まで1つのパーツに quaternionL というプロパティを持たせていましたが、それを

quaternion1L と、quaternion2L と、ダブルで持たせるようにしました。

quaternion1L は時計回りをさせるような回転用に、

quaternion2L はひねりをさせるような回転用に、という役割です。

上の動画でも GUI 操作の画面で、KAITEN1 と KAITEN2 とに欄が分かれています。

ひねりが必要なときにだけ操作するように、KAITEN2 にはチェックボックスを設けてオンオフできるようにしてありま


うぉぉぉ!なにィィィ何だこの回転ワぁぁぁ!ちゃんとできるようなったんじゃあ、ないのかぁぁぁ!

スッ、スタンド攻撃を受けているぞッ!

動画撮影の前にツールバー隠すの忘れてた。

疲れた…

なんでそういう回転になるのか、なんとなく見当は付いているけど、、

(訪問者のどんなニーズと この記事がつながるか)

  • プログラミングの話
  • 面白いものを見たい
  • 日記を読みたい