CAD自宅開発の進捗2024年04月21日

 プロジェクト名はCubeであり立方体を回転させるプログラムにしようとしたが。

 三面図で全部正方形は意味がないので台形にした。デバッグのための形状。

 ひとしきり三面図は出来て、データ構造は8点12辺限定なのでその拡張を今後。

 てかプログラム直打ちで形状をいじるので、それをUIで出来るとCADになる。

 てか先にも書いたかもだけど、プレステで遊ばなかった俺はパソコンのCADソフトで存分に3Dを味わいそれでも十分だった。しかし転居にパソコンを持って行かず、新しパソコンは買ったが実家にいた頃の環境があるから楽しかったのであって仕事の傍らで新品のパソコンにイチからデータを入れるとなると投げ出してしまい、やがてその問題はiPodの購入で音楽に傾倒することで解消される。

 最近のご近所では親父が店のサービスでしている印刷を俺も引き受けたりするのだが、なんかパソコン詳しいらしいというのも最近のパソコンは使いやすいから誰でもできる仕事だと思うし、何なら最近の学校ではプログラムや情報工学も小中高でやってしまうみたいなので、何のありがたみも無い先生仕事なのである。

 それは良いとして、念願の数値入力CADがたった二日のプログラムで自分のモノになったわけだが、会社からお給料をもらうでなく趣味で3Dソフトと言うと、首都圏では清水亮さんの通うラーメン屋の店主がすごい3Dプログラマーだった気がした。

 印刷のお客さんでも飲食店のメニューやチラシをとても凝ったイラストや写真に工夫されている。俺の仕事も1日1~2時間ほどならサビ残と並ぶわけだ。

 俺のモチベは「出来たら嬉しい」くらいでやっている。将棋とか麻雀を作る前は一攫千金は狙っていたわけで、大した金にならなかった落胆からプログラミングに対していちど消極的になったけど、ブログは1円にでもなるならと続けられたし、何の益にもする気のないギターの練習が幾許か(もやし1パックくらい)の売り上げになった。

 プログラマーとしては高給取りだったけど今は給料無しなので、何か作って復職したらとも思うんだけど、起業するほど野心があるわけでも既になく、給料もらってた頃も荒れて飲み歩くとか博打を打つことで解消していたそのストレスの温床だったことを考えると辞めちまってマイペースになったことで事態は好転している。

 どうも工期とか納期とか品質とか、そういう他者との摩擦がしんどくて、純粋な研究開発というのが自由だった気がするが、現代にそういうものが何処にあるかと考えると、憧れの理研に派遣で入った時に誰も研究なんかしていなくて椅子取りゲームであったことを知った落胆から、理研で本当にプログラム組んだら富士通の社内ムードと同じで「バカがやる気出して何かやったら俺達の方が仕事してないように見えてしまう」という理不尽な理由で解雇となり「やる気があるなら」というので決まった仕事がまた工場なわけだが、工場でソフト開発なんてすると周りの人間が手柄の横取りばかり企てる、やらせて取ろうと脇に付くばかりという肩身の狭さが嫌になる。

 まあ人は怠け者。でもSNSのやる気勢に囲まれて俺も何かやろうとやってる。もしかして給料の出る職場でサボりでやってるSNSと俺の自宅がつながっているだけかもだが、細かいこと言わずに創造的なことをしたい。

 ただ、俺が家でOSSをやっていて、その進捗がネットウォッチャーに見張られて進捗が進んでいてもどこからも開発費用も給料も出ないというのは不服な感じはしつつも、料理屋の店主も1000円でウマいもん作ってくれて、俺に「プログラムでも何十万何百万と言わずに3万円くらいでやってやりなよ、こんくらい」と言ってくれる。

 たしかに、このCADで3万ももらえたら日当3万だからな。月給60万と思われても仕方ない。だが月20日もコンスタントに安定して進むわけでもない。

 まあ、またぼちぼちと進めよう。昨晩は夜中に起きてやっていて調子づかずに休もうと布団に入って仮眠していたけど寝付けずちょっと今日は疲れている。

 今更だが、理研はサボりで工場は横並び、だけど世の中というかコンピューターワールドにはワクワクするような素敵なソフトが幾つもある。そのうちの幾つかはOSSなわけだ。本当にどこでやってんだろうと昔から探しているけど、全部おうちとかそんなオチなのだろうか。

簡単な三面図フォームを作ってみた

 ざっと2時間ほど作業。

 三面図にパースを加えて四面図としたフォーム。

 まあ立方体はどこから見ても正方形なわけだが。いや斜めに見ると違うか。

 テストする時は立方体のままだと分からないので、歪ませたりしてテスト。

 個人開発としてゲームを作ったことはあるけど遊んでくださった皆様からはもっと真面目に作れという意見をいただいて、じゃあお金が欲しいという水掛け論に。

 お金が先か品質が先か、それでお金が出ていなくても品質を上げる努力はしようと思った時に、ゲームとしての出来栄え点以上に個人の趣味として3Dにしたく、2Dだったりボードゲームを作り込むより3Dをやりたいわけで、やり始めたのが今回の件。

 なんか勉強と称して学生さん向けの競プロ過去問を数問解いて、その応用で今回は3Dモデルのまさに数値モデリングというかデータ構造というか完璧なんじゃね?という。点XYZの辺P1P2の無向グラフでコレが分かればゲームボーイのXくらいまでは開発が個人で出来そう。

 なんというか、3Dって勉強段階だから見積もりが立たずに無限に時間使って、そしてその延長線で想像するとめちゃ工期かかりそうで高そうだったけど、グラフ理論が出来てあと三角関数をもちょっとやれば、案外と少ない工数でマトモに動くもの作れんじゃないかと。ゲームボーイでX出てスーファミスターフォックス出てカセットの値段も他と変わんなかったわけだし、あれセールじゃなくて頭いい人からしたら同じ値段のゲームだったんだろうなと。

 そんでも現実問題としてプレステが出た後に多くのゲームメーカーが膨れ上がった開発費を回収しきれず倒産したって話もあったから、その鬼門の3D開発に踏み込むのはともすると無謀なのかもしれないけど、今日は妙に俺なら出来る機運が高まって。

 そんでツールから作って、ホントにゲームに落とし込めるのかどうなのかって所。

夢だった

 俺は専門学校で3DCGの専攻だった。高校の時にプレイステーションが発売されていて、2年のフリーター時代にはバーチャファイター3が出ていた。しかし自分ではカプコンヴァンパイアハンターエイティングバトルガレッガに夢中であり、時代遅れな少年だった。

 在学中にフローチャートからプログラムやワープロソフトに表計算など基本的なアプリの使い方にデータベースやモデラ、カメラ、レンダラーなどを実習として使えたが、プログラマに憧れていたので、既成のソフトを使った実習にはどこか引いていた。

 それがプレステの3Dの面白いゲームにハマらなかったのが、単純と言って良いか、十分複雑なのだが、3DCGにはやたらハマった。モデリングレンダリングで数分のショートムービーを作っていた。

 卒業後は未来から過去に戻ったような感覚だった。ヘボいパソコンゲームの会社でもプログラマとしては半人前で、しかしそのまま転職で良い会社に入ってしまう。

 まあ社外秘を漏らすでは無いが、期待されたのはウインドウズに長けていたので、数値入力が基本だった3Dの物件入力にマウスを使うというような部門である。

 アメリカ製のライトウェーブやオートCADに国産で勝てるのかというところがポイントだが、まああの頃の開発部と言えば暢気なものだった。期待されてもらった高給を遊びに使っていた。

 それから紆余曲折はあったものの、あの頃の続きというか、専門学校の研究の続きをやりたいなぁ、とも思っていた。CADの入力を良くするというのは俺の再就職の課題としても宣言していた。

 それがこの体たらく。SNSでも昨日発表して、30人ほど先に見てもらったが、CAD/CAMという発想ではなく、モデルでもレンダリングでも頭でやって数値を直接入力してしまえば仕事が終わってしまうのである。

 そもそも、2Dの画面でXY座標を打つのはポインティングで済むわけだが、ピクセル単位になるとマウスやトラックボールよりもキーボードを好むドッターがいる。

 そしてZ座標を打つとなると、三面図で横から見て打つわけだが、それが形状が複雑になると、同じY軸から見たXZ座標の近いものから目的のポイントを拾うだけでもGUIではメチャクチャ手間がかかるのである。

 その目的の絵が頭にあるのなら、いっそ座標を数値入力したいと何度か思っていた。

 しかし市販のCADにはポイントを数値入力で入れていけるものはなく、反対に在籍していた物件入力の先行開発はフル数値入力の計算ソフトであった。

 まあ、グラフ理論をやると立方体は8点12線の無向グラフとなる。8点、座標で打ってそれをレンダリングするとなると、基本的手法としてレイトレーシングが考えられ、そうすると光源と被写体とカメラの三点の座標を持つわけである。

 けどまあ、スーファミスターフォックスくらいのゲームを考えると、ゲーム画面として騙すだけなら三角関数と三角形の描画でも十分そうであり、三角形が3Dなのではなく、動く三角形を見てプレイヤーや観客が十分3Dだと分かるから成り立つだけで、画面は2Dであり、2Dを取り扱うだけなら3DのZ座標は計算途中にメモリ上のみに存在して、計算結果としてはXY座標になるわけだから、計算の結果として消えてしまうなら、オンメモリーで答えとなるXY座標のカタマリを持つだけでも疑似3Dになりそうなものである。

 そのへんのカラクリを昨晩あたりから考え出して、まあ今日もぼちぼちやろうかと結果自体は急いでいないが、プロジェクトXのカメラ付ケータイの回を見て、その開発が最終的にかなりの個人プレーであるように描かれていたが、対外的にはその昔にIT営業からSH社に入る時には同社はかなりの人海戦術を取る会社であるとの評も聞いていた。実際、控室には従業員はたくさんいて、誰が何をしているのかひとりひとりは良く分からない。

 だから対外アピールをしっかりしないと、個人の仕事としては平らに評価され、高給取りとして入った時には周りはまだ敵だったようにも思う。

 まあ、ハードウェアをやっている人もソフトウェアをやっている人も平らで同じ従業員なら文句なしかもだが、ソフトが外注でそっちのほうが給料高いとなると不平が出るのも、そりゃそうよねって話で、だけどまあ外注と言ってもハードを買うユーザー企業なので、ハード買う分をお給料に乗せてもらわないと所得的には釣り合わない感じもするんだけど、俺の場合は派手に遊んでいるのが目についたようで。

 ただまあ、座標を打てば片付く3Dを3D座標として計算するのではなく、UIを考えますからと提案して、研究開発と銘打ってプログラムを組んでソフトウェア工学の本を読んでオブジェクト指向に行って、結局複写機のタッチパネルを作っただけ、という今までの落としどころを考えると、従業員の給料が平たいとしてケータイにカメラ付けた人よりもしもらってたらもらい過ぎで、やっていたことは夢のようなことだと思った。

 そもそも市販品としてスーファミが定価25000円でスターフォックスが9800円だったと思うので、それより後から来てソフトウェア開発だと言ってオブジェクト指向モジュレーションばかりをやってきたというのはTPOを全部間違えた独習ゆえの回り道であり、会社からもらったお金で勉強をしていたところで開発の成果を献上する前に退職してしまったとは思っている。悔いている。

 この始末書だけでも書いて残しておかねばならないというのが今日の反省。そして昨日の作業分はいったんOSSとして公開したが、ウォッチャーがひとりということで、誰かには仕事が伝わったとして、そのままプライベート開発に移行しました。

 どこかで買ってもらえる技術なのか、既製品の二番煎じになるか、それでもネットで検索しても出てこないくらいというレベルではある意味で最新技術だと思う。観測範囲がOSSだけなら、ということになるが。


🄫1999-2023 id:karmen