読者です 読者をやめる 読者になる 読者になる

こんにちはマイコン制御

May FORTH be with you.

gawk偉い

  • なんかこの2か月ちょっと色々有り過ぎ。
    • 地震以降人生不安定すぎる。
  • 今更Javaをいま一番勉強すべきなのだけど出来てない。
    • 仕事に使うことになりそうなので。
  • 個人的にはJavaScript(p5.jsとWebAudioAPIとTree.js)やりたいのとRubyもちょっとやりたくなってきた。
    • まだ「やりたい」だけだけど。
  • JavaJavaScriptRubyならこれが良いかなと思ってNetBeans使ってるけど良いです。
  • 仕事で厚生労働省のHPから100万行分のHTML読んできて2万件強のデータ取り出す作業をしました。
    • もっとあったみたい。300万行くらい?
    • 最初かなり自動化できるんじゃないかと思ったけれど、ページの作りが変で、複数ページにわたるデータを手でダウンロードしなくてはならなかった。
      • 更にデータはテーブル形式でまとめてあるのだけれど、1セル内に複数データが入ってたり入ってなかったりとこれまた変。
  • 最初エクセルでマクロ組んで処理してって言われたんだけどエクセルじゃ重いし面倒くさかったのでgawkワンライナー書き飛ばしつつ最終的にCSVでエクセルで整形、でなんとか実質1日で作業終了しました。
  • gawk速いし軽いしWindowsでも問題ないし偉い。
    • この1年で書いたプログラムの中で生産性高いのってawkワンライナーばっかりではないだろうか。


Thundercat - Drunk (FULL ALBUM)

新年の抱負

  • 年末、諸他の事情で全然更新してなかったけれども、年も明けたのでちょっと書いてみる。
    • プログラムは色々フラフラしてますが、とりあえず今年はJavaScript中心にWeb系をやることになると思う。
      • p5.js触るのとGameMakerも使いたい。
    • 音楽はちょっとハード回帰してみようと思います。
      • volcaを少しずつ買い集めていきたい。その前にコンパクトミキサーかな。

ちょこっとメモ

  • はてなブログ経由で知ったPICO-8がLuaで動く仮想ゲームマシンコンソールで素敵。同じ人ので3D版もある。
    • この箱庭感。制約があるのも良い。お値段手ごろ。
    • Teenage EngineeringのPOシリーズっぽい感じ。

PICO-8: FANTASY CONSOLE
Voxatron

  • お値段手ごろつながりでって言っても本当はお手頃価格ではないんだけれど、チャリティーセールでディベロッパー版+HTML5エクスポート+アンドロイドエクスポートで7万円弱のところ1500円で買えたのでsteam経由でClicktema Fusionを衝動的に買って放置してたんですが、ちょっといじってみようと思って、チュートリアルやってWindows実行ファイルとHTML5でビルドしてみました。良いですねこれ。
    • 個人でゲーム系Webアプリ作るならこれは手軽で良いかも。フリー版だとHTML5出力だけだけれど出来るようだ。

www.clickteam.jp

  • LÖVEやりだしてドット絵打ちたくなってゲーム業界いた時の資料みたりネット漁ったりしています。
    • 超精密なのよりロービットの美学が素敵。
    • Amazonの中古でこんな本も買った。

ドット絵講座

ドット絵講座

LÖVEのライブラリとデータフォーマット周り

  • LÖVEは標準でも色々なデータフォーマットに対応しているけれど、色々なデータを扱えるようになるライブラリを有志の方々が作ってます。
    • この人のつくるライブラリはツボに入った。

landonmanning.com

  • それで上のブログのLandon ManningさんのライブラリSTIとか他にもライブラリがあるんだけれど、Tiledというマップデータを扱うライブラリでTiled本体を知りました。

f:id:SenjiNiban:20161029120311p:plain

  • Tiledはスクリーンショットの通り2Dゲームのマップを編集するソフト。マップ画像だけでなく、オブジェクトとかも配置できる。WindowsMacLinuxに対応。
  • 面白いのがデータのエクスポートで、CSVはもちろんなんですが、json形式、JavaScriptファイル、Luaファイルにエキスポート出来る。
  • あと、Landon Manningさんは前回紹介したlove3dも作っているんだけれど、これを作るために数学計算用ライブラリcpmlとか3Dモデル読み込みライブラリiqmとかも作ってる。
    • iqmはFPSQuake発祥のモデルを読み込める。
  • 最後にリンクまとめ張り

github.com
github.com
github.com
Tiled Map Editor
MakeHuman | Open source tool for making 3d characters
Inter-Quake Model (IQM) Format

  • The IQM development kitが正式に対応しているのはblenderの2.64まで

http://download.blender.org/release/

Windows10の大規模アップデートの対応とか

  • 前にも書きましたが自分の家のPC環境はノートPCでWindwos10とLinuxMintのデュアルブートで、今はLinux使うことが多い。
  • なぜならば、Windows10の大きなアップデートがあったわけですが、それが上手くできてなかったんですね。
    • Windows10だと自動更新の設定オプションとか見えにくく判り難くなってるので、基本おまかせでやってるんですがそれだと今回の大規模アップデートの際に、なんかビデオのコーデックのライブラリかなんだかがレガシーで、アップデートすると動かなくなる可能性があるので更新できませんでした、となって終了してしまうのでした。
      • これが結構な頻度で発生するので、段々起動とか動作が重くなってきた。
  • 前のWindowsの時、XPとか7の時もこのアップデート関連で段々重くなってきて、それが嫌でLinuxにシフトしていたこともあるんですが、Windows10になって、そこら辺が解消されて良い感じに動くようになり、ソフトウェア資産の多さ(音楽用VSTはやっぱりWIndowsの方が楽)でWindowsに戻ってきてたのですが、こんな調子になってきて、やだなーと思ってちょっとLinuxに避難していたという状況。
  • そんな状況だったのですが、おまかせで更新するのじゃなくて、更新用のアプリをダウンロードして、じっくり更新させたら(ほんとうにじっくりで30分以上掛かってる)ビデオコーデック問題も片付いて、無事大規模アップデートに対応することに成功しました。
    • 更新中何度か再起動するんだけどデュアルブートLinux優先にしているもんだから、ちょいと面倒臭かった。
  • このノリで次回大規模アップデートも上手く対応できて、予告されてるHMDとかこの安ノートPCでも対応できたりしたら良いなあ
    • そうしたらUnityとか頑張っちゃうんだが

www.gizmodo.jp

  • LÖVEの方は本当にやったりやらなかったりでボチボチ
  • シーケンサーの方は奥さんも使ってみたいというリクエストを貰ったので、まずプチコンmkIIとかにもあるような簡単シーケンサーを完成させる事にしました。
    • サウンドエンジンは出来て、ビートに合わせてシーケンスだけじゃなくて背景とか細かく動かすとかは出来た。

f:id:SenjiNiban:20161027195833p:plain

  • あと、シーケンサーとは別にやっぱり3D出来たら嬉しいな、と思ってフォーラムでLove3Dライブラリ見て、デモをダウンロードしたけど動かなくて、ソース読んで直して動かす、ってところまでは来ました。

f:id:SenjiNiban:20161027195853p:plain
ライブラリ作者のデモムービー
www.youtube.com

  • LÖVEとLuaに段々慣れてきてるような気がするが、もう少し自分に開発スピードが欲しいなあ。
    • でも本当にLÖVEは取っ付き易いフレームワークだと思う。オッサンが趣味でやるのにはとても良い。
    • Luaはテーブルが本当に便利。
      • Luaにはswitch文が無いけれど、テーブルに関数を入れられるので、それで対応するとか。
    • コルーチンとかガンガン使いこなせるようになりたい。

風邪の効用

  • 『風邪の効用』という本があって実はまだ未読なのだけれども、整体の創始者である作者の「風邪は自然の健康法である。風邪は治すべきものではない、経過するものであると主張する著者は、自然な経過を乱しさえしなければ、風邪をひいた後は、あたかも蛇が脱皮するように新鮮な体になると説く。」(「BOOK」データベースより)という風邪に関する考え方は非常に影響されたところがある。
  • この1週間位無気力感がひどくて必要最低限以外の事はほとんど手につかなかったのだけれども、週末にあまりに酷い頭痛と軽い吐き気で起き上がれなくなってしまい1日寝ていたら、次の日に回復して、なんか気力も随分回復したのだった。
    • 風邪の場合のような理屈は判らないんだけれど、身体が心身の不具合を治すために頭痛を起こしていたんだと思う。
      • こういう病に対する東洋医学的な考え方はとてもしっくり感がある。
  • おかげで昨日は最近出来なかったLÖVEのプログラミングが結構進んだのだけれども、今やり方は大体判っているんだけれどちょっと面倒臭いところに差し掛かって、はてなに逃避しているところ。
    • 逃避ついでに、またちょっとDEPTHやったり。
  • 自分のノートPCはWondows10とLinuxMintのダブルブート環境なのだけれど、Windows10になってからWindows環境で使うことが多かったけれど、最近Linux使う事が増えてきた。Linuxだと誘惑が少なくてプログラミングに集中できて良いのだ。
    • でもエディタはNotepad++使ってます。
      • ファイルセーブしてもUNDO効くのが気に入ってるので。
    • Luaゲームエンジンで検索して知ったPlaygroundはwineだと不安定なので、使ってみるとなったらWindowsかなあ。

風邪の効用 (ちくま文庫)

風邪の効用 (ちくま文庫)

DEPTH

DEPTH

github.com

メモ補足

  • LÖVEで音楽のBPMをきっちりキープするならWAVEというライブラリがあるのを見つけた。
    • LÖVEのライブラリは基本Wikiにまとまっているんだけども、膨大な分量のあるフォーラムにだけ公開されているのも結構あって、探すの大変だったりする。

github.com

  • ただ、このライブラリが想定しているサウンドファイルは1曲分で、BPMを検出したり、ダイナミクスを計算したり、love.updateのデルタタイムとは別にbpmに合わせた関数呼び出しをするのと、あとは音ファイルの再生について管理をするものなので、自分の用途とはちょっと違う。
    • LÖVEの基本は関数であるlove.update()とlove.draw()の中で処理をするのが基本なので、WAVEを使うのは多分中級者以上向け。
    • waveObject.setBPMとか手掛かりは色々あるのだけれど、Lua自体勉強中なので、今の自分にはちょっと難しい。
      • ただ使い方は何となく判ってきたので、いわゆるBPM管理じゃない昔のトラッカー風の速度設定にして、シーケンサーもどきプログラムを進めてみる。
    • 多分、アクションゲーム作るとかって事だとAIMSの方が簡単に出来そうな気がするけど、LÖVEは変なこと色々できそうなんだよな~。
  • なので厳密にテンポはキープできなくても怪しげなアプリをバージョン1は目指そう。
    • そう、あとLÖVEは標準ライブラリでトラッカーのMODファイルを再生できるってのもポイント高いんだよな。
      • Renoiseで曲作ってMODファイルで出力すればそのままBGMになるんですよ。
      • 対応しているMODのフォーマットも多い。自分がTokyoJunkSoundCollection作るのに使ってたOctaMedSoundStudioのMEDファイルも読める。
      • てな具合に宣伝もしてみる。

onbangdo.bandcamp.com

  • その他の自分用メモ
    • UnityのJavaScriptっていわゆる方言なのでC#の方がまんま文法が使えるのでC#の方が良いって意見をちらほら見た。そうなんか。
    • あと滅茶苦茶速いQuickBasic準拠BasicコンパイラのQB64がVer1.1になってた。

http://www.qb64.net/