Hajime Saito

日々プログラミングの勉強をしています。

Hajime Saito

日々プログラミングの勉強をしています。

マガジン

  • シューティングゲームの歴史

    シューティングゲームの歴史を綴ります。 ※2007年頃に個人サイトで読み物として公開していたものです。

  • 玉突の記憶を辿る

    ビリヤード史から出たこぼれ話をまとめています。

最近の記事

元プロのアマチュア参戦について

2024年(令和5年)に開催されたアマチュア・ビリヤードの試合「第32期 球聖戦(きゅうせいせん)」に元プロ選手が参加したという話を見掛けたので、他のスポーツでは元プロ選手がどのように扱われているのかを調べてみた。 結論としては元プロ選手がアマチュア選手へ戻ることを禁止しているスポーツは存在しない。 プロであり続けたいというプライドの問題はもちろん存在するので、それは自由意志として尊重されるべき考え方である。 しかし、テレビ番組でスポーツ解説者などをしたい場合、アマチュ

    • 並行バッチ処理パッケージの話

      PyPIへ公開した経緯複数の処理を関連づけて一括で実行することを「バッチ処理」と呼びますが、これをpythonで気軽に並行処理で実行させるためのsimplejobというパッケージをPyPIへ公開しました。 元々は数年前にPythonの勉強がてらに作ったCommandLineExecutorというソース・コードだったのですが、pipでインストールできるパッケージを作成するという個人的な勉強のためにリファクタリングしました。 大規模開発だと数時間かかるような夜間バッチなどを回

      • .envに環境変数名を書きたかった話

        python-dotenvPythonには外部定義された環境変数をプロセスの実行時に設定するパッケージ「python-dotenv」があります。一般的にはPythonのソース・コードと同じディレクトリに.envファイルを用意し、そこへ環境変数の定義を列挙していくことができる便利なパッケージです。 たとえば次のように環境変数を.envファイルへ定義できます。 HOGE=C:\temp\hogePIYO=C:\temp\hoge\piyo .envファイルをPython側の

        • ろせった丸

           「デッキ・ビリヤード」という名前を聞いたことはあるでしょうか。おそらく、ほとんどの方が初めて聞く名前だと思います。私もデッキ・ビリヤードという言葉を知ったのは偶然で、「ビリヤード」というキーワードを調査していたら、たまたま、ある1枚の写真を見つけたからです。  デッキ・ビリヤードはその名の通り、船のデッキで遊ぶビリヤードのようなゲームです。「ビリヤードのような」と表現したのは、一般的なビリヤードという言葉から連想されるものとは異なるためです。  デッキ・ビリヤードの遊び

        元プロのアマチュア参戦について

        マガジン

        • シューティングゲームの歴史
          24本
        • 玉突の記憶を辿る
          2本

        記事

          可否茶館

           ビリヤードはいつ、どんな施設に置かれていたのか、どんな人たちと関わりがあったのか。ビリヤードをキーワードに、古い文献などを読み集めてまとめたのが、この『玉突の記憶を巡る』です。  第1回は、4月13日の記念日「カフェの日」にちなみ、明治の日本で開業された『可否茶館』というカフェと、そこに置かれていたビリヤードの話です。 日本人初のカフェ 1888年4月(明治21年)、東京下谷西黒門町にカフェ「可否茶館」(かひちゃさん、かひさかんなど読み方に諸説あり)が開業しました。

          アーマチュアを調べる

          Blenderにはアーマチュア(Armature、骨組み)という仕組みがあって、このアーマチュアをメッシュ・オブジェクトへ紐づけることで、メッシュ・オブジェクトにポーズ(Pose、姿勢)を取らせることができるようだ。 アーマチュア・オブジェクトは、ボーン(Bone、骨)を繋げていって構成されるスケルトン(Skeleton、骨格)と、姿勢を包含している。 もちろんオブジェクト・データなので、メッシュ・オブジェクトと同じようにロケーションやローテーション、スケールも保持してい

          アーマチュアを調べる

          ノード・リンクを調べる

          ノード・データにはソケットがあって、ソケット同士をリンク(Link、あるものと別のものを繋ぐこと)すれば、ノード内で加工した結果を次のノードへ引き継ぐことができる。 ノードを繋いでいって、加工を加え、最終的な結果をメッシュ・データの表面へ反映できるようにする、というのが、マテリアルの役目なのだろうと思う。 ノード・リンクへのアクセスノード・リンクへのアクセス方法は2種類あるようだ。ひとつはノード・ツリーからアクセスする方法、もうひとつはノード・データからアクセスする方法。

          ノード・リンクを調べる

          ノード・データを調べる

           Shading画面へ切り替えてマテリアル・ノードを編集しながら、各ノードへアクセスしてデータ構造を調べてみた。 Addドロップ・ダウン・リストをクリックすると、ノード・データのカテゴリが一覧表示される。表示されるカテゴリは次の通り。 細かい一覧をここに記載するのは省くけど、数えてみると100種類のノード・データが存在している、ということがわかった。これはとてつもない数で、ひと通り憶えるだけでも一苦労しそうだ。 プロパティの扱いノード・データの種類ごとに、プロパティの数

          ノード・データを調べる

          マテリアル・ノードを調べる

          マテリアルは、デフォルトではノードを繋げて利用するけど、ノードを繋がなくても利用できる。 ノードを繋がない場合でも色などをつけることができる。これをマテリアル・カラーと呼ぶ人もいるようだ。 マテリアル・カラーは、マテリアル自身が保持しているパラメータによって、フェイスに色をつけたりすることができるようになっている。 まずは、このマテリアル・カラーから調べてみた。 マテリアル・カラーへのアクセスマテリアル・カラーにアクセスするには、マテリアル・オブジェクトのuse_no

          マテリアル・ノードを調べる

          マテリアルを調べる

          Material(マテリアル、素材)を使うと、メッシュの色づけするまでの方式を定義することができる。頂点カラーをつけたり、テクスチャを貼ったりするのも、マテリアルを経由して行われる。 たとえば、Vertex ColorモードでCubeオブジェクトの天面を青一色に塗る。 これをシェーダ(Shader、陰影処理)を使った描画へ切り替えても色は反映されない。 Shadingワーク・スペースにあるノード・グラフで、Vertex Colorを扱うノードを追加する必要がある。Ver

          マテリアルを調べる

          シェイプ・キーを調べる

          シェイプ・キーを設定すると、頂点移動によりメッシュを段階的に変形することができるので、キャラクタに表情をつけたりするようなこともできる。 シェイプ・キーは別名をメッシュ・モーフィングの呼ぶことがあるらしい。画像処理では、ある形状から別の形状へ、連続的に、滑らかに変形させることをモーフィングと呼ぶけれど、これをメッシュで行うためのようだ。 シェイプ・キーへのアクセスまずは適当にシェイプ・キーを設定してみる。Basisは変形の開始位置を保存するための特別なキーということらしい

          シェイプ・キーを調べる

          頂点グループを調べる

          オブジェクト・プロパティ画面でVertex ColorsコレクションとUV Mapsコレクションをいじってみたので、この流れでVertex Groupsコレクションを調査してみた。 頂点グループBlenderでは任意の頂点に名前をつけて管理することができる。この頂点の集まりをひとつのグループと見なして、頂点グループと呼んでいるようだ。 頂点グループはエディット・モードで頂点を選択し、オブジェクト・プロパティ画面からAssign(アサイン、割り当て)のボタンをクリックするこ

          頂点グループを調べる

          Blenderの便利な機能(追加分)

          Blenderをいじっていたら、データ構造を調べるのに役立つ画面を見つけることができたのでメモ。 Data APIすべてのオブジェクトにどんなプロパティ値が設定されているのかを俯瞰することができるData APIサブ画面というものを見つけた。 まずはアウトライナー画面へ切り替える。 次にサブ画面のData APIを選択する。 そうすると、すべてのプロパティがツリー表示されるようになるので、インタラクティブ・コンソールでスクリプトを叩かなくても、どのプロパティにどんな値

          Blenderの便利な機能(追加分)

          テクスチャUVを調べる

          メッシュに色をつける方法は、頂点カラーのほか、テクスチャを貼りつけるという方法がある。テクスチャの実体はピクセル・アレイ(Array、配列)で、普段扱っている画像ファイルの中身とほぼイコールだと考えて差し支えはないと思う。 フェイスごとにテクスチャの領域を指定すると、テクスチャに描かれている絵がフェイスへ貼りつけられてメッシュが描画される。テクスチャのどの領域をどのフェイスに割り当てていくのかを対応づけしていくマッピングをするので、テクスチャ・マッピングと呼ばれている。

          テクスチャUVを調べる

          頂点カラーを調べる

          頂点には色をつけることができる。頂点についた色のことを頂点カラーと呼ぶ。頂点カラーは個々の頂点に紐づいている情報なので、bpy.data.meshes["Cube"].verticesプロパティからアクセスすることができる…と思いきや、bpy.data.meshes["Cube"].vertex_colorsプロパティからアクセスする。 Vertex Colorsは、メッシュ・データのプロパティ画面から設定することができる。追加する際のデフォルト名は「Col」となる。 V

          頂点カラーを調べる

          メッシュ・データを調べる

          メッシュのデータ構造メッシュは突き詰めれば点の集まりで、点と点を結んで線を作り、線と線を結んで面を作る。点は頂点、線はエッジ、面はフェイスと呼ばれる。呼び名が和洋でちゃんぽんなのが日本らしいけど、慣例にしたがってその様に呼ぶ。 Blenderでは頂点の集まりをverticesプロパティで表現し、エッジの集まりをedgesプロパティ、フェイスの集まりをpolygonsプロパティで表現している。Polygonは多角形という意味だったかなと思うけど、慣例ということで、ここでもちゃ

          メッシュ・データを調べる