mieki256's diary



2021/02/02(火) [n年前の日記]

#1 [prog] スクリーンセーバの作り方を調べてる

love2d を使ってWindows用のスクリーンセーバを作れないものかなと疑問が湧いて、スクリーンセーバの作り方についてググっているところ。

love2d を使った事例は見かけなかったけど、Processing (Proce55ing) を使ってスクリーンセーバを作る事例はいくつか見かけた。ただ、コマンドラインオプションを渡すことまで想定しながら実装してる事例は少ないようで…。呼び出せばフルスクリーンで表示される、それ以外は知らん、という実装のようだなと…。

VC++、VB、VC# を使って作成する解説ページは結構見かけたけれど、眺めてみても何が何だか。とりあえず、scrnsave.h、scrnsave.lib というライブラリが用意されたことで、スクリーンセーバの描画処理や設定ダイアログの部分だけを記述すればスクリーンセーバが作れる状態になったらしい、ということは分った。昔(1990年代?)と比べると随分楽になったらしい。

せっかく Python が流行っているのだし、Python + pygame で実装した事例ぐらいはあるんじゃないかとググってみたけど、これが全然見つからず。

HSP を使えば VC++等ほど面倒臭くない感じで作れるけれど、ていうか以前作ったこともあるけれど、HSPの言語仕様は、ちょっとなあ…。

描画処理だけ書けばスクリーンセーバになっちゃう、みたいな何かは無いのかな。

Flashは福音だった。 :

「スクリーンセーバ作成ソフト」的なジャンルは無いのかなとググってみたら、出てくるのがどれもこれも「Flash(swf)をスクリーンセーバにできます」と謳うツールばかりで…。

「Windows用のスクリーンセーバを作成する」という、少々ニッチな需要に対して、Flashという技術の存在が、制作に関する難易度を今まで大きく引き下げていてくれていたのだなと、今頃になって再認識。しかし、Flash は殺された。Flash で動いてたスクリーンセーバは、もう動作しない。

では、Flash亡き今、その需要を ―― 難解なプログラミングの知識を持たなくても Windows用のスクリーンセーバを作成できる、代替技術・代替ツール群が存在するのかというと…。これがさっぱり見当たらない。

HTML5 + JavaScript で作れますよ、みたいな何かがあっても良さそうな気もするのだけど。いや、Mac ならそういう解説記事があったりするんだけど。Windows向けでは見かけないのだよなあ…。たぶん、コマンドラインオプションを渡すと動作が変わるあたりが障害になってそうな気もする。

スクリーンセーバはCGアート。 :

このあたり、「今更スクリーンセーバってwww」と言い出す人が出てくるだろうけど。

そこは前にも言った通り、スクリーンセーバというソフトジャンルは、時折眺めて、生活に多少の潤いを与えてくれる、日常の中で触れられる身近なCGアート作品に変貌しちゃってるんだよ、っていう。ディスプレイの焼き付き防止という当初の目的から既に変わってしまっているのです。

てな話は、200x年頃のスクリーンセーバ作成手順の紹介ページでも、えてして書かれていたことに今頃気が付いたりもして。10年以上前から観賞品扱いだったのだよな…。

CGアートなのであれば、CGで作った動画でも流しとけば事足りるんじゃないか、などと思ったりもして。わざわざCPUリソースだの電力だのを消費して、リアルタイムに描画する意味はあるのか? どうせマウスもキーボードも操作できないし、操作したら終了しちゃうし、つまりインタラクティブ性はそこにほとんど無く、ただCG映像が垂れ流されてるだけ。だったら動画でいいじゃん、という考えもアリかもしれない。

そこらへんは、もしかするとメガデモの感覚に近いのかもしれない。目の前で計算してリアルタイムに映像を生成する。それはもう、ある種の浪漫なのでは。俺の目の前にあるPCってスゲエ、このプログラムはスゲエ、みたいな。スクリーンセーバには、どこかそんな浪漫があったのかも。

以上です。

過去ログ表示

Prev - 2021/02 - 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

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project