全記事一覧・検索

Archive for the 'プログラミング' Category

WebVR と PanoSHOT!

https://game.fumi2kick.com/webvr-project/
WebVR の手習いで作成した小物ゲームを自サイトに置いた。試してみて欲しい。
VR HMD が無くても遊べるように作ってある。

PSVR は持っていて発売日以来楽しんでいたのだが、自分でコンテンツを作るということに関しては特に手を出してこなかった。
昨年末に発売された WindowsMR HMD +コントローラーを入手し、PC での VR ができるようになったとともに、これで楽しめるコンテンツの作成方法についてちょっと調べようという気分になってきた次第。

Unity とかだとビルド時にオプションスイッチつけるだけで VR コンテンツになったりして確かに簡単だったりする。

けど自分が面白いと思ったのは、ブラウザの WebGL と JavaScript で構成、配信されている WebVR の方だった。
WebVR は Sketchfab で使われており、VR HMD を用意した状態でコンテンツ表示の右下にある眼鏡ボタンを押すと 3Dモデルが VR 空間で閲覧できたりする。これがとても刺激的だった。

WebVR なら作ったものを httpd で配信できるというのも良い。ぜひ WebVR による VR コンテンツを作ってみたい、と思った次第なのである。

Read more…



「たら@ばと」Twitterスクリーンネームバトル

tarabatt_logo1.jpg
Twitter用のBot作成がわかってきたので、それを応用したBotサービス「たら@ばと」を作ってみた。
ちょいとした思いつき。

「たら@ばと」は、Twitter上でツイートするだけでエントリーできるスクリーンネームバトルゲーム。
エントリー募集時にエントリーしてきたTwitterアカウントをRPGのバトルっぽくバトルロイヤルで戦わせるというもの。
おまけ要素として、相手を倒したときの台詞をカスタマイズできる機能と勝った回数を数えておく機能がある。

お気軽なものなので適当に遊んでみてほしい。
Read more…



プロツールズとソフトウェア

私の実家のほうやら親戚やらが理容室や美容室をやっていたりするんだけれども、あの業界も日常的なサービス業であるわりには直球的な職人の世界なのだよな。
で、あの理美容室で使っているハサミというのは実は一丁で15万円とかしたりする。レディメードでそんな感じなんだけれども、職人の手に合わせて型を取ってオーダーメードで作ったりもするのでもっと高い時もある。なので研修生がうっかりハサミを床に落としたりするとそりゃもう怒られたりするわけですよ。
職人というかプロの世界。プロが使う道具はそんじょそこらのものと仕込みが違うし、それをまた培った技術で鮮やかに扱うことでお客様に最高の理髪を提供するといった世界。

そいった様にプロならではの道具の世界というものがどの業界にもあってしびれたりするものですよ。
ホームセンターで変えるような工具は所詮コモデティアイテムでしかないとか、そんな感じ。
そういったプロが使う道具に近いものを手にするとアマチュアでも一段上の作業ができたりするのも魅力なのだけれども、アマチュアはやっぱりアマチュアで今度は道具に振り回されて使いこなせなかったりしてみたり。使いこなせば確かに上質の作業ができるのだけれども、腕がついて行かなくてそこまで至れない。そしてその道具をちゃんと使いこなせる手腕を持つのがプロだったりして。

そういった視点でコンピューターソフトウェア業界を見てみるとちょいと興味深い。
職業プログラマの端くれとして会社でプログラムを組んでお給料をもらっている訳なんだけれども、会社で使っている開発機材(ひらたくいってPC)がプロという肩書きにふさわしい最上位のものかというと案外そうでもなかったりする。正直自宅で使っているPCの方が倍以上の性能を持っていたりする。
そいった光景は珍しくないどころか割と普通なんじゃないかなあ。個人持ちの方が早いマシンだとか、遅いマシンを3~5年使い続けているとか。減価償却とかクソ食らえでございますわ、とか思わなくも無い。
ソフトウェアの開発環境も安価になって、ぶっちゃけ VisualStudio とか Eclipce だったりするとアマチュアが手にしているものとまったく同じだったりする。となると、それは職業プログラマがプロとして誇りを持てる環境なのだろうか。

逆に言うとアマチュアにとっては良い話だったりする。
今や無料環境でそろえられる開発ソフトウェアで作れないものは無いといっても良い状況なんではないだろうか。プロが使う開発環境やライブラリを高いお金出して買えばより簡便に高品質なものが!ということもことソフトウェア業界においてはほとんど無かったりするし。
なんつーか、機密保持契約(NDA)の関係で開発に携われるか携われないか程度しかアマとプロの違いは無いのだろうか。

じゃあソフトウェアのプロってのは名前ばかりのいらない子なのかというとそれはそれで本質を見失っているかもしれない。そういった開発機材を手にしても、それを使いこなせるのが一握りの人間でしかないという実情があるからだ。
道具は手に入れやすいし、アマチュアにもチャンスはあるけれども、本当にその道具を使いこなして製品に足るプロダクツを生み出すことができるのがプロフェッショナルと呼ばれている人たちなのかもしれない。
ソフトウェア業界が抱えている過ちと苦悩はプログラムを工業製品として扱おうとしている歪みなんではないかと考えることがある。月日と人をかければいずれはできあがるといったそんな風に見ているのはまちがいで、本当は個人の優れた才能と職人技で作られているというのが実情なんではないだろうか。
でもそれだと企業としては回らないので、個人差をできるだけ無くしチームプレイで能力を平均化し行程と時間を見積もりやすくする必要がある。プロセス管理とチームマネジメントがソフトウェア業界でもてはやされる所以である。

開発機材や環境は入手しやすいし、誰でもプログラムを作成することはできる。でも、そのプログラミングを職にしようとするともう一段階上の技量が必要になってくる。なんとなくこれってミュージシャンや小説家、漫画家に近いところがあるんじゃないかなあ。
企業都合で定期的に作品を作っている(週間連載とか)というプロフェッショナル意識の高い作家もいるし、そういうのを回していけるアシスタント等のシステムもそろっている。でも、数年に一度のスパンで作品を作る芸術家肌の作家もいてみたり。
業界的に高い道具を高い技術で使いこなすことにより差別化ができないのならば、個人の才で差別化していくしかないのではないだろうか。



遅ればせながら「あの楽器」に参戦してみる

ニコニコ技術部内で盛り上がっている「あの楽器」開発祭り。
なんとなーく乗れないで静観していたのだけれども、2/1 に「あの楽器」東京ミーティングがあるというのでそれに出かけたくてゆるゆると動き始めた次第。
ネタを用意せねばー。

ano02.jpg
取り敢えず “DTM” を軸にした視点がちと薄いので、「DTMで使える楽器を作成する」というコンセプトから VSTi プラグインで「あの楽器」を作ってみた。

ano01.jpg
DAWが無くてもWindowsだけで遊べる様に、exe形式のスタンドアロン版も同梱。
MIDI入出力で遊ぶことを考えると、こっちの方が面白いかもしれない。

ano03.jpg
製作には SynthMaker を使用。プロトタイプはさくさく作ってなんぼ。
グラフィカルプログラミング環境なんだけれども、コードを書かないからといってラクチンというわけでもありません。かえってきついところもある。できないこととか、ひねらないと実装できないこととかあるしなー。

てなわけで、おためし版として置いておく。
Download: ano_synth_vsti_090126.zip

「あの楽器」ってこんなかんじなのカーとか、まだまだこんなもんじゃないぜとか、思ったり考えたりしていただきたく。



Homebrew BOF

昨日(Dec.29.2008)に行われた “Homebrew BOF” にお誘いをうけたので参加してきた。
“homebrew” という単語に馴染みが無い人のために説明しておくと、自家製造酒を趣味とする人の集まりといった言葉通りの意味ではなくて、主にコンシューマゲーム機などの「再生専用」ハードウェアで動くアマチュア製作の自作ソフトの事を指す。
基本、ゲーム機などは一般ユーザー向けにSDKを提供しておらず、自作ソフトが動作できないように蓋をする傾向にある。なので通常は homebrew を動作させることはできないのだけれども、そこはそれなんとかする方法があったりもするのだな。だからといって誰でもできるわけではないので、ある程度のハックレベルを持つ人達のお楽しみといったところでもある。
これを前向きに捉えると Open Tech Press の「Gadget Hacks:Nintendo DS(Lite)でオープンソース系ソフトウェアを使用する」という記事のようになるのだが、実を知っている人はこの記事を苦笑いしながら読むこととなる。NDSでは homebrew を動作させるために R4 等のブートアダプタが必要になるのだが、多くのユーザーはこれを「不正コピーゲームイメージ」を動作させるために使用している。つまり、正しく使用すればオリジナルソフトウェア開発、悪しく使用すれば不正コピーとなるそんな紙一重の世界。

でまあ、正しい方の利用が楽しくて仕方がないというハッカー気質の人もちゃんと居るわけでして。
そういった、ゲーム機で自作ソフトを開発したり、自作ゲームを開発したりといった人達に声をかけて集まってみたのが今回の “Homebrew BOF”。よするに、同じ趣味を持つ物同士でおしゃべりしましょという会。
ドリキャスで Quake が動いている所とか、Wii の上で動作する Ruby とか色々見せて貰った。
「かいてんパティシエ!」で有名な、あるふぁ〜秘密基地の D.KさんとひたすらGP2Xトークを繰り広げてみたり。
BOFの後の飲み会も合わせて楽しい時間を過ごさせてもらった次第。
GP2Xwizとか色々控えているので、ここらで自作(へぼ)ゲーム製作のモチベーションを上げておきたいと思っていた所に良い刺激を山ほど。

homebrew というのは原則「組み込み機器」開発となる。なので集まった人々も組み込みソフトウェア開発にとても強い人達、もしくはその予備軍となる。組み込み系開発はPCアプリソフト開発のようにいかないとか、組み込み開発に強くなろうとか、そんなエンジニア雑誌上での啓蒙どこいく風といった雰囲気がBOF会場にはあった。
まあ、やっぱりというかなんというか、多くの人は組み込み系開発やあっち系の玄人さんだったりするのですが、そのへんはさわやかにスルー。

ここしばらくニコニコ動画にかまけていてソフト開発から離れていたこともあって、私なんぞは居場所がないんでないかと思っていた。んがそんな予想に反して「ブログ見てます」「動画見てます」「あ、不在通知Pでしたか」「ソース参考にさせてもらいました」と多くの言葉を頂いた。あれま。
そんなんだったら恥ずかしい自己紹介なんか全部すっ飛ばして、開発話だけすればよかった。



ラジオサーバーをつくろう 〜 録音編 〜

新しいラジオサーバーというか録音システムを作りたくて、制作を始めたというのがここまでのお話。
では、どんなものを作りたいと思ったのかというところから。

AMラジオをアナログで細々と録音するにはそんなにスペックが必要でもない。PCM録音で言うと 11025Hz 16bit mono といったあたりで十分なのです。そのビットレートで24時間丸一日録音したとすると 1GBちょっとになるのですな。
一昔前ならともかく、今時のコンピュータだと「どうということはない」数字。
そこで、富豪アーキテクトが発動するわけですな。
これまでエアチェックというと「何時から何時まで」と番組を狙い時間を決めてその間だけ録音していたわけです。ラジオサーバーはその「何時から何時まで」録音を自動化するためのシステム。これの問題は何かというと、スポーツ中継による延長に対応できない、ということと特別番組編成に弱いということ。別な言い方をすると、特別な状況に対応できず、録り逃したものは完全にあきらめるしかないということでもある。
これを富豪アーキテクトにかけると「じゃあ、24時間丸々録音すれば良いじゃん」という事になる。
「何時から何時まで」を録音するのではなく、全てを録音しておき「何時から何時まで」の部分を切り出すことでエアーチェックするというシステムを考えた。もし、時間移動があったとしても元の24時間の方から切り出し直せばいいだけだし、やっぱりあれが聞きたかったという要求にも1日以内であれば対応できる。

じゃあやってみようかー、と思ってもこの「24時間ノンストップで切れ目無く録音し続ける」といった部分が案外難しい。サーバーとしてコマンドラインから録音コントロールしたいという要求も相まって自作するしかなくなる。
Read more…



夏休みの工作

一発ギャグネタを作って公開していたのだけれども、これ以上いじる気も無いのでソース公開してトンズラ。
ジョークプログラムはネタとタイミングが命なのでメンテナンスしてもしょうがない。

なんで夏休みの工作なのかというと、今ちょうど夏休みにあたるものを取って休んでいるから。

関連リンク
http://www.geocities.co.jp/SiliconValley-Sunnyvale/1411/



時間差チャット

久々に趣味プログラムを組んでみる。
また WEBアプリケーションなんだけれども、まあチョコっと作れて効果的なんで短時間で作って楽しいというとこうなってしまうあたり。

んで、作ったのは WEB チャット。
発言時間を保存しておいて、後でログ表示する時にその発言時間軸を再現するあたりがミソ。後から参加しても時間の共有をエミュレートできるという感じになっています。
要するに TV でアニメ番組を見ながらの実況チャットがやりたくて作ったもの。
最近 TV 番組はほぼ必ずビデオ(特にHDDビデオ)に録って自分の好きな時間に見るというスタイルが確立しているので、そういった中で実況チャットをやるのは困難になっている次第。
そこで、時間差を吸収できるようなチャットが欲しくて作った次第。

現在はふあふあファクトリーに実験で設置してあります。
http://www.fuwa2factory.net/vsc/lobby.cgi

今回は eruby を使っていないので手軽にお試しいただけると思います (^^;

関連リンク
http://www.limo.fumi2kick.com/fbbs/lmwiki.rhtml?topic=VirtualSynchroChat



つぶやき 05/17/2000

ここしばらく作っていたプログラムが完成した。
ふいにソースのサイズを見ると 40KB ほどある。
C のソースとして考えると「まあこんなものだろう」とか思うのだけれども、
8bit 機の MZ-80K/C シリーズのフリーエリアをほとんど埋める容量と考えると
ちょっと感慨深くなる。
※ MZ-80K/C の RAM は最大で 48KB

最近良く話すのだが、8bit の頃は画像を扱わない限りはその 64KB というメモリ
制限がかなり広大に感じられたものだ。特にアセンブラで 64KB というと途方も
ないサイズに思えたものであった。
ところが今はどうだ、64KB と言えばテキストファイルでもって一日で書いてしまう
ほどの量でしか無い。
う〜む、64KB…

# 64KB をゆうに越える 8bit アセンブラコードを自分が組むときか来るだなんて
# 思いもしなかったよ(苦笑)

あのころに戻りたいとは絶対に思わないけど、「思えば遠くに来たもんだ」という
感じである。



つぶやき 05/22/1998

ドクタードブスジャーナルジャパン(DDJ) をふにふにと読んでいたら
コラムにて「Bug」(昆虫、ここではコンピュータープログラミングに
おけるミスの混在のことをさす)の語源について書かれていた。その昔、
コンピューターの動作不良を調べていたらリレーに蛾がはさまってい
たことがはじまりだとか。
こりゃ面白い。普段我々プログラマを悩ます「ばぐ」の正体が本物の
蛾であったわけだから。
もしもここに猫がいたら「きゃっと」になっていただろうし、ウサギ
がはさまっていたら「らびっと」になっていたかもしれない。もしも
はさまっていたのが「妖精」だったりしたら「すぷらいと」とか呼ば
れてて結構和んだかもね(和まない和まない)。



このページは静的保存版です。公開済みコメントは閲覧できます。