mieki256's diary



2018/10/01(月) [n年前の日記]

#1 [blender] blender上で選択した複数の頂点を整列

blenderの操作を勉強中なのだけど、選択した複数の頂点を整列させる方法で悩んでしまってググったり。一応、把握できた操作方法についてメモ。環境は blender 2.79b。

xyz軸に沿って整列。 :

blenderの基本技として、x軸 or y軸 or z軸に沿って拡大縮小することで、頂点の座標を揃える、という技がある。やり方は、以下。
  1. 複数の頂点を選択。
  2. キーボードで、S → X → 0 → Enter と打ち込む。
blender_sx0.gif

何をしてるかと言うと…。
  • S と打つと、拡大縮小ができる状態になる。
  • X と打つと、x軸方向に動きを制限できる。
  • 0 と打つと、座標値を0倍する…ので、選んだ頂点のx座標値が全て同じになる。
  • Enter で確定。

選択した複数の頂点を一直線に並べる。 :

選択した複数の頂点を、xyz軸に関係なく、一直線に並べたい。

これは addon (アドオン)を導入したほうが楽かもしれない…。ググったところ、以下の2つに遭遇。

_Blender Addon List: Addon: mesh vertex tools
_辺の整列を行うスクリプト | BLENDER ADDON

前者の使い方は、Ctrl + V → 整列 ( or Distribute / Align and Distribute) を選ぶだけ。

blender_valign.gif

後者の使い方は、Ctrl + E → Verts Alignment を選ぶだけ。

blender_valign2.gif

どちらも便利。ありがたや。

ちなみに。
  • Ctrl + V で、頂点 (Vertex) に対して実行できる処理の一覧が表示される。
  • Ctrl + E で、辺 (Edge) に対して実行できる処理の一覧が表示される。

選択した複数の頂点を任意の軸に沿って整列。 :

blender は、選んだ2つの頂点から任意の座標系を作って、その座標系上でトランスフォーム(移動、回転、拡大縮小)をすることができる。その機能を使って、頂点を整列することもできる。
  1. Nキーを叩いて、プロパティウインドウを表示。
  2. 任意の2頂点を選択。
  3. プロパティウインドウ上の、トランスフォーム座標系 → 右のプラスボタンをクリック。これで、選択した2頂点を軸とした座標系が作られる。
  4. グローバル → 先ほど作成した座標系を選択。
  5. 整列したい複数の頂点を選択。
  6. S → X → X → 0 → Enter と打って、作成した座標系のx軸等に沿って頂点を整列。
  7. 座標系が要らなくなったら、右の×ボタンをクリックして削除。
blender_transaxis.gif

途中、S , X , X , 0 と、X を2回打ってることに注意。Xを1回打つとグローバル座標系、2回打つと作成した座標系に制限される、らしい。

選択した複数の面を平坦化する。 :

ついでに、選択した複数の面を平坦化する方法もメモ。
  1. 複数の面を選択。
  2. SPACEキーを叩いて検索する。
  3. 「flat」と打てば「flatten」が出てくるので、実行。
blender_flatten_trim.gif

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

#1 [anime] 故・首藤剛志氏のコラムは宝の山なのではないだろうか

アニメ脚本家、 _故・首藤剛志 氏が、生前にWebアニメスタイルで連載していたコラムを再読していたのだけど。

_シナリオえーだば創作術 - WEBアニメスタイル_COLUMN

もしかするとこのコラムは、企画の元ネタ・発想のヒントとして眺めたら宝の山ではなかろうかと、読んでるうちに思えてきたり。と言うのも、当時は没になってしまった企画のアイデアがいくつか掲載されているけれど、「あっ。ソレ面白い」「今ならアニメ化できるのでは?」と思えるものがいくつかあって。

例えば、宇宙戦艦ヤマトの続編没案などは、どう考えても昨今の異世界転生スマホモノより面白くなりそうだよなと…。もちろん、本家ヤマトシリーズでは採用されない系の珍妙発想だとは思うけど。しかし、没案の中にある、子供の頃に目撃した光景に憧れ続けて、「あの頃の栄光よ、もう一度」的に行動を起こしてしまった老人と、嫌々付き合わされてしまうことになる若者達という図式は、今現在この日本で起きてるアレやコレとかなり重なって見えるよなと…。

あるいは、氏がシリーズ構成として参加したロボットアニメ、おそらくはダンクーガ○○○についての話の中にも、気になる一文を見つけたり。色々なテーマを考えていた中で、「200年後の人間ってどうなってるんだろう?」というテーマもあったらしいけど ―― この問いかけの一文から、色々妄想ができそうだなと。

氏は、「やる気を無くして冷めちゃって、どいつもこいつもクールぶってるはず」と決めつけながら筆を走らせた、みたいなことが書いてあったけど。もちろん、「いやいや、そんなはずはない」「200年程度では、今と大して変わらんだろう」と思う人も居るだろうなと。しかし本当にそうだろうか。例えば200年前の日本を思い返したら、少なくとも見た目は随分違うし、民族性も結構違っていたはずで。何せ、明治時代の外国人技師が、「日本人と言う民族は怠け者」「まず、時間をまったく守らない」と日記にメモしていたらしいのに、それが今では電車が5分遅れただけで駅員を怒鳴りつける民族になってしまった。などと考えていくと、200年前と今が違うように、200年後の人間だって何かしら変化があるだろう、もちろん変わらない部分だってあるだろう、何が変わって何が変わらないのか…。てな感じで、氏が残した各企画の発想をキッカケにして、色々思考していけそうだよなと。

アニメ業界の中では、「(ネタに)困った時は首藤さん」と冗談めかして言われてたらしいけど、たしかに、ちょっと妙な発想がコラムの中にも散りばめられている感が…。そしてそれらは、ネタを考える際のヒントにも、十分なりそうな気がするわけで…。

もしかすると、今も尚、「困った時は首藤さん」は有効なのではあるまいか。ネタに詰まった時に、氏の残したアレコレを眺めれば、何かヒントが得られるのでは。などと件のコラムを読みながら思ってしまったりもして。

2018/10/03(水) [n年前の日記]

#1 [blender] blenderをまだまだ勉強中

blenderを使ってモデリングの勉強中。

2018/10/04(木) [n年前の日記]

#1 [nitijyou] 朝は寒くなってきた

親父さんが検査入院してるので、朝の犬の散歩も自分が担当することになったのだけど、予想以上に、朝は寒くなってたことに気づいたり。冬用の衣服を着ないと厳しいかもしれないな…。

#2 [zatta][neta] 風評被害の問題は面倒臭い

思考メモ。

ここ最近、ちょっと気になるニュース群があって。

_防護服を着た子供像「サン・チャイルド」は、なぜ福島で炎上したのか(林 智裕) | 現代ビジネス | 講談社(1/5)
_トリチウム水の保管 「風評被害の先送り」 | NNNニュース
_タンクで長期保管に課題との認識|NHK 福島県のニュース

風評被害云々は、面倒臭いというか、扱いが難しいなと。その場所で発生するわけではなく、その場所以外で発生する問題だから…。この場合、県内ではそれほど勘違いはされないだろうけど、県外でめっちゃ勘違いされるだろう、特に東京都民あたりがかなり勘違いをしてしまうのでは、という不安が出てくるからゴタゴタするわけで。

この手の問題を解決するには、風評被害を発生させる張本人になるだろうと疑いをかけられてしまっている東京都民がポージングを取るしかないよなと。以下のような感じで…。

「いやいや、ちょ待てよ。俺達、東京都民は勘違いなんかしないよ?」
「福島県人は東京都民を馬鹿にするな! 俺達はお前達よりはるかに賢いんだぞ!」
「その証拠に、福島県で取れた魚を、これこの通り、バンバン買ってるしバンバン消費してるだろ?」
「福島県内で防護服が必要だった? なわけあるか。馬鹿じゃないの」

そんな姿や主張を東京都民から見せられたら、福島県人は、「えっ…そ、そうなの? じゃあ…トリチウム水を海に捨てても大丈夫…なのかな…」「あのアート作品、飾ったままでも大丈夫だったのか…」という気分になって色々と話は進むだろうと。

つまり、この問題を解決できるか否かは、東京都民の今後の働き ―― どういうポージングをするかにかかっていると言えるわけで。

とは言え、そんな展開にはならないだろう…。おそらく大半の東京都民は、「いやー、俺は賢いから勘違いしないけど、俺以外はどうかなあ。馬鹿ばっかりだからなあ」などと思ったりするのではないか。しかも、「福島県人は魚を取るなー!」「福島県人は私達を殺す気かー!」なんて都内で叫んでる人達を目にして、「ホラな。俺以外は馬鹿だから、やっぱりああいうのも出て来ちゃうし。風評被害は起きないと言い切るのは無理だよー」と思ったりもするだろう。ややこしいことに、「福島県人は殺人者だー!」と叫んでる人達も、「私は賢いからそこに危険性があると分かってるけど、私以外はそれが危ないと全然分かってない。私以外の人間って、馬鹿なんじゃないの?」と信じ込んで叫んでたりするわけで。

つまるところ、「風評被害が起きるのではないか」という不安は、「自分は賢いから大丈夫だけど、自分以外は馬鹿だからどうなってしまうかわからん」という不安から生じている部分が結構ありそうだよなと。こういう問題は、ちょっと解決が難しい…。

まあ、世の中の大半の問題は、他者への不信感から生じるような気もするので、今更な話かもしれないけれど。とにかく、こういうのは面倒臭いなと…。

トリチウム水の問題についてメモ。 :

トリチウム水の問題については、NHKの水野解説員の説明が分かりやすいのでメモ。

_「原発汚染水処理 対応を急げ」(時論公論) | 時論公論 | 解説アーカイブス | NHK 解説委員室

対策案は3つあるけど、一番安く済みそうなのが薄めて海に捨てること、と思われてるのでそれで行けないかという話になっているそうで。

ただ、国や東電は「安全だー」「安全だー」と言ってるけど、「アイツラのことだからどさくさに紛れて他のヤバい物質も混ざったまま捨てるんじゃねえのか?」 「コレ、風評被害が絶対起きるやろ」という不安があってゴタゴタしてるわけで…。

個人的な妄想。 :

個人的には、東京湾まで持っていって捨てればいいんじゃないの、と思っていたりもするのだけど。風評被害を発生させるのはおそらく東京都民なのだから、その人達の地元で流してしまえば、そもそも福島県への風評被害なんて起きるはずもなく。これであっさり問題解決しちゃうよなと。

だけどそんなことを主張したら、国も東電も、「いや…それはちょっと…」と絶対言い出すだろうなと。アレレー。おかしいなー。「安全だー」って言ってたんだから、どこで捨てても同じじゃないの。これは怪しい。やっぱりコイツラ、ヤバい物質混ざったまま捨てようと考えてたんじゃないのか。てな不安が拭いきれない状態になるよなと。

もっとも、東京湾で捨てるとなれば、国や東電が言うように本当に安全だったとしても、東京湾近郊で漁業を営んでる方々が、「俺達が風評被害に晒されるだろ!」「絶対反対!」と言い出すのも容易に想像できるわけで。

結局のところ、海に捨てる方法を選んだら、どの地域を酷い目に合わせるか、という話にしかならんのだろうなと…。

おそらく最終的には、どこかの政治家がうっかり言ってしまったように、「最後は金目でしょ」ということになるのかなと思ったりもして。札束で貧乏な田舎者達の頬を引っ叩いて言う事聞かせるしかねえだろ、みたいな。頬をパシパシされる側も、他で捨ててくれと言っても聞き入れてもらえないし、どうしたって自分達が酷い目に合うことが確定してるなら、せめてそのダメージ分を我慢できる程度の金銭でも貰わなきゃやってられないだろ、みたいな空気になりそうだなと。

しかしそうなると、元々は一番安く済むと思ってたその方法って、本当に安く済むのですか、という疑問も湧いてしまうなと。実は、高くつくと思ってた方法のほうが、トータルでは安くなっちゃったりしないか…。何のために海に捨てる方法を選んだのか、意味不明な状態にならないか…。ちゃんと算盤弾いてみたほうがいいような気がする…。

あるいは、元々基準値以下まで薄めて捨てるという策なのだから、全国に配りまくって薄めて捨てたほうが、濃度をさらに薄めることができて、一ヶ所で捨てるより更にマシな状態にできるんじゃないか、という疑問も湧くし。そうすれば、福島県に金を渡す必要も無くなる。安いと思われる策を、輸送費を上乗せする程度で、比較的安いまま実行に移せる。皆で痛みを分かち合ったのだ、という体裁も得られて、日本人と言う民族の団結力を高める効果すら期待できる。かもしれない。

まあ、どうせ、どこの地域も「穢れ」を受け付けるのは嫌なので、「最後は金目でしょ」になっちゃうのかなと予想しているのですが…。

せめて、福島と東京湾で半分こ、てな策になれば面白い(?)のに。福島県側はきっとビックリ。「ええっ…本当に安全だったのか…」「疑ってた俺達って、一体…」てな妙なムードになったら更に面白い(?)。まあ、そんな展開あるわけないけど。

2018/10/05(金) [n年前の日記]

#1 [cg_tools] Shadeはどうなるのだろう

ソースネクストのDMを眺めてたら、「Shade3D販売終了」の一文が目に入った。

たしか Shade3D の開発会社は、フォーラムエイトという企業に買収されたはずだけど。そうか…。やはり Shade3D という製品ラインナップは、終了・消滅するのか…。

と思ってしまったけど、コレ、あくまでソースネクストからの販売は終了するという話で、公式は販売を続けるのだろうか。それとも、公式も終了する予定なのだろうか。ちょっとよく分からないな…。

ソースネクストから販売されてた版は、現行版 1.8 の、2つ前のバージョンの 1.6 で。本来なら66,000円の最上位版が11,500円(税抜)で買えますよ、みたいな話だったけど。どうせ古い版なのだから、そのままずっと売ってても良さそうな気もするのだけど…。まあ、色々な事情があるのだろう…。

どうしたもんか。 :

しかしどうしたもんか。古い版とは言え、この機会に自分も買っといたほうがいいのだろうか…。

自分、一応、Shade 12 を買って持ってるけれど…。blender はそこそこ起動するけれど、Shade はほとんど起動しないのだよな…。持ってるのは Standard版だからバージョンアップのお値段も高かったし、ある時期から、バージョンアップの対象製品は現行版より2つ前のバージョンまで、という制限がついたので、今から買うとなるとバージョンアップ版は買えないため、まるっと新規導入価格になっちゃうしで。そこまでして入手したいソフトかと言うと…。

「こういう作業は Shade を使わないと無理」という場面に遭遇したことがないんだよな…。大昔から触ってたユーザでもないから、操作方法が手に染みついていてサクサク作業できるわけでもないし。毎回、「操作忘れたわ…どうやるんだっけ…」と解説記事をググって触ってた気もするし。

「昔からコレ使って飯を食ってる」「Shadeが無いと仕事にならない」てな方々が支えてるソフトだろうから…。自分の場合はスルーしたほうがいいのかもしれない。というか、今から Shade の使い方を覚えるぐらいなら、blender の使い方を覚えたほうが面白いよな…。

#2 [web] Yahooのサービスってよく分からないな

某所から相談を受けて、Yahooメールの動作確認を ―― メールの文字化けに対処する操作方法があるのかないのかを調べていたのだけど。「添付画像をYahooボックスに入れますか?」みたいな場面が出てきて、「Yahooボックスって何だ?」「ソレ、Yahooのことだから、もう終了してるサービスじゃないの?」と疑問が湧いてググってしまったりして。

一応、Yahooボックスは、サービス提供継続中ではあるらしい。ただ、PC向けの関連アプリが提供終了したとか、利用上の制限が多いとかで、利用してたユーザの間では死んだも同然のサービスとして扱われてるらしい空気になってるようで。これはなかなか厳しそうだなと。

そこから、ふと、なんとなく。考えてみたら、Yahooのサービスって、次々に立ち上がって次々に終了していくイメージがあるなと。もはや、どれが生き残っていて、どれがお亡くなりになったのか、よく分からない…。

もしかして、中の人も把握できてなかったりしないか…。どうせ各サービスは、別会社が運営してたりするのだろうから、ますます分からないだろうなと…。

先日、サービス終了が決定した Yahooジオシティーズも、ひょっとすると、偉い人が、サービスを継続してることに気づいてなかったのではないか…。しかし、ある日たまたま気づいちゃって、「オイ! 何だこのサービスは! blog以前の古いサービスなんかもうやめちまえ」「いや、Webのアーカイブ性が…」「なんだそりゃ。ウチは慈善事業やってんじゃねえぞ! やめろやめろ! こんなくだらねえサービス捨てちまえ!」とかなんとか言い出しちゃったのではないか、などと勝手な妄想をしてしまったりもして。

各サービスが連携できてないあたりもアレだよな…。Yahooボックスなんて、「無料で使える容量は5GB!」などと言ってるのだから、Yahooジオシティーズの100MB程度ならまるっと内包できそうな気もするのだけれど。その100MBを提供し続けることすら難しいです、という話になりながら、5GBを持てる別サービスのほうは継続して提供できてます、てな感じの、外から眺めてるとちょっとチグハグな状況に…。各サービスが分断されちゃってるからそういう状況になるのだろうし、各サービスが分断されるのは会社組織だの事業部だのが分断されちゃってるから、みたいなことなのだろうけど。もっとも、今時は、アレもコレもやれますとなるとセキュリティ面の問題が増えてしまいそうでもあるし、各自がてんでバラバラにやってるほうがマシなのだろうか…。

まあ、こういうのって、Yahooに限ったことでもないよな…。どんな会社も、規模が大きくなれば、頓珍漢な状態になるのだろう…。例えば、昭和時代のSHARPだって、似たようなスペックなのに事業部の縄張り争いで3系統のパソコンを売ってたし…。 *1 「似たようなことしてるんだから一緒にやろうよ」という話には、どこもえてしてならないのだよな…。
*1: もっとも、当時のSHARPも、ある時期になったら部署の統合みたいなことはしたらしいのだけど。

2018/10/06() [n年前の日記]

#1 [web] Waterfoxで見れないサイトもあるのだな

ここ最近、秋月電子通商のサイトがずっとシステムメンテナンス中で、どうしたんだろうと不思議に思っていたのだけれど。

ふと、普段使ってる Waterfox ではなく、GoogleChromeで開いてみたら、フツーに表示されてしまって…。そうか…。Waterfoxでは見れないサイトも存在するのね…。

試しに、User-Agent Switcher という拡張を Waterfox にインストールして試してみたり。

_User-Agent Switcher

Firefox のふりをしてアクセスすると、フツーに表示されてしまった。どうやら秋月電子のサイトは、メジャーなブラウザ以外は全て弾く作りになっているのだな…。気づかなかったわ…。

2018/10/07() [n年前の日記]

#1 [anime] ルパレンvsパトレン、地下で巨大ロボット戦の回を視聴

「快盗戦隊ルパンレンジャーVS警察戦隊パトレンジャー」35話、「良い人、悪い人、普通の人」を視聴。

終盤、地下での巨大ロボットが戦うシーンがあったのだけど。シビレタ…。これはカッコいい…。素晴らしい。

トンネルの中を高速移動する巨大ロボットの図。たまらん。サイコー。今回はガンヘッドの何倍もカッコイイぞ! <オイ。特撮関係では、狭いトンネルの中をメカが物凄い速度で飛んでいく、というのが見所シーンとして用意されてることがあるのだけど。例えば、STAR WARS の EP4 や EP6 でやってたりするアレですが。ああいった迫力あるシーンを、まさかTVシリーズで見れるとはなあ…。実に素晴らしい。いや、考えてみたら、特技監督の佛田洋監督は、たしかジェットマンでも、わざわざ建設中のビルの中を飛行機が飛んでいく、てなシーンを見せてたっけ…。「スピード感のある映像なら任せろ!」的な作家性なのだろうなあ…。

東映の公式サイトを眺めてたら、「佛田サーカス」なる単語を見かけて、「ああ…たしかに」と思えたり。ああいった映像はそう呼ばれるに相応しい。アニメ界には板野サーカス。特撮界には佛田サーカス。てな状態かもしれぬ…。

#2 [anime] ライダー555の必殺キックが気になる

「仮面ライダージオウ」を見ていたら、どうやらライダーフォーゼ+ライダー555回だったようで。555でメインキャラを演じていた半田健人さんや村上幸平さんが画面に出ていて、自分はおじさん視聴者なのに変な声を出しつつ喜んでしまったり。お二人とも、相変わらずのカッコよさじゃのう…。しかも御歳を召したせいか、頼りになりそうな感がプンプン。いやー、こりゃええ男っぷりじゃわい。眼福眼福。ありがたや。

それはさておき。555の必殺キックを今回のライダーが再現するところで、一瞬「?」となってしまったり。またイマジナリーライン越えをしてる…。 555の本放映当時は、そこらへん、色々な見せ方を試して、最終的にはちゃんと解決してた記憶があるのだけど…。

これはアレかな。当時のスタッフはもうほとんど残ってなくて、ノウハウが忘れ去られてしまったのか…。結構世代交代してそうだもんな…。

それともアレかな。「あのうっかりさんなイマジナリーライン越えがなきゃ555の必殺キックじゃないでしょう」「あの1カットで一瞬『アレ?』と思ってこその555ですよ」てなこだわりでもあって、映像としてはちょっとアレなんだけどあえて再現してみました、どうですか、懐かしいでしょう、てな状況なのだろうか…。

後者だったらいいなあ。

そういや昔、このあたりのことをメモったような…。と思って検索してみたら、やっぱりメモってた。

_mieki256's diary - イマジナリーライン云々

2018/10/30追記。 :

その後の回で、555本放送当時の、異なる構図のキック映像 ―― 正面からライダーを捉えてカメラに向かってビームを撃つ構図も出てきたことに気づいたり。どうやら当時の映像を再現することに注力してるっぽいなと…。

#3 [zatta] 昔のアレを再現するソレ

思い返してみれば…。オリジナル版はちょっとアレなんだけど、そこをあえて再現、みたいなことを大昔の自分もちょっぴりやってたことがあったなと…。

かなり昔の某特撮作品内の光学合成エフェクトを、ゲーム画面上でも再現する際に、手持ちの技術ならもうちょっとゴージャスにできちゃうのだけど、当時は素朴な見た目と素朴な動きだったのだから、コレは忠実に再現しなきゃいかんだろう、それがファンサービスってもんだろう、と、ビデオを何度もコマ送りしてわざわざショボさを再現した、そんな記憶が…。

あるいは、「前作で、見た目はジェット機系なのに、何故かヘリコプターのSEがついている」「今回、コレを修正すべきか否か」てな場面で、「そこは絶対再現すべきですよ」「そこがいいんですよ」と主張した、そんな記憶も…。 *1

昔のゲームにバグがあった際に、問題にならない範囲でできるだけ再現したい、てな感じの妙なこだわりがムクムクと沸き上がる場面ってあるんだよな…。これがまた、そういうのって、作業しててもちょっと楽しいのですよね…。なんでだろ。

オリジナル版はもっと先に行きたかったのかもしれない。 :

ただ、しかし。オリジナル版を手掛けた当時の人達が、本当にその結果で満足してたのか、という疑問もあって。当時は技術的制約、時間的制約でそうなってしまったけど、本当はもっとゴイスなイメージを思い浮かべていた ―― そんな可能性だってあるよなと。

思いっきりアレンジしてゴージャスになったソレを見て、オリジナル版を手掛けた人達が「これだよ! こういうことをしたかったんだよ!」と喜んでくれる、そんな展開だってあるかもしれないのだけど…。でも、ファンの人達は、「コレジャナイ」「余計なことすんな」と言い出しそうな気もするし。

「宇宙戦艦ヤマト」のリメイク企画では、そういう光景があったような気もするなと。当時は予算と時間の問題でヤマトはほとんど動かなかったけど、今はCGでグリグリ動かせる。あの頃CGがあったら、どうしてたんだろう。やっぱりグリグリ動かしてたんじゃないのか。であれば今回は動かすべき。当時はやりたくてもできなかったアレコレを、今回はやってみせよう。関係者が夢見てたヤマトの映像を作ってみよう…。てなノリで提示された映像に対して、旧作ファンが「ヤマトは動いちゃダメだろ」「分かってねえな」と文句を言う、みたいな。

「こだわりを持って作る」と言っても、色んな方向性があって。どれが正解でどれが間違ってるというわけでもなく。各人それぞれ、こだわるポイントが違うだけで。

「コイツ、分かってねえ」とうっかり思ってしまった何かしらも、こちらが思ってもみなかったポイントにめっちゃこだわって作られていた、そんな可能性が絶えずあるのだよな…。

*1: いや、これは逆だったかもしれない…。サウンドの人が「何を言ってるんですか。この珍妙ぶりがいいんですよ」と主張して、こっちも次第にその気になった可能性が…。めっちゃ昔のことだから記憶が怪しい…。

2018/10/08(月) [n年前の日記]

#1 [nitijyou] お腹の調子がよくない

朝からずっとお腹の調子がよろしくなくて、ずっと横になってたり。

2018/10/09(火) [n年前の日記]

#1 [blender] ローポリ関係の記事を眺めてる

せっかくblenderをまた触り始めたのだからもうちょっと勉強しておきたいなと思ってローポリ関係の記事を色々眺めているところ。

2018/10/10(水) [n年前の日記]

#1 [blender] ローポリ関係の記事をまだ眺めてる

まだローポリ関係の記事をググったり色々眺めたりしているところ。

2018/10/11(木) [n年前の日記]

#1 [tv] サイエンスZERO、がん治療の回を視聴

NHK教育で放送されてるサイエンスZEROの、がん治療についての回を視聴。2015年頃に放送された回の再放送、らしい。

回の中盤頃に、後にノーベル賞を取ることになる本庶教授へのインタビュー映像があってなんだか感動。賞云々以前から、「こういう研究をしてる人が居ますよ」「こんな素晴らしい発見をしたよ」とTVでも放送されていたのだな…。

「免疫療法ではがんは治せない」「あんなものは眉唾物」と言うのが、それまでのがん治療の常識で、故に、せっかくこういった発見をしても、どの企業も新薬開発に全く乗り気ではなかった、との話で。教授は、ノーベル賞受賞決定時のインタビューの中で、教科書を疑え、常識を疑え、的な発言をしていたけれど、そういう経緯があったからこその発言だったのだなと…。 *1

しかし、T細胞、スゴイな…。「はたらく細胞」にも出てたっけ…。
*1: 考えてみたら、地動説もそういうアレかな…。常識とされているモノの中には間違っているモノもある…。けれどそういうフレーズはオカルト関係でも頻繁に使われる印象があって、なんだかちょっと…。

2018/10/12(金) [n年前の日記]

#1 [prog][tic80] Fantasy Console TIC-80をちょっとだけ触ってみたり

ブックマークを整理してたら、「TIC-80」というキーワードを発掘。

_TIC-80 tiny computer
_Home - nesbox/TIC-80 Wiki
_8bitなゲーム環境Fantasy Computerをまとめてみる - inajob's blog
_無料でオープンソースな架空のレトロゲーム機「TIC-80」に関するまとめ
_Time Tripper: この冬の暇つぶしみっけ! TIC-80 tiny computer
_Time Tripper: TIC-80で簡単なプログラムを作ってみる
_無料でオープンソースな架空のレトロゲーム機「TIC-80」の紹介 - kitao's blog
_Fantasy Console Wars: A Guide to The Biggest Players in Retrogaming’s Newest Trend

TIC-80とは何ぞや。「Fantasy console」「Fantasy Computer」と呼ばれる、架空・空想上のレトロゲーム機、の一種、だそうで。PICO-8 という有償ソフト・環境が提唱し始めたソフトのジャンルらしいけど。

要するに、「俺が妄想した最強のファミコン (or コモドール64 or シンクレア ZX Spectrum or etc)、っぽい環境を、現代のPCスペック上で作ってみたぜ」なソフト、とでも思っておけばいいのかな…。一般的には、エディタ、ドットエディタ、マップエディタ、サウンドエディタ等が内蔵されているので、実行バイナリを一つ導入するだけで、レトロゲームっぽいものが作れる環境が整ってしまうらしい。

PICO-8は有償ソフトだけど、TIC-80は無料で使える版も用意されているそうで。ちなみに、有償版の TIC-80 もあって、そちらを使うと外部エディタでソースを編集したり等々ができる模様。

とりあえず触ってみる。 :

せっかくだから、とりあえず触ってみる。

TIC-80 は、Windows、Mac、Linux等のローカル環境で動く版もあるけれど、ブラウザ上で動作する版も用意されてる。以下のページを開けば、ブラウザ版を試せるので、ひとまず、ブラウザ版を使って触ってみる。

_Create - TIC-80 tiny computer

「CLICK TO START...」と表示されたページが出てくるので、マウスでクリックすると、初期化画面っぽいものが表示されて、その後入力待ちになる。

tic80_ss01.gif

help と打ち込めば、入力できるコマンドの一覧が出てくる。

tic80_ss02.gif

ヘルプメッセージがスクロールして流れていってしまうけど、画面上でマウスホイールを回せば画面をスクロールさせられるので、流れていってしまったメッセージも確認できる。

おもむろに、run と打ってみる。Hello World 相当の画面が表示された。

tic80_ss03.gif

カーソルキーを押してみる。画像(スプライト)が上下左右に動いた。キー入力も検出できているらしい。

ESCキーを叩く。プログラムが終了して、入力待ちの画面になった。

TIC-80 は、起動直後、既に Hello World を読み込んだ状態で起動してるので、run と打ち込めば Hello World を起動してくれるらしい。

この状態で F1キーを叩いてみる。エディタが表示された。Hello World 相当のプログラムが読み込まれている状態なので、Hello World のソースが表示されている。

tic80_ss04.gif

ESCキーでエディタから抜けられる。

ソースを書き変えてみる。F1キーを押してエディタに切り替えて、x=96 と書かれたところを x=0 にしてみる。ESCキーを押してエディタを抜けて、run と打ち込む。

tic80_ss05.gif

画像(スプライト)の表示位置が変わって、画面の左端(x=0)の位置になった。こんな感じでソースを修正していけるらしい。

デモプログラムを動かす。 :

TIC-80 は、デモプログラムが用意されている。demo と打ち込むと、ソースを格納する場所に、デモ用のソースがいくつか保存される。

tic80_ss06.gif

ソースの格納場所の中から、何かのソースを選んで動かしたい場合は、surf というコマンドが使える。surf と打ち込み、カーソルキーの上下でソースを選択して、Zキーを叩けば、そのソースを実行することができる。

tic80_ss07.gif

終了はESCキー。

公式サイトには、TIC-80ユーザが書いた作品群があるので、それらを実行してみることもできる。

_Play - TIC-80 tiny computer

どれかしらのスクリーンショットをクリックすれば、「CLICK TO START...」と書かれた例の画面が出てくるので、マウスでクリックすればプレイすることができる。

ちなみに、ほとんどの場合、
  • 十字キー : カーソルキー
  • Aボタン : Zキー
  • Bボタン : Xキー
になっている。

作品群をローカルで動かす。 :

ブラウザ上で動く TIC-80 は、ちょっと処理が重いので、公式サイトにアップロードされてる作品の中には、ガクガク状態で動くものもある。

そういう場合は、各ページの「download cartridge」と書かれたリンクをクリックして、cart.tic をローカルにダウンロードして、ローカル環境で TIC-80 を動かしてやると滑らかに動く時もある。

ローカル環境で動く TIC-80 は、以下のページの下のほうに列挙されてる。

_Create - TIC-80 tiny computer

Windows10 の場合は、tic80_0.70.6.zip をダウンロードして解凍後、中に入ってる tic80.exe を実行してやればいい。

操作の流れは…。
  1. 公式サイトの作品群の、cart.tic をダウンロード。
  2. ローカルで TIC-80 (tic80.exe) を起動。
  3. folder と打ち込んでやると、Windowsの場合ならDOS窓 → エクスプローラの順で置き場所が開く。
  4. そこに、ダウンロードした cart.tic をコピー。
  5. TIC-80上で surf と打って、cart.tic を選んで、Zキーを叩けば実行できる。

ちなみに、公式サイトでダウンロードできる .tic は、どれもファイル名が cart.tic になっているけれど。ファイル名を変更しても、ローカルの TIC-80上でちゃんと動くので、区別がつきやすいように別名で保存・コピーしてしまっても構わない。

また、ローカル環境で動かした TIC-80 は、ウインドウの×ボタンをクリックするか、あるいは exit と打つことで終了させられる。

.ticの保存場所。 :

ローカルで TIC-80 を動かした場合、例えば Windows10 なら、以下の場所に .tic 等が保存される。
C:\Users\アカウント名\AppData\Roaming\com.nesbox.tic\TIC-80\

まあ、前述のとおり、TIC-80 を起動して、folder と打ったほうが早いとは思うけど…。

どんなファイルが入ってるかは、TIC-80 上で、ls もしくは dir と打ち込んで確認することができる。もちろん、エクスプローラ等で眺めてもOKだけど。

2018/10/14追記。 :

上記では、公式サイト上の作品群を試す際、一々ローカルにダウンロードして…といった流れを書いてしまったけれど、わざわざそんなことをする必要はないことに気づいた。

ローカルで TIC-80 を動かして、surf と打つと一覧が表示されるけど。一番上の、
[tic.computer/play]
を選んでZキーを押せば、Web経由で公式サイトの作品群を選べる模様。[Games] や [Demos] があるので、その中に入って(Zキーを押して)、気になるソースをZキーを押して実行すればいい。

#2 [neta] 顔認識技術で着ぐるみを動かせないものだろうか

NHKの「チコちゃんに叱られる」を眺めているうちになんとなく思ったけれど。顔認識技術を着ぐるみの表情変化に使えないものかなと…。いや、チコちゃんは、収録後にCG班が1カット1カットに表情つけてるらしいから、顔認識技術と言っても表情取得とかはしてなくて、着ぐるみ頭部の位置や向きの取得にしか使ってないのではと想像するのだけど。

例えば、プリキュアの着ぐるみの中の人が、眉をしかめたり、笑顔になったりすると、着ぐるみプリキュアの表情も変化したら面白そうだなと。

しかし、着ぐるみの表情を動かすとなると、モータ音やエアー音がしてちょっとアレかな…。着ぐるみプリキュアが笑顔になるたびにステッピングモータの「キュイッ!」「ギャギャギャ!」の音がして、「ママー、なんか変な音がするよー」と幼女が…。またプリキュアが幼女の新しいトラウマを作ってしまいそうな気もする…。

機構を頭部に内蔵するのも大変そう。頭部は巨大になって、二頭身キャラ以外は作れなくなるな…。

2018/10/13() [n年前の日記]

#1 [prog][tic80] TIC-80をまだ触ってたり

TIC-80をせっかく触り始めたので、もうちょっと使い方を調べてみようかと。

Windows環境にインストール。 :

TIC-80はブラウザ上でも動くけれど、ローカル環境で動かしたほうが多少高速に動くわけで。一応導入の仕方をメモ。

Windows の場合は、 _公式サイト から tic80_0.70.6.zip をダウンロードして、解凍して、中に入ってる tic80.exe を実行すれば済む。

Windowsストア上で「TIC-80」で検索してインストールすることもできるのだけど、そちらはバージョンが 0.60.3 と古かった。試しに Windowsストア版もインストールしてみたけれど、folderコマンドが使えなかったり、どこにファイルが保存されるのか分からなかったりするので、ちょっと不便かなと…。公式サイトの最新版を使ったほうがヨサゲ。

Ubuntu Linux環境にインストール。 :

VMware Player + Ubuntu Linux 18.04 LTS 上でも動くかどうか確認してみた。

Ubuntu Linux 18.04 LTS の場合も、 _公式サイト から tic80_0.70.6.tar.gz をダウンロードして、解凍して、中に入ってる tic80 をパスの通った場所にコピーして実行すれば済む。

自分の場合は、ユーザのホームディレクトリに bin というフォルダを作って、その中に tic80 をコピーして、パスを通す設定をした。
mkdir ~/bin
mv tic80 ~/bin

vi ~/.bashrc
~/.bashrc に以下を追加。
export PATH=$PATH:/home/USERNAME/bin
端末を再起動すれば、~/bin/ にもパスが通っているので、端末上で tic80 と打ち込むだけで TIC-80 が起動する。

Ubuntu Linux の場合、snapパッケージ版の tic80 もあるようだけど、snap install tic80 と打ってインストールしてみたところ、tic80 のバージョンが 0.50.1 pro と随分古かった。しかも、VMware Player + Ubuntu 18.04 LTS 上では tic80 と打って実行しようとしてもコアダンプを吐いて動いてくれない。どうやらこちらも、snap版は使わずに、公式サイトから最新版ををダウンロードして使ったほうが良さそうだなと。

ファイルの保存の仕方。 :

TIC-80実行後に、F1キーを押してエディタを表示してソースを修正した後、どうやってファイルを保存したらいいのかで悩んでしまった。

ググった感じでは、入力待ちの画面で、
save 保存ファイル名
で済むようだなと。

ちなみに、拡張子 .tic は打たなくていい。例えば test01.tic というファイル名で保存したい場合は、save test01 と打てば済む。

一度ファイル名をつけて保存すれば、入力待ち画面でも、エディタ画面でも、Ctrl+S を叩くだけでファイルを上書き保存できる。ファイルが保存されると、画面上部に「〜を保存したよ :)」的なメッセージも表示される。

ファイルのロードは、surf と打って選んでもいいし、load ファイル名、でもいいらしい。

どこに保存されているかは、folder と打てば確認できる。

Luaのバージョン。 :

TIC-80に内蔵されてる Lua のバージョンを確認したら、Lua 5.3 だった。とメモ。

以下のようなソースで、Luaのバージョンは表示できる。Lua の場合、おそらくはグローバル変数 _VERSION に、Lua のバージョン情報が格納されてるらしい。
-- title:  game title
-- author: game developer
-- desc:   short description
-- script: lua

function TIC()
  cls(13)
  print("Lua: " .. _VERSION,8*11,8*3)
end

2018/10/14() [n年前の日記]

#1 [prog][tic80] TIC-80のジョイパッド入力について

Windows10 x64 + TIC-80 0.70.6 で、ゲームパッド(ジョイパッド、ゲームコントローラ)の入力状態をチェックできるか調べてみたのだけど、なんだか妙な結果に…。

一般的(?)なUSB接続ゲームパッド、 _ELECOM JC-U2410TWH を使ったら、十字キーの入力すらまともに取得できなかった。左ボタンを押したら上と左が入力されるし、右ボタンを押したら下と右が入力される。使い物にならない…。

しかし、DirectInput/XInput両対応の _ELECOM JC-U3613MBK を試したら、DirectInputモードも、XInputモードも、どちらもボタンを正常に取得できた。てっきり、DirectInputは誤動作して、XInputは正常動作するのかと想像していたけれど、そういうわけでもないようで。

スーファミ(スーパーファミコン)のコントローラにクリソツなゲームパッド、 _BUFFALO BSGP801GY でも試してみた。これもボタン情報を正常に取得できてしまった。

どうやら手持ちのゲームパッドでは、 _ELECOM JC-U2410TWH だけがボタンを正常に取得できないようで…。ゲームパッドの製品別で正常動作したりしなかったりするとなると、これはなかなか面倒だな…。

まあ、自分が持ってるゲームパッドは、どれも在庫限り、あるいは生産終了扱いになった古い製品ばかりなので、今時のメジャーなゲームパッドなら正常動作する可能性が高かったり…するのであればいいのだけど、さてどうなんだろう。

PC用の、今時のメジャーなゲームパッドってどんなものがあるのか、Amazonあたりで少し探してみたけれど。なんだかXbox関係のコントローラによく似た中国製品ばかりが出てくるな…。となると、DirectInput対応製品はほとんど絶滅しつつあって、XInputに移行が進んだ、という状況と捉えてもいいのだろうか。

Xbox oneの純正コントローラは、7,000円以上するのか…。高いな…。しかし中国製ゲームパッドは、どれも耐久性がよろしくないようだし…。

2018/10/15(月) [n年前の日記]

#1 [tic80] TIC-80のAPIについて少しだけメモ

TIC-80 の Hello World を眺めながら、APIだか各命令だかを調べたので一応メモ。まあ、公式Wiki(英語)を眺めれば書いてあるけど…。

_Home - nesbox/TIC-80 Wiki

Hello World のソースは以下の通り。
-- title:  game title
-- author: game developer
-- desc:   short description
-- script: lua

t=0
x=96
y=24

function TIC()

  if btn(0) then y=y-1 end
  if btn(1) then y=y+1 end
  if btn(2) then x=x-1 end
  if btn(3) then x=x+1 end

  cls(13)
  spr(1+t%60//30*2,x,y,14,3,0,0,2,2)
  print("HELLO WORLD!",84,84)
  t=t+1
end

Luaソースのコメント行。 :

一応念のためにメモ。Luaのソース内で「--」を書けば、その行はコメント行として扱われる。
x=0
y=0
-- この行はコメント

TIC() :

_TIC()関数 を作ることで、その中に書かれた処理は 60FPSで処理される。(1秒間に60回呼ばれる。)

function TIC()
  
  -- この中が60FPSで呼ばれる
  
end

この手のソレは更新処理(update())と描画処理(draw())に分かれてるものが多いけど、TIC-80 は両方まとめて一つで済ませているらしい。

btn() :

_btn(n) で、キーボードの特定のキー、もしくは、ゲームパッド(ジョイパッド、ゲームコントローラ)のボタンが押されてるかどうかを調べることができる。押されていたら真が、押されてなかったら偽が返る。

btn(n)に指定する数値と、キーやボタンの関係は、 _Key Map - nesbox/TIC-80 Wiki にも書いてあるけど以下の通り。
btn(n)KeyboardGame Pad
0Up ArrowUp
1Down ArrowDown
2Left ArrowLeft
3Right ArrowRight
4ZA Button
5XB Button
6AX Button
7SY Button
値に+8すれば2Pコントローラ、+16すれば3Pコントローラ、+24すれば4Pコントローラまで扱える、らしい。試してないけど。

cls() :

_cls(n) で画面をクリアできる。n はパレット番号。

spr() :

_spr() で、スプライト相当を画面に描画できる。
spr(スプライト番号, x, y, 透明扱いのパレット番号, 拡大縮小率, 反転, 回転, 横幅, 縦幅)

反転情報は、0〜3 を指定できる。
  • 0 = 反転無し
  • 1 = 水平反転
  • 2 = 垂直反転
  • 3 = 水平垂直反転

回転情報は、0〜3 を与えて90度単位で回転させられる。角度を指定するわけではない模様。
  • 0 = 回転無し
  • 1 = 90度回転
  • 2 = 180度回転
  • 3 = 270度回転

横幅、縦幅は、8x8ドット単位で何個分描画するかの指定。例えば、2,2 が指定されてたら、16x16ドット分描画する。

print() :

_print() で、文字列を描画できる。
print(文字列, x, y, 描画パレット番号, fixed, 拡大縮小率, smallfont)

#2 [anime] 「劇場版 はいからさんが通る 前編 紅緒、花の17歳」を視聴

昨日 BS11 で放送されてたので、録画したソレを視聴。

コレは…面白いな…。おそらくは原作の分量からしてダイジェストっぽい早さで見せていくしかないわけだけど、そのおかげで実にテンポ良く話が進んでいく、イイ感じのアニメになっていた印象。何より、生命力溢れまくりのヒロイン、という設定が実に良い…。

たしか制作発表時はキャラデザがどうこう言われていた記憶があるけど、実際に見てみると全然気にならないなと…。ところどころで昭和の少女漫画っぽい、コミカル、かつ、バラエティに富んだ表情が挿入されてた点もイイ感じ。せっかくの手描きなのだから、3DCGが追い付けないほどに自由奔放な映像にしないと…。

TVアニメ版は妙なところで終わった記憶があったのだけど、なかなか酷い理由で打ち切りになってたようで…。

_はいからさんが通る - Wikipedia
_原作者が語る、テレビ版『はいからさんが通る』が尻切れトンボで終わった理由 | 文春オンライン

今回、劇場版後編でラストまでちゃんと描くという話もあるので、ファンにとってはようやく念願の…ということになるのだろうか。

2018/10/16(火) [n年前の日記]

#1 [tic80] TIC-80でクラス相当を書く

TIC-80 を触ってたり。Luaでクラス相当をどうやって書くのか忘れてたので再勉強。

とりあえず、こんな感じの .tic を書いた。

movecircle_ss01.gif

ブラウザ上で実行するなら、以下を開けば…動くんじゃないかな…。

_movecircle.tic.html


ブラウザ上で動作するソレを出力したい場合は、TIC-80上で export html と打ち込めばいいらしい。ファイル保存ダイアログが開いて、html を保存することができる。

ソース。 :

ソースは以下のような感じ。無駄に長いけど…。

-- title:  testcart
-- author: mieki256
-- desc:   short description
-- script: lua

Obj = {}
Obj.new = function(cx, cy, ang, r)

 local o = {
  id=0, x=0, y=0, t=0,
  cx=cx, cy=cy, ang=ang, r=r
 }
  
 o.update = function(self,dr)
  self.id = 1 + (self.t % 32 // 16)
  local rad = math.rad(self.ang)
  local r = self.r
  self.x = r*math.cos(rad)+self.cx
  self.y = r*math.sin(rad)+self.cy
  self.ang = self.ang + 1.5
  self.r = self.r + dr
  self.t = self.t + 1
 end
  
 o.draw = function(self)
  spr(self.id,self.x-4,self.y-4,0)
 end
  
 setmetatable(o, {__index=Obj})
 return o
end

scrw, scrh = 240, 136
cx, cy = scrw/2, scrh/2
t=0

-- init objs
objs = {}
n = 24
for i=1,n do
 local o = Obj.new(cx, cy, i*360/n, 60)
 table.insert(objs, o)
end

-- main loop
function TIC()

 local r = 0
 if btn(0) then r=-1 end
 if btn(1) then r=1 end

 -- update 
 for i, o in ipairs(objs) do
  o:update(r)
 end

 -- draw
 cls(0)
 for i, o in ipairs(objs) do
  o:draw()
 end
 
 print("Lua: " .. _VERSION,4,8*1)
 print("count: " .. t,4,8*2)
 print(t//60 .. " sec",4,8*3)
 
 t=t+1
end

最初のあたりで Class相当を書いてある。書き方は、以下のページが参考になった。

_Luaでオブジェクト指向(1)―基本はコロン記法とメタテーブル - Minecraftとタートルと僕

ローカル変数について。 :

Luaの場合、ローカル変数を使いたいときは、
local x=0
のような感じで、local とつけてやるらしい。

sin,cosについて。 :

2Dゲームを書く場合、sin,cos が使えると便利なわけだけど。Luaの場合は以下のような感じで使える。
math.sin(ラジアン値)sin値を返す
math.cos(ラジアン値)cos値を返す
math.rad(角度)角度(0-360度)をラジアン値に変換する。

このあたりは、以下が参考になりそう。

_Lua 5.1 リファレンスマニュアル
_lua-users wiki: Math Library Tutorial
_Lua標準ライブラリ - AviUtlスクリプト Wiki

#2 [tic80] TIC-80のドットエディタについて

TIC-80 は、ドットエディタ(スプライトエディタ)が内蔵されてるので、それについても一応メモ。

呼び出し方は…入力待ちの状態で F2キーを叩けば表示される。

画面内の機能については、おおよそ以下の通り。

tic80_doteditor_ss01.png

ブラシツールを選んで、左側にズーム表示されてる領域内で、マウスの左ボタンを押しながらグリグリすれば、使い方はすぐに分かるかなと。

もしグチャグチャになっても、EDCキーを叩いて、入力待ち画面で new と打てば、Hello World のソレで初期化されるので安心。あるいは、Ctrl+Zキーを叩けば、Undoも できるので…。

ツールについて。 :

ツールについて、一応補足説明。

tic80_doteditor_ss03.png

左から、以下のような機能になってる。
  • ブラシツール。ドットを打てる。
  • スポイトツール。ズーム表示してる領域をクリックすると、そのドットのパレット番号を取得できる。
  • 選択範囲。
  • バケツツール。クリックした領域を現在色(パレット番号)で塗り潰す。
  • 左右反転。
  • 上下反転。
  • 回転。90度単位で回転できる。
  • 消去。ズーム表示してる領域内を消去できる。
選択範囲を作ってから、左右反転、上下反転、回転、消去、を選ぶと、その選択範囲内で処理が行われる模様。

パレット変更について。 :

パレット変更ボタンをクリックすると、下のほうでちょっと表示が変わるのだけど、一応説明。

tic80_doteditor_ss02.png
  • 3つのスライダーは、RGB(Red, Green, Blue)の値を示してる。変更すれば、選択してるパレットのRGB値が変わる。
  • コピーボタンをクリックすると、現在のパレット値(16色分)が、16進数文字列でクリップボードにコピーされる。
  • 貼り付けボタンをクリックすると、クリップボードに入ってる16進数文字列のパレット値(16色分)で、パレットを上書きできる。
コレを利用して、公式Wikiに列挙されてるパレット例の中から、好きなものを選んでパレットとして設定することができる。

_palette - nesbox/TIC-80 Wiki

例えば、PICO-8風のパレットにしたかったら、 _公式Wiki の、
-- PICO-8 PALETTE 
-- pal: 0000001D2B537E255383769CAB5236008751FF004D5F574FFF77A8FFA300C2C3C700E436FFCCAA29ADFFFFEC27FFF1E8
と書かれてる、「-- pal: 」以降の16進数文字列をコピーして、TIC-80上でパレットの貼り付けをすればいい。

ちなみに、デフォルトでは以下のようなパレット値になってる模様。
140c1c44243430346d4e4a4e854c30346524d04648757161597dced27d2c8595a16daa2cd2aa996dc2cadad45edeeed6

スプライト番号について。 :

TIC-80は、スプライト用(FG)と、マップ用(BG)のスプライト領域を持っている。
  • BGのスプライト番号は、0〜255
  • FGのスプライト番号は、256〜511

「スプライト用とマップ用に別れているということは、マップ用(BG)のドット絵は、スプライトとして描画できないのかな?」と思ってしまうけど、そういうわけでもないようで。

スプライト相当を描画する spr() に、マップ用スプライト番号の 0〜255 を指定しても、フツーに描画してくれる。実際、new と打った直後の Hello World 相当のソレでは、マップ用(BG)の領域にドット絵が描かれてるし、ソレをスプライト相当として描画してる。

#3 [cg_tools] FreeCADを試用

フリーで使える、FreeCAD という3D-CADがあると知り、興味が湧いたので少し触ってみたり。

_FreeCAD: Your Own 3D Parametric Modeler
_Download - FreeCAD Documentation
_FreeCAD - Wikipedia

Windows10 x64 上で、FreeCAD-0.17.13541.9948ee4-WIN-x64-installer.exe をダウンロードしてインストール。

以下のページを参考にさせてもらいつつ、マグカップとスタンドをモデリングして雰囲気を掴んだり。

_実験記録 No.02 : FreeCAD - 初心者向けチュートリアル

距離拘束、平行拘束等を使えるあたりは便利だなと…。そういうアレコレがあると、キッチリとした形状を作りやすいような気がする。

モデリングした形状を、blender にインポートできないかと試してみたけれど、ちょっとそのあたりはよろしくないようで。FreeCAD からobj形式でエクスポートしようとするとエラーが出てしまう…。ただ、stl、ply、wrl でエクスポートしたら、blender でも読み込めた。しかし、ポリゴン数はそれなりに多いし、ほとんどが三角ポリゴンになってしまう。

各保存形式については、以下が参考になった。

_3Dファイルフォーマットの種類 - PukiWiki for PBCG Lab

2018/10/17(水) [n年前の日記]

#1 [cg_tools] FreeCADを勉強中

_FreeCAD - 初心者向けチュートリアル を眺めながら FreeCAD を勉強中。

Windows10 x64 + FreeCAD 0.17 13541 を使ってるけど、時々落ちるな…。スケッチを作ったタイミングで落ちることが多いような気がするけど、ちょっと条件が分からない…。

2018/10/18(木) [n年前の日記]

#1 [cg_tools] FreeCADで展開図

FreeCADを使ったモデリングのチュートリアル記事を一通り試してみて、なんとなく雰囲気は掴めてきた。要は、
  1. スケッチと呼ばれる2D的な図を描いて、
  2. それを押し出して3D形状を作って、
  3. 複雑な形は、シンプルな形状をブーリアン演算でまとめて作っていく。
みたいな感じっぽいなと。

それはさておき。FreeCAD を使って展開図のようなものは作れるのかなと気になってきたわけで。それができれば、ペーパークラフトっぽい何かにも使えるかもしれない。みたいな。

ググってみたら、以下のマクロに遭遇。コレはイイ感じかも…。ありがたや。

_blog:papiermodelle_erstellen [FreeCAD Buch]

一応簡単に導入と使い方をメモ。環境は Windos10 x64 + FreeCAD 0.17。

インストールの仕方。 :

_blog:papiermodelle_erstellen [FreeCAD Buch] の、下のほうのリンクから、unfold.py をダウンロード。

unfold.py を、ユーザマクロがインストールされてる場所にコピー。Windows 10 の場合、Win + R キーを押して以下を打ち込めばエクスプローラで開ける。
%APPDATA%\FreeCAD\Macro
要は以下の場所にあるのだけど。
C:\Users\ユーザアカウント名\AppData\Roaming\FreeCAD\Macro\

Linuxの場合は…どこになるんだろう…。以下が参考になるのかな。件のマクロが動くかどうかは分からんけど…。

_How to install macros - FreeCAD Documentation

使い方。 :

公式の動画を見たほうが分かりやすいとは思うけど…。

_unfold the shape to a papermodel - YouTube

一応、使い方を簡単にメモ。
  1. FreeCADを起動して何かモデルを作って…。
  2. Partワークベンチに変更。
  3. モデルを選択して、メニューの「部品」→コピーを作成。モデルのコピーが作成される。
  4. Draftワークベンチに変更。
  5. 先ほどコピーしたモデルを選択。
  6. ツールバー上のダウングレード(下向きの矢印のアイコン)をクリック。モデルが、面毎にバラバラになる。
  7. Ctrl + 左クリックで、展開したい複数の面を選択。
  8. メニューの「マクロ」→「マクロ...」か、ツールバー上の「記録されたマクロを実行するためのダイアログボックスを開く」(メモ帳っぽいアイコン。マクロ記録アイコンの右のほうにある)をクリック。
  9. unfold.py を選んで実行。
  10. 選んでおいた複数の面が展開される。

一々、unfold.py をマクロ一覧から呼び出すのが面倒臭いなと…。ググってみたら、マクロをツールバー上に登録しておくこともできるらしい。

_Macros/jp - FreeCAD Documentation

上記ページを参考にして、Draftワークベンチ上で、新規ツールバーを作成して登録してみたところ、使い勝手がかなり改善した。

他の展開の方法。 :

他にも展開のさせ方はあるっぽいけど…。

例えば、 FreeCAD には、Sheet Metal ワークベンチと言う、板金用のワークベンチもあって。ソレを導入すれば、厚みを考慮した状態で、Unfold ができるっぽい。

_FreeCADにSheetmetalワークベンチを登録する
_作成したベンド(Bend)をUnfoldで展開します

導入の仕方は…。FreeCAD 0.17 は、ツール → Addon manager、を選ぶと、ネットワーク経由で追加機能をダウンロード・インストールすることができるので、ソレを使えば簡単。

なのだけど。Windows10 x64 + FreeCAD 0.17 上では、動画の通りに操作をしても、Unfold ができなくて…。昔の版ならできたのだろうか…。状況がちょっとよく分からない。

もう一つ見つけた方法は、Unfold box というマクロを使う事例。

_Macro Unfold Box - FreeCAD Documentation

これも、Addon manager からインストールできるように見えた。

しかし、使い方が全く分からない…。呼び出すと、ステータスバー上にPython関係のエラーが出てしまう…。これも昔の版なら使えたのだろうか。あるいは、Windows上では動かないけどLinux上なら動くのだろうか。これまた状況がちょっとよく分からない。

2018/10/19(金) [n年前の日記]

#1 [tic80] TIC-80のスプライトの拡大縮小について確認

TIC-80 において、スプライト相当の描画時に拡大縮小率を指定できるのだけど、実数が指定できるのか、それとも整数しか指定できないのか気になったので試したり。

tic80_spr_scale_ss01.gif

整数倍で拡大することしかできないようだなと…。これでは…できることが少なくなるな…。まあ、もうちょっと色々やりたいなら love2d を使おう、という話になるのかも。

ソースは以下。
-- title:  game title
-- author: game developer
-- desc:   short description
-- script: lua

scale = 0.1
x=96
y=24

function TIC()

 cls(13)
 spr(1,x,y,14,scale,0,0,2,2)
 print("scale : "..scale,84,84)
 scale = scale + 0.05
 if scale >= 5.0 then scale = 0.1 end
end

#2 [pc] マウスパッドを購入

マウスカーソルの動きがなんだか妙な感じになったので少し調べてみたら、どうやら今まで使ってたマウスパッドがかなり削れてしまって、一部がツルツルになっていたようで…。光学マウスが表面の模様を読み取れなくてマウスカーソルの動きがおかしくなるのか、あるいはマウスがその部分で滑らなくて違和感があるのかは分からんけど、とにかくこれはマウスパッドのせいじゃないかな、と。

ということで、ケーズデンキでマウスパッドを買ってきた。 _サンワサプライ MPD-NS1BL 。税込1,005円。正直高い。でも、このぐらいの価格帯の商品しかケーズデンキには売ってなくて…。

今まで使ってた製品、おそらくは _サンワサプライ MPD-OP16BL は、もう店頭に無かった。残念。

今回購入したソレを使ってみたけど、マウスカーソルの動きはまともになった。やはりマウスパッドのせいだったらしい。

しかし、マウスそのものを動かした時の引っ掛かりは、ビミョーに増したような気もする。もっとも、今まではつるつるに削れたマウスパッドで動かしていたのだから、新品なら当然抵抗も増えるはずで。

ちなみに、使ってるマウスは、ELECOM M-XG1UBSV。BlueLEDがどうとか謳ってる光学マウス。光学マウス、特に BlueLEDを使った製品は、マウスパッドの種類によっては正しく動かない時もあるらしいけど、少なくとも今回購入したマウスパッドは特に問題は無さそう。

#3 [web][neta] TV感覚でインターネットを利用する人達が増えてきたのかもしれない

思考メモ。

たまたまあちこちで、「技術系ゴミ記事を書くな」的文句を言ってる人達を見かけて、もしかすると時代は変わったのかなと思ったりもして。

ゴミ記事が多いなと思ったら、自分でゴミじゃない記事を書いてネットにアップロードすればいいだけの話なのに…。それが本当に良記事なら、じわじわとリンクも増えて、検索サイトでも自然と上位にリストアップされるのではないのかな、と。

だけど、その手の文句を言ってる人達は、おそらくは自分で記事を書かない・書いたことがほとんどない人種、なのだろうなと想像したりもするわけで。ただ口をぽかんと開けて、「誰かが俺にとってためになる記事を、タダ働きで書いてくれねえかなあ」と思い続けてる、みたいな。雛鳥が巣の中から口だけ突き出して狂ったようにピーピー鳴いてる、そんな光景が思い浮かんでしまったり。俺達は、お前の親鳥じゃねえんだけどなあ…。

要するに、TVの視聴者のような感覚でインターネットを眺めているのだろうなと。自分は受け手オンリーなのだ、お客様扱いされて当然なのだ、的感覚。何かを見て文句を言う事ぐらいはできるけど、その何かを作る側にはなろうと思わない人達。情報はどこかから自然と湧いてくるもので、誰かが苦労して作った何かに対しても「拾ってきた」と平然と言っちゃう、そんな感覚。

少しでも記事を書いてみれば、「記事を書くのって結構大変なんだな」「こんなの無償で書いて公開するなんて…聖人か」みたいな印象になってくるだろうし、となれば、「せっかく苦労して書いてるだろうに、出てくる記事は今一つなんだよな…」「なら、良記事を書くにはどうしたらいいのだろう?」という思考になって、「どうせ書くならこういうことを意識して書いてほしい」みたいな話になっていきそうだけど。彼等はそもそも記事を書いたことがないから、「(ゴミ)記事を書くな」と根底から否定するようなことしか言えない。非建設的だなと。

大昔のインターネットは何も無かったので、そこに集まった一人一人が、知ってることを何でもいいから少しずつ持ち寄って情報を増やしていくしか無かったわけだけど。そうやって集まった情報がそろそろ結構な量になってきたので、後から使い始めた人はそのへんすっかり勘違いしてるのだろうなと。もっとも、どのサイトを開いても広告ベタベタなこの状況で、牧歌的な昔のソレを思い返してみてもアレなんだけど。

昔は、コミケのノリに近かったのかもしれないな…。参加者一人一人がどんなアクションを取るかで、イベントが成功するか失敗するかが決まる。売り手が買い手にもなるし、買い手が売り手にもなる。みたいな。まあ、コミケだって昔と比べたら随分違っているのだろうけど。

何でもそうだけど、規模が大きくなれば色々な歪みが出てくる、みたいな話だったりもするのだろうか。これもまた、あるある話の一つ、なのかなあ。

#4 [web][neta] 日付と環境さえ書いてあれば技術系記事としては合格点

技術系の記事に関しては、日付と環境さえ書いてあればそれだけで合格点じゃないのかなと個人的には思っていたり。

まず、日付があれば、読み手としては、「これは古い記事だから今も通用するか分からんな」と事前に察しがつくわけで。「古いけど、まあ、ダメ元で」な感覚で記事内容を試すから、残念な結果でも「やっぱりね」で済むし。あるいは最初から見切りをつけて、もっと新しい記事が無いか探し始めることだってできる。…日付さえ書いてあれば。

そして、環境が書いてあれば、Mac or Linux 向けのインストール手順をWindows環境で途中まで試してしまってなんだか様子がおかしいことに気づいてガッカリ、なんて事態も避けられる。「おかしいな…動かんぞ…。さてはこれってもしかして Mac or Linux 向けの記事じゃねえの? ああ、もう、これだからMacユーザは! どうしてアイツラ『Macで試した』の一言すら書けねえんだよ! 『世界にはMacしか存在しない』と思い込んでんじゃねえよ!」と無駄にイライラしなくて済むわけで。

また、「ゴミ記事を書くな」的主張のやり玉にあがってる、初心者向けのアプリインストール手順記事の類だって、日付と環境さえ書いてあれば、「この時期に、この環境・このバージョンでは、どうやらそれなりに動いていたらしい」という、動作実績のログとしての価値が付加される。動いていたことがあるのかないのか、動いていたとしたらどんな環境でどのバージョンが動いていたのか、そういった情報が残ってることで助かる場面は山ほどある、なんてことはPC使って作業してる人なら何度も体験しているはずで。

ところが、日付も環境も書いてなければ…。

「今年の話なのか、あるいは10年前の話なのか、
一体いつの時代の話なのかは分からんが、
とにかくいつかどこかの時代に、
私達がよく知るシステムなのか、あるいは珍しいシステムなのか、
一体どの環境なのか分からんが、
とにかく謎の環境の上で…このソフトウェアが動いていた…そんな事例もあるらしい」

これでは、まるで長老の口伝の昔話。もしくは神話の類。どれだけ詳細な内容を記しても、日付と環境が書いてないだけで、かなりゴミ記事に近づいてしまうわけで…。

ということで、「ゴミ記事を書くな」的主張より、
「せめて日付と環境ぐらいは書こうぜ」
「記事にはならなくてもログにはなるからさ」
と主張したほうが、まだ建設的じゃないのかなあ、と…。

とは言え、自分も時々うっかり環境を書き忘れてる時がありそうなのでアレなのだけど…。まあ、できる範囲で気づいた時には一応書いておく、ぐらいの軽い話ということで…。

#5 [web][neta] 記事とログは違うのかもしれない

ふと思ったけど、記事とログは違うのかもしれないな、と…。

考えてみたら、自分、そのあたり意識してなかったかも。Web上で、ログの類を記事と思い込んで眺めていた場面が多々あったような、そんな気もしてきた。マズいな…。

記事はログにもなるのだろうけど。逆に、ログは記事になるのだろうか。…ならないよな。たぶん。

かといって、ログはゴミかというとそうでもない。分かってる人がログを見れば、それだけで何かのヒントが得られることもある。しかし、分かってない人がログを見ても、ゴミかノイズにしか見えないだろう…。

ブクマ数が多いページを眺めて「なんだこりゃ。ゴミじゃねえのか」と思ってしまった時も、「待てよ? これは記事じゃなくて、ログじゃないか?」と思い直してみるのもアリかもしれないなと。自分はログを見て何かを察するほどの知識はないけれど、そっち系の人には有意義なログ、だったりするのかも。みたいな。

ログは、楽譜みたいなものかもしれない。

例えば、自分は楽器が弾けないから楽譜を見てもチンプンカンプンなのだけど。だからと言って、「自分が読めないから楽譜はゴミだ! ノイズだ!」と叫ぶかと言えばそんなことはしない。音楽やってる人なら「ほほう。なるほど」な情報だったりするわけで。

楽譜が読めない自分は、楽譜が読めるように勉強しなきゃいかんのだろうか。…別に勉強しなくていいんじゃないか。読めないことで困ってるわけでもないし。

楽譜が読めないことを恥ずかしいと思わなければいけないのだろうか。…そんな必要も無いよな。楽譜が読めない代わりに、プログラムのソースコードは読めたりするし。人それぞれ能力は違うし、興味が湧く分野も違うのだから。

「俺には読めない楽譜が、何かの拍子にたまたま目に入ってしまった! 許せない! 一体誰だ!? こんなゴミをアップしたヤツは!」と憤る必要なんて、どこにも無いよな…。

もっともこのあたり、TV感覚でネットを眺めてる人なら憤慨しそうな気はする。例えば、TV番組を見て、「なんだこの番組は!? 内容が分からない! こんなものを公共の電波で流すな!」と憤慨する場面はありそうだし。同じ感覚で、ネット上で見かけた何かしらに文句を言ってしまう…場面だってあるのかもしれない。

それはおそらく、ログなのだ。記事じゃないのだ。「ああ、これはログだな。俺に分かるわけない」とスルーしとけばいいのだ。たぶん。

2018/10/20() [n年前の日記]

#1 [tic80] TIC-80でテクスチャ付き三角形塗り潰し

TIC-80のAPIを眺めていたら、textri という、テクスチャ付き三角形塗り潰し機能があることに気づいた。

_textri - nesbox/TIC-80 Wiki
_Play TEXTRI in TIC-80

こういう機能があるなら、スプライト相当の拡大縮小描画や回転描画もできそうだなと。

試してみたり。三角形を二つ並べて、矩形を描画してみる。

tic80_textri_ss01.gif

-- title:  game title
-- author: game developer
-- desc:   short description
-- script: lua

t=0
x=96
y=24

function TIC()

 cls(13)
 local w,h,scale,maxh
 local x1,y1,x2,y2,x3,y3,x4,y4
 local u1,v1,u2,v2,u3,v3,u4,v4
 maxh = (136.0/16.0)
 scale = maxh/2 + (maxh/2) * math.sin(math.rad(t))
 w = 16 * scale
 h = 16 * scale
 x1,y1=0,0
 x2,y2=w,y1
 x3,y3=x1,h
 x4,y4=x2,y3
 u1,v1=8,0
 u2,v2=24,v1
 u3,v3=u1,16
 u4,v4=u2,v3
 
 textri(x1,y1,x2,y2,x3,y3,
        u1,v1,u2,v2,u3,v3,
        false,14)

 textri(x2,y2,x3,y3,x4,y4,
        u2,v2,u3,v3,u4,v4,
        false,14)
        
 t=t+1
end

三角形で分けてる部分が、ずれて見えてしまっている問題はあるけれど、一応コレを使えば整数倍以外の拡大縮小もできるのだな…。

以下のデモを見た感じでは、回転描画もできるっぽい。

_Play TEXTRI in TIC-80

ソース中の rspr() が参考になりそう。 *1
*1: ESCキーを押して、「CLOSE GAME」を選んで入力待ち画面にしてからF1キーを押せば、エディタが表示されてソースが見れる。

#2 [pc] 親父さんPC用のマウスが不調らしい

親父さんから、「代わりに使えるマウスは無いか」との相談が。親父さんが使ってるマウスは、Logicool M705。どうやらボタンがちゃんと反応しなくなってきて、D&D中に変なところで落としてしまったり、シングルクリックがダブルクリックになったりするそうで。結構長い期間使ってたような気もするので、スイッチの寿命かな…。チャタリングが起きてる予感。

ダンボール箱の中から、ELECOM M-XGM10UBRD を発掘して親父さんに渡してみた。このマウスで操作してみて同じ状態になるようなら、Windows が何かおかしくなってるか、あるいは操作に問題がある、という話になるはず。原因の切り分けぐらいはできるだろう…。

それはさておき。どうしてこのELECOM製マウスを封印してたんだろう…。

_mieki256's diary - 新しいマウス、ELECOM M-XGM10UBRDを購入
_mieki256's diary - ELECOM M-XGM10UB、ダメかもしれん

なるほど。個人的に、拡張ボタンが押しづらく、かつ、ボタンのクリック感がダメだったのか…。ググってみたら今は静音版もあるらしいけど、そっちは感触が変わってたりするのだろうか。

#3 [nitijyou] 体調がよろしくないっぽい

朝方、ちょっと目が見えなくなった。視界の一部にギザギザが。おそらく _閃輝暗点 と呼ばれる症状ではないかなと…。

夜にもまた目が見えなくなった。早目に寝ることにする…。

2018/10/21() [n年前の日記]

#1 [tic80] TIC-80のmapについて調べてるところ

TIC-80のマップエディタについて調べてるところ。

_map - nesbox/TIC-80 Wiki
_Sprites and Maps - nesbox/TIC-80 Wiki

2018/10/22(月) [n年前の日記]

#1 [tic80] TIC-80のマップエディタの使い方についてメモ

TIC-80のマップエディタの使い方について少し分かってきたので一応メモ。

まあ、テキトーに触ってみれば使い方は分かるだろうという気もするのだけど…。

ちなみに環境は、Windows10 x64 + TIC-80 0.70.6。

マップエディタの使い方のメモ。 :

マップエディタを使ってマップを作るために、まずはスプライトエディタ(ドットエディタ)で、マップ用(BG用)のドット絵をいくつか描いておかないといけない。

スプライトエディタ(ドットエディタ)は、F2キーを押せば表示される。右上に、FG、BGと表示されてるけど、BGがマップ用(BG)の領域。クリックして選択してから、マップ用のドット絵をいくつか描く。1セル(1タイル)、8x8ドット。

tic80_mapeditor_ss01.png

ドット絵が描けたら、F3キーを押して、マップエディタに切り替える。ペンツール(Draw)やバケツツール(塗り潰し)で、マップを描く。

tic80_mapeditor_ss02.png

ちなみに、マウスの右ボタンドラッグでマップのスクロールができる。(あるいは、手のひらツールを選んで左ボタンドラッグしても同様にスクロールできる。)

注意点(?)。一番上の行(?)にメニューが常時表示されてるので、見た目でマップを作っていくと一番上の一行だけ何も描かれてない状態になってしまう。一画面分ピッタリのマップを作る際は、ちょこっとスクロールしてメニュー表示部分を見えるようにしてから作業することになる。

描画するセル(タイル)は、画面右上の三角をクリックすると選べる。もしくは、SHIFTキー押しっぱなしでも選択ウインドウを表示できる。

tic80_mapeditor_ss04.png

カーソルの右上には、セル単位(タイル単位)の位置情報が表示される。

tic80_mapeditor_ss05.png

TABキーを押すか、画面上部の「WORLD MAP」アイコンをクリックすると、全体マップの表示になる。マウスの左ボタンドラッグで表示位置を指定できる。ちなみに全体マップの広さは、画面単位で8x8画面分あるっぽい。

tic80_mapeditor_ss03.png

マップの表示の仕方。 :

マップを表示する際は、map() が使える。

_map - nesbox/TIC-80 Wiki
_Sprites and Maps - nesbox/TIC-80 Wiki

map(x, y, w, h, sx, sy, colorkey, scale, remap)
  • x, y : 表示したいマップの左上の位置 (セル単位)
  • w, h : 表示するマップの横幅、縦幅 (セル単位)
  • sx, sy : マップを描画する画面上の位置 (ドット単位)
  • colorkey : 透明色として扱うパレット番号。

TIC-80 は 240x136の画面、1セルは 8x8ドットなので、map() に指定する横幅、縦幅は、240/8, 136/8 = 30, 17 前後になる場合が多い、かなと。実際、指定しないと 30, 17 がデフォルト値として使われるらしい。

使用例を書いてみたり。カーソルキーでマップを上下左右にドット単位でスクロールしてみるサンプル。

maptest_ss01.gif

-- title:  game title
-- author: game developer
-- desc:   short description
-- script: lua

SCRW,SCRH=240,136
x,y=0,0

function TIC()

 if btn(0) then y=y-1 end
 if btn(1) then y=y+1 end
 if btn(2) then x=x-1 end
 if btn(3) then x=x+1 end
 if btn(4) then x,y=0,0 end

 cls(13)
 local bgx = x % (SCRW*8)
 local bgy = y % (SCRH*8)
 local w,h = SCRW/8+1,SCRH/8+1
 map(bgx/8,bgy/8,w,h,-(bgx%8),-(bgy%8))
 
 print("x,y="..x..","..y,8,8)
end

_maptest.zip (maptest.tic)

2018/10/23(火) [n年前の日記]

#1 [tic80] TIC-80のSFX Editorの使い方を調べていたり

TIC-80 0.70.6 の、SFX Editor (効果音エディタ・音色エディタ)の使い方を調べていたり。おおよそなんとなく分かってきたのでアレコレをメモ。

この場合の「SFX」と言うのは、効果音、という意味でいいのかな。たぶん。

TIC-80の場合、効果音と、BGMに使う音色は、同じ扱いをしているらしい。アレコレ設定して用意した音は、効果音として使ってもいいし、BGMの音色として使ってもいいようで。

SFX Editorの画面構成。 :

F4キーを押すと、SFX Editorが開く。各アイコンに割り振られている機能は以下の通り。

tic80_sfxeditor_ss01.png

使い方としては、音色として使いたい波形を選んで、音量変化、アルペジオ、ピッチ変化、ループ再生等を(必要なら)設定して、音色として使うことになる。

画面の上のほうに表示されてる「IDX」は、音色のインデックス番号(管理番号)を示している。0〜63まで指定できるので、最大で64種類の音色を設定・登録できる。

TIC-80起動直後(あるいは、入力待ち画面で new と打った直後)は、音色として使える波形として、「矩形波」「三角波」「ノコギリ波」「ノイズ」が選べるようになっている。一番右に表示されてるのが、音色として選べる波形の一覧。

また、キーボードの、Z,X,C,V,B,N,M が、ピアノの鍵盤と言うか、音階の C,D,E,F,G,A,B(ドレミファソラシ)に対応してる。S,D と G,H,J は、半音上がったキー。
┌─┬─┬┬─┬─┬─┬─┬┬─┬┬─┬─┐
│  │S ││D │  │  │G ││H ││J │  │
│  └┬┘└┬┘  │  └┬┘└┬┘└┬┘  │
│ Z  │ X  │ C  │ V  │ B  │ N  │ M  │
└──┴──┴──┴──┴──┴──┴──┘

とりえず、何か設定を変えてから ZキーやCキーを押してみれば、その設定で音が鳴るので、その場でリアルタイムに音の聞こえ方を確認しながら音色の調整ができる。

波形設定画面。 :

右上の、右から2番目のアイコンをクリックすれば、波形の設定画面に切り替わる。

tic80_sfxeditor_ss02.png

下の波形一覧の中で、まだ設定されてない波形を選んでから、マウスでグリグリ描いてやれば、好きな形の波形を作れる。

Z〜Mキーを押してやれば音も鳴るのだけど、音色の設定画面で選んでいる波形で音が鳴るので…。自作の波形を鳴らしたかったら、「WAVE」の画面で、鳴らしたい波形種類を選んでおいてから、この画面に入って作業することになる。

音量変化設定画面。 :

音量変化の画面は以下の通り。

tic80_sfxeditor_ss03.png

初期状態では、一定の音量が指定されてるだけなので、音を鳴らすと「ポー」としか聞こえないけれど。例えば、上記の画像のように、徐々に音量が落ちていくように指定すれば、「ポーン…」という音に変わってくれる。

アルペジオ設定画面。 :

アルペジオ設定画面は、以下。

tic80_sfxeditor_ss04.png

アルペジオと言うのは…。例えば、高速に「ドミソドミソドミソ」と音を鳴らせば、瞬間的には一音しか鳴ってないけれど、全体的には「ドミソ」という和音が鳴っているように聞こえなくもないよね、てな感じの奏法 ―― と、この場合は思ってもらえれば…。昔のゲーム機のサウンド機能は、再生可能発音数が圧倒的に少なかったので、アルペジオを使ってたくさん音が鳴ってるように思わせていたのだけど。TIC-80も、音色設定でそういうことができるようになっているらしい。

さておき、アルペジオ設定画面の、縦軸が音階で、横軸は時間。上記の画面では、「ドミソ」と鳴らしてる。そのままでは、「ドミソ」を鳴らした後、「ド」をずっと鳴らし続けてしまうので、左下のループ設定を変更して、「ドミソ」をループ再生するようにしてある。ちなみに、ループ再生する範囲には、一番下に黄色い横棒が表示される。

ピッチ変更設定画面。 :

ピッチ(音階)変更設定画面は、以下。

tic80_sfxeditor_ss05.png

ピッチを変更することで、「ピュイン」と音が上がっていったり、「ピュオン」と音が下がっていくような音色が作れる。

また、左のほうにある「x16」をクリックして有効にすると、変化の仕方がより過激になる。おそらく、変化の度合いを16倍にしてるのかなと。

操作の様子をキャプチャしてみた。 :

一応、操作の様子をキャプチャしてみた。ちょっと音が割れてるけど、雰囲気ぐらいは掴めるのではないかと…。

プログラムソースから鳴らしてみる。 :

おそらく、以下のデモが参考になりそう。カーソルキーを押すと、違う音が鳴るデモ、らしい。

_Play SFX DEMO / LUA in TIC-80

ソースを開くと、以下の記述が見える。 *1

sfx(id, "E-4")

sfx() で、音を鳴らせる、ということかな…。おそらく、id が音色のインデックス番号(音色の種類)、"E-4"が、「E(ミ)をオクターブ4で鳴らせ」という意味かなと。

_sfx - nesbox/TIC-80 Wiki

Wikiの記述を眺めると、他にも、再生時間(60FPS単位?)、チャンネル(0〜3)、音量(0〜15)、再生速度(-4〜3)等の指定も可能らしい。

*1: ソースの開き方は…。 ESCキーを押すとメニューが表示されるので、カーソルキーの上下で「CLOSE GAME」を選んでZキーで決定。入力待ち画面でF1キーを押せば、エディタが開いてソースが見れる。

2018/10/24(水) [n年前の日記]

#1 [pc] ビデオカードが届いた

TSUKUMOに注文していたビデオカードが届いた。MSI GTX 1060 AERO ITX 6G OC。NVIDIA GeForce GTX 1060 6GB版を積んでいる、シングルファンでカード長が短いビデオカード。

_GeForce GTX 1060 AERO ITX 6G OC - エムエスアイコンピュータージャパン


GTX 1060 は、少しクロックが遅い VRAM 3GB版と、フツーのクロックの VRAM 6GB版があるけれど、3GB版はナントカ学習系のツールが動かないという話を見かけたので 6GB版を選択。

今まで使っていたビデオカードは、 _ASUS GTX750TI-PH-2GD5 。NVIDIA GeForce GTX 750 Ti 搭載、VRAM 2GB GDR5 の製品。このビデオカード、補助電源不要なのに、そこそこの性能を出してくれて結構イイ感じだったのだけど、blender の Cycles を使ってGPUでレンダリングした際は、やはりちょっと処理時間がかかる印象もあるし、昨今はGPU を使ってナントカ学習をする系のツールが存在するけど GTX 750 Ti ではその手の実験もできず。これはもう少し強力なビデオカードが欲しいなと常々思っていたわけで。

しかしマイニング需要とやらでゲーム用ビデオカードが店頭から消えるわ、値上がりするわ、落ち着いてきたと思ったら GeForce RTX 20シリーズが発表されたせいか GTX 10シリーズ搭載製品がポツポツと販売終了、店頭から消えつつあるようで…。

フツーなら RTX 20系の新製品登場を待つべきタイミングだろうけど、自分のメインPCは、CPU が Core i5-2500、M/B が H67チップセットと古いので、RTX 20系は使えない可能性がありそうだなと。GTX 10系ですらM/BのBIOSが UEFI とやらに対応してないと使えないし…。ということで、もうちょっと色々待ちたかったけど製品が無くなる前に、と今回購入してしまった次第。

補助電源不要で価格も安い GTX 1050 Ti も気になったけど、GTX 1060 と比べると _性能差 が結構あって。今使ってるCPU + M/B では、これが最後のハードウェア増強になるだろうし、この際奮発を、と…。

さておき、ファンの耐久性が気になる…。ビデオカードは、まずファンが壊れるわけで…。特にこのビデオカードは、ファンが回ったり止まったりが頻繁にありそうだし。そういう動き方は、ますます壊れやすくなるよな…。

デュアルボールベアリングファンとやらを採用してファンの寿命が約2倍、と謳う ASUS PH-GTX1060-6G も気になったけど、Amazon の英文レビューを見たら冷却がちょっとアレらしくGPUが80度以上になるそうで…。GPUクーラーを取り外してサーマルグリスを塗り直したら60度台になった、とも書いてあったけど、買ったばかりのビデオカードのファンを外してグリス塗り直しとか面倒臭いよなと…。まあ、そのまま使っても動作するのだろうけど。

処理速度を少し調べた。 :

blender の Cycles でレンダリングしてみた。

_New Cycles Benchmark - Blender Developers Blog

bmw27.blend をレンダリングしてみたら、以下の結果に。
  • GTX 750 Ti : 9分47秒
  • GTX 1060 6G版 : 4分16秒
ほぼ半分の時間でレンダリングできるようになった。このくらいの速さなら、Cycles を使う気にもなる…かな…。

2018/10/25追記。 :

Unityで作られた某I社の某3Dゲームを動かしてみた。ビデオカード交換前はガクガクだった、ユーザ投稿のシーンデータが、交換後も同じくらいガクガクで。多少はフレームレートが改善するのでは、と思ってたけど予想が完全に外れた…。ググってみたら、件のゲームにおいてその手の重いデータは、GPUよりもCPUやメモリが関係してくるそうで。メインRAM 8GBじゃ足りないのか…。それともCoreシリーズ第2世代ではもうダメか…。

更にググってたら、導入してるmodが悪さをしてる場合もあるようで。そのあたり外してみるか…。

2018/10/25(木) [n年前の日記]

#1 [tic80] TIC-80のMusic Editorの使い方を調べていたり

TIC-80 0.70.6 の、Music Editor (曲エディタ、BGMエディタ)の使い方を調べていたり。なんとなく分かってきたので、そのあたりをメモ。

TIC-80 を起動して F5キーを押せば Music Editor が開く。

tic80_musiceditor_ss01.png

フレーズ(?)番号を1以上にしてから、その下の欄に、カーソルキー、もしくはマウスクリックで、カーソルを合わせて…。キーボードのZ〜Mキー等を叩けば、カーソル位置に、ノート(音符相当)が置かれる。

キーボードの各キーの配置は、以下のページ中の画像が参考になるかなと。ピアノの鍵盤っぽい感じに割り振ってある。

_Home - nesbox/TIC-80 Wiki

一応、自分もメモ。
┌─┬─┬┬─┬─┬─┬─┬┬─┬┬─┬─┬─┬─┬┬─┬─┬─┬─┬┬─┬┬─┬─┐
│  │S ││D │  │  │G ││H ││J │  │  │2 ││3 │  │  │5 ││6 ││7 │  │
│  └┬┘└┬┘  │  └┬┘└┬┘└┬┘  │  └┬┘└┬┘  │  └┬┘└┬┘└┬┘  │
│ Z  │ X  │ C  │ V  │ B  │ N  │ M  │ Q  │ W  │ E  │ R  │ T  │ Y  │ U  │
└──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘

ノートの意味は以下。

tic80_musiceditor_ss02.png

置いたノートを消したかったら、その位置でキーボードのDeleteキーを押せばいい。

画面右上のアイコンをクリックすれば、画面内のノート群を再生したり、トラックを再生できる。

tic80_musiceditor_ss03.png

1画面分の再生/停止に、ショートカットキーとして Enterキーが割り当てられているので、作業の流れとしては、
  1. ノートを修正。
  2. Enterキーで再生して鳴り方を確認。
  3. Enterキーで停止。
  4. ノートを修正。2に戻る。
という流れになるのかなと。

音の止め方。 :

注意点としては…。初期設定の音色番号(00)で鳴らすと、音が鳴りっぱなしになってしまうので…。
  • 止めたいタイミングで音量0のノートを置いて音を止めるようにする。
  • あるいは、SFX Editor で、音色のVOLUME設定を弄る。音量が徐々に下がって最後は0になるVOLUME設定にすれば、音が鳴り続けない。

選択範囲をコピペ。 :

Shiftキーを押しながらカーソルキーの上下を押せば、複数の行を選択できる。

その状態で、Ctrl + C を押せば、選択範囲をコピーできるし、Ctrl + V を押せば、コピー済みの内容を貼り付けることもできる。

鳴らす音色のサンプル。 :

SFX Editor 上での、音色のサンプルのスクリーンショットを貼ってみたり。

矩形波で「ポーン」と鳴る音。VOLUME設定で、最後は音量が0になるように設定しているので、Music Editor 上で音量0のノートをわざわざ置いて音を停止しなくても済む。

tic80_sfx_sample_ss01.png

tic80_sfx_sample_ss02.png

ノイズを使った、バスドラムの代替になりそうな音。VOLUME設定を使って、「ドン」になるように設定してる。…と言っても、「ドン」には程遠いけど。

tic80_sfx_sample_ss03.png

tic80_sfx_sample_ss04.png

ノイズを使った、スネアドラム? ハイハット? の代替になりそうな音。これもVOLUME設定を使って、「タッ」になるように設定してる。

tic80_sfx_sample_ss05.png

tic80_sfx_sample_ss06.png

操作の様子をキャプチャしてみた。 :

音がノイズだらけだけど、雰囲気ぐらいは伝わる…かな…と…。

プログラムから鳴らす。 :

music() で鳴らせるっぽい。

_music - nesbox/TIC-80 Wiki
music(トラック番号, フレーム番号)
music(トラック番号, フレーム番号, 再生開始行, ループ再生するかしないか(true or false)

2018/10/26(金) [n年前の日記]

#1 [pc] 昨今のCPUとチップセットについて少しググってたり

昨今のメジャーなCPUとチップセットについて全く知らないので少しググってたり。AMD Ryzen の評判がいいらしいけど、どのチップセットなら最新版が動くのだろう、みたいなところから。

Intel製CPUは脆弱性が見つかって、その脆弱性に対策しようとしてパフォーマンスが落ちたという話を聞くわけで。いずれハードウェア的に対策された版が出てくるのだろうけど、それまではその手の影響をさほど受けないAMD製CPUのほうがいいのかなと…。

#2 [web] なぜblogを消すのだろう

Web上で時々見かける風景ではあるけれど。せっかく書き溜めたblogを、何故消すのだろう…。

Webを利用してきた者ならば、リンクをクリックしたら404だった時の哀しみを何度も何度も味わっているはずなのに。何故、人は、逆の立場になると、自身のblogをあっさり消してしまうのだろう。404を目にして悲しみに打ちひしがれたあの頃の自分を、そんなにも世界のどこかで、自らの手で何度も繰り返し再生産したいのだろうか。彼等は他者に対して哀しみを与える存在になりたいのか。一体、何に対して、誰に対して復讐しようとしているのか。みたいな。

そもそも、「blogは更新しなければ存在意義がない」と思い込むのがおかしい。記事に日付さえ ―― 年月日さえ記してあれば、書きっぱなし、ほったらかしのままで良いではないか。「この当時、この人は、こんなことを考えていたのだ」「この頃、こんなことが話題になっていたのだ」 ―― そういった記録にも十分価値がある事を私達は知っているはずではないか。「blog」とは何の略か。「Web のログ」の略だろう。「ログ」とは何か。記録のことだ。そこに記録として存在していれば、それはもう、それだけで、立派なblog。そう考えれば放置状態でいいではないか。頻繁な更新なんて新聞社やニュースサイトに任せておけばいい。それとも君は一人新聞社にでもなりたいのか。そういうわけでもないだろうに。

とは言え、例えば自身の愛用のブラウザからログインも書き込みもできない、以前と比べて劣化してしまったblogサービスに対し、無料利用ならまだしも、有料で契約して、小銭を払ってアカウントを維持し続けるのもフツーは馬鹿馬鹿しくなって当然という気もするし。「ちゃんと仕事しろよ。何やってんだよ」「あったまきた。お前達のサービスなんて金輪際使ってやらねえ」と怒りに任せて全削除、という展開もありそうではあるなと。

ログインできないという症状は、「俺はこいつらから拒否された」→「金を払ってるのに客扱いされてない」→「俺の存在が無視されてる」的感覚に繋がっていくし。人間誰しも存在を無視されるのが一番堪えるし、そこでつけられた心の傷は、いずれ恨みにすら容易に変化するわけで。そうやってアルファブロガーがポツポツと離れていくサービスに、はたして未来はあるのだろうか。

しかし、そういった気持ちの流れは理解できたとしても、それでも、本来blogは消す必要などないし、更新しないことを恥じる必要もないですよ、と言いたいのだけど。もちろん、サービスが消滅したとか、料金が払えなくなったとか、サーバのHDDが吹っ飛んだとか、何かの外的要因で消えてしまったなら話は別だけど。自分の手で消す必要はどこにも無いんだけどなあ。

でもまあ、やっぱり、消す人達は、きっと何かに復讐したいのだろう…。「どうだ! 消してやったぞ! 思い知れ!」と誰かに毒づきたくてそういうことをするのかもしれない。だけどおそらく、そんなことをしてみても、思い知らせてやりたい相手からは綺麗にスルーされて、藁にも縋る気持ちでググって飛んできた人達が404で泣く、そんな場面がほとんどであろう予感も。

ググって飛んできた人達には何の罪もないのだから、残せるなら残したほうが、と思うのだけどな。

あるいは、多くの先人達が残してくれた各種文献に助けられておきながら、自分の番が来たら全削除というのも、人として不義理じゃないかと思ったりもするわけで。放置しておくだけで、その手の義理は果たせるのに。どうして、放置以上のアクションをわざわざ取って、意地の悪い状態にしてしまうのだろう。そんなこと、しなくていいのに…。

2018/10/27() [n年前の日記]

#1 [tic80] TIC-80でラスタースクロール処理

TIC-80関係のスクリーンショット画像を眺めていたらラスタースクロールっぽい処理をしてる事例があったので、どうやったらそんな処理ができるのか少し試したり。

こんな感じかなあ…。

tic80_scn_ss01.gif

-- title:  game title
-- author: game developer
-- desc:   short description
-- script: lua

t=0
x=96
y=24

function TIC()

 if btn(0) then y=y-1 end
 if btn(1) then y=y+1 end
 if btn(2) then x=x-1 end
 if btn(3) then x=x+1 end

 cls(13)
 map(0,0)
 spr(1+t%60//30*2,x,y,14,3,0,0,2,2)
 print("HELLO WORLD!",84,84)
 t=t+1
end

function SCN(row)
 local x,y
 x=8*math.cos(math.rad(3*t+4*row))
 y=6*math.sin(math.rad(2*t+4*row))
 poke(0x3FF9,x)
 poke(0x3FF9+1,y)
end

SCN()関数を記述すれば、y方向に1ライン描画する度に処理が呼ばれるそうで。 *1

_SCN - nesbox/TIC-80 Wiki

ちなみに、昔の版では SCN() ではなく scanline() という関数名だった模様。

また、 で、画面描画のオフセット(SCREEN OFFSET)を書き換えることができるらしい。コレを利用すれば、ラスタースクロールっぽいことができる。

_poke - nesbox/TIC-80 Wiki
_RAM - nesbox/TIC-80 Wiki

しかしコレ、BGだけをラスタースクロール、みたいなことはできるのだろうか…。現状ではスプライト相当までグネグネしちゃってるけど…。

OVR()を使って分離。 :

OVR() という関数を記述すれば、SCN() で描画した後から別の何かを描画できる ―― SCN() の処理とは分離した描画ができるらしい。

コレを使えば、BGだけラスタースクロールをして、スプライトは処理をかけない、ということもできる模様。

tic80_scn_ovr_ss01.gif

_OVR - nesbox/TIC-80 Wiki

-- title:  game title
-- author: game developer
-- desc:   short description
-- script: lua

t=0
x=96
y=24

function TIC()

 if btn(0) then y=y-1 end
 if btn(1) then y=y+1 end
 if btn(2) then x=x-1 end
 if btn(3) then x=x+1 end

 cls(13)
 map(0,0)
 t=t+1
end

function SCN(row)
 local x,y
 x=8*math.cos(math.rad(3*t+4*row))
 y=6*math.sin(math.rad(2*t+4*row))
 poke(0x3FF9,x)
 poke(0x3FF9+1,y)
end

function OVR()
 spr(1+t%60//30*2,x,y,14,3,0,0,2,2)
 print("HELLO WORLD!",84,84)
end

このソースの例では、OVR() 内でスプライト相当の描画+文字描画をしているので、そこだけはラスタースクロールしない状態になっている。

一応ブラウザ上でも動くソレも置いてみたり。

_rasterttest02.tic.html

*1: もしかすると、TIC() で画面に描画する内容を作ってから、画面描画用のバッファに、SCN() でy方向に1ラインずつ転送している…のかな…。

#2 [tv] NHKドラマ「フェイクニュース」を視聴

先週が前編、今週が後編として放送されてたものを視聴。たまたまTVをつけっぱなしにしていたら流れていたので、そのまま見てしまったパターンなのだけど。

面白かった。とにかく脚本が良いなと。どんでん返しもあったし、フツーのドラマならこうくるだろう、という流れを裏切る展開も用意されていたりして、結果、現状の混沌ぶりをかなり表現できていたような気がしたり。

前編を見た際は、ネット利用者の姿がかなり悪意を持って描かれてるように感じてしまって、これはちょっとどうなんだろうと思ってしまったけれど。後編まで通してみるとマスコミ批判にまで踏み込んでいたりもして、なんというか…結局皆、同じ穴の狢になってしまっているのかもしれないと感じられるような作りになっていた気もするわけで。

劇中では青虫が出てくるけれど。アレはインターネット、もしくはネット利用者、あるいは人類の暗喩になっていたのかもしれないなと。まだまだ自分達は、色んな面で幼虫の状態なのだろう…。いずれ蛹になって羽化するかもしれないけれど、その時は、どんな姿、どんな光景になっているのだろうか。それともまさか、このまま幼虫として、一生を終えてしまうのだろうか…。

何にせよ、面白いドラマだったなと。視聴できて良かった。ラッキーだった。

2018/10/28() [n年前の日記]

#1 [tic80] TIC-80でラスタースクロール処理その2

TIC-80 0.70.6 で、SCN() を使ってラスター単位というか走査線単位相当での処理を試しているところ。

走査線単位でアレコレできるなら、もしかして _アレ もできるのかな、と…。水面に見えるかもしれない系の画面効果を書いてみたり。

tic80_scn_hflip_ss01.gif

以下のページを開けば、ブラウザ上でも実行できる。

_rasterttest03.tic.html

念のために再度書いておくけど…。

ソース。 :

ソースは以下。
-- title:  game title
-- author: game developer
-- desc:   short description
-- script: lua

t=0
x=24
y=32
sy=0
PAL_ADDR=0x3FC0
SCR_OFST=0x3FF9

function TIC()
 local spd=2
 if btn(0) then y=y-spd end
 if btn(1) then y=y+spd end
 if btn(2) then x=x-spd end
 if btn(3) then x=x+spd end

 cls(0)
 map(0,0)
 spr(1+t%60//30*2,x,y,14,2,0,0,2,2)
 print("HELLO WORLD!",84,28)
 t=t+1
 sy=math.floor((136*0.7)+16*math.sin(math.rad(t)))

 -- reset palette 
 sync(1<<5)
end

function SCN(row)
 local dy=row-sy
 local rx,ry
 if dy<0 then
  rx=0
  ry=0
 else
  rx=1.5*math.cos(math.rad(4*t+55*dy))
  ry=-dy*2
 end
 poke(SCR_OFST,rx)
 poke(SCR_OFST+1,ry)
 
 if dy==0 then
  -- palette change
  for i=PAL_ADDR,PAL_ADDR+16*3-1 do
   poke(i,peek(i)*0.7)
  end
 end
end

走査線単位でのパレット値の書き換え。 :

今回は、水面部分が少し暗い色になるようにしてみたり。SCN() の中で、16色分のパレットを書き換えることで暗くしている。要は、 _メガドライブ版ソニックの水面処理 みたいな感じ。 *1

_RAM - nesbox/TIC-80 Wiki によると、パレット値は 0x3FC0 から 16色 x 3 Byte (RGB 24 bit) = 48byte として記録されている。その領域を _poke() で書き換えてやれば、走査線単位でパレット値を変化させることができる。 *2

ただ、パレット値を書き換えると、次回の描画時に、暗くなったパレット値のまま画面を描いてしまうので…。TIC()内の最後のあたりで sync(1<<5) を呼んでパレットをリセットしている。

_sync - nesbox/TIC-80 Wiki

sync() に、マスク情報を渡しながら呼ぶことで、画像領域、マップ、効果音、音楽、パレットを、new した直後の状態にリセットできるらしい。また、おそらく有償版の TIC-80 なら、sync() を使ってバンク切り替えもできる模様。

OVR()についてメモ。 :

TIC() や SCN() の描画後に、別の何かを独立して描画できる OVR() については、実装された際に書かれた記事が参考になりそうだなと。

_Overlap mode - Issue #429 - nesbox/TIC-80
_TIC-80さんのツイート: "going to add new "overlap" mode to #TIC80 https://t.co/AaOOmN7HRd to create this kind of effects… "

上記記事のスクリーンショットの事例では、スクロールだけなら map() を複数呼ぶことでも実現できるけど。1ライン描画するたびにパレット値を書き換えて、BG相当を少しずつ暗くしてる・グラデーションにしているあたりがポイントかもしれないなと。もし OVR() が無かったら、自機も1ラインずつ暗くなってしまうはず。

余談。CRTっぽい表示。 :

_Releases - nesbox/TIC-80 の Changelog を眺めていたら、F6キーを押すとCRT(ブラウン管)っぽい表示ができると知った。

tic80_crt_look_ss01.png

ホントだ…。それっぽい…。円形に歪ませつつ、 _シャドーマスク っぽいソレにしてるのかな…。

_アパーチャーグリル - Wikipedia
_スロットマスク - Wikipedia

*1: メガドライブの実機では、水平帰線割込みでパレット値を書き換えると画面にノイズが出てしまうので、該当部分にスプライトを乗せてチラつかせる等の小技が必要だった記憶があるけれど。TIC-80は疑似的にこういった処理をしてるだけなのでノイズが出ないから、妙な小技を使わなくて済む分、気楽に遊べてイイ感じだなと…。
*2: ちなみに今回は、水面の境界ラインで、1回しか書き換えてない。

#2 [nitijyou] 県知事選に投票してきた

福島県知事選の投票に行ってきた。AM10:00頃、集会所まで自転車で。帰りにスーパーによって夜食等を購入。

現職の知事が立候補していたので、保守的な福島県民のことだからおそらくは、と予想していたけれど、夜のニュースを眺めたらやはりそんな感じになったらしい。それはさておき、投票率はどうだったのだろう。今回は低くなるのでは、と誰かが予想していた記憶があるけれど。

2018/10/29(月) [n年前の日記]

#1 [pc] BDFフォントについて調べていたり

TIC-80 で使われている以下のフォントを眺めているうちに、ビットマップフォントについて興味が湧いてきて。

_A very tiny, monospace, bitmap font

ビットマップフォントと言えばBDFフォントだろう、Windows上で BDFフォントを使う手段は無いのかなと、なんとなくググり始めたり。まあ、TTF に変換して使うという手はあるらしいのだけど…。

_how to use BDF fonts on Windows, convert to TTF with bdf2ttf

Windows上でBDFフォントを直接読んで画像に文字列を上書きしたりできるツールは無いのだろうかとググってみたもののこれが全く見つからず。それどころか、BDFフォントに対応したビューアの類すら見つからない。

まあ、GIMP ならBDFフォントも使えるっぽいので、それでどうにか、ということになるのだろうか。

今時は高解像度のディスプレイもそれなりに普及してるだろうし、フォントはアンチエイリアスをかけて表示するのが当たり前になってるところもあるから、PC上でビットマップフォントを使う場面なんてほとんどないだろうし、関連ツールがほぼ存在しないのも仕方ないか…。電子工作で、解像度の低い液晶上に表示する、といった場合は使えそうではあるけれど。

#2 [game] 2Dゲームのカメラ移動

たまたま何かの拍子に、2Dゲームのカメラ移動について、その種類を網羅した記事に遭遇。

_Gamasutra: Itay Keren's Blog - Scroll Back: The Theory and Practice of Cameras in Side-Scrollers

スクリーンショットを見ているだけでも楽しい…。

さておき、地面と設置した時だけy座標を合わせるやり方を知って「その手があったか…」と恥ずかしながら今頃目ウロコ。

こういうのって、二人同時プレイの仕様だと、更に面倒なことになるんだよな…。片方が踏み止まっている状態で、もう片方が先に行こうとしたらどうなるの、とか。先に行ってる側を優先して、後から来てる側をズリズリ引っ張るのか。それとも後から来てる側を優先して、先に行ってる側が進めないようにしちゃうのか。どれが正解なんだろうな…。

2018/10/30(火) [n年前の日記]

#1 [tic80] ファミコン音源の波形について調べていたり

TIC-80は、音色の波形を描いて鳴らすことができる仕様だけど、せっかくだからファミコンっぽい音を出したいよなと。しかし、ファミコンってどういう波形が鳴らせたのか、そのへんよく知らないわけで。ということで、ちょっとググったり。

_8bit(ファミコン風)ゲーム音楽の作り方。仕様を理解し正しく打ち込みましょう。 ・ 直伝・サウンドクリエイターへの道
_ファミコン三角波: テキスケ
_Programmable Sound Generator - Wikipedia
_三角波とは?ファミコン風の音色を簡単に説明してみる動画 その4(DQ, FFの有名曲を具体例として) - ニコニコ動画
_NES on FPGA dev NSF
_サウンドクリエイターのお仕事!【第10回】 | ゲームガンバ
_チップチューンを作るための6つのTips - あっぷりノート
_中潟憲雄のファミコン音楽で表現する小技とは? | 三才ブックス
_PC-Engineの音楽は何故ショボいのか?についての考察。 - 超兄記。
_矩形波のデューティ比を変化させる - Kludge Factory
_ファミコン音源詳細 - MCK Wiki*

とりあえず分かったのは…。
ひとまず、TIC-80は4チャンネル鳴らせるらしいから…。ファミコン本体の音源っぽい音 ―― 矩形波 x 2 + 三角波 + ノイズ、であれば鳴らせそうだなと。DPCMは機能が入ってないから鳴らせないと思うけど。

ノコギリ波は向きで聞こえ方が違うのだろうかと想像したのだけれど、TIC-80上でそれぞれ波形を作って鳴らしてみても違いは分からなかった。右上に変化する波形でも、右下に変化する波形でも、どちらでもいいのかもしれない。

ディレイとディチューンってなんぞや。 :

関連記事を眺めていたら、ディレイとディチューンなるテクニックが昔は存在していたようで。どんな技だっけ…。当時は知ってたはずだけど、忘れてる…。

ディレイは、別チャンネルの音をほんのちょっとだけ遅らせて鳴らすことで、音の広がりを付加する技、だったらしい。1チャンネルでも似たようなことができたらしいけど具体的なやり方は分からなかった。

ディチューンは、おそらくピッチを少しずらして鳴らす技、なのかな…。自分の理解が間違ってるかもしれないけれど。

#2 [nitijyou] 日記をアップロード

気づいたら 2018/09/13 から日記をアップロードしてなかったので少しずつアップロード。

2018/10/31(水) [n年前の日記]

#1 [tic80] TIC-80をWindowsタブレットPC上で動かそうとしたけど動作せず

手持ちの WindowsタブレットPC、 _Dell Latitude 10 (Intel Atom Z2760、GPU PowerVR SGX 545、RAM 2GB、Windows8.1 32bit)上で、TIC-80 0.70.6 を動かそうとしたのだけど、そもそも起動せず。ウインドウが表示された直後に、「TIC-80 は動作を停止しました」と表示されてしまう。

tic80_not_start_ss01_on_dell_latitude10.png

さて、原因は何だろう。
試しに、USB接続キーボードをつけて動作確認してみたけれど、それでも TIC-80 はエラーを出して起動しなかった。ということは、キーボードとマウスが取得できなくてコケてるわけではなさそうだなと。

なんとなくだけど、TIC-80 が32bit版OSには対応してない可能性がありそうな。というのも、例えば TIC-80 Linux版のバイナリは64bit版しか公開されてなかったりするので、どうも 32bit版を切り捨てているような雰囲気もあるわけで。 _昔は32bit版も公開されていた気配がある のだけど…。

あるいは、Intel Atom Z2760 に内蔵されたGPU、PowerVR系のドライバの出来が酷いのかも。何せ、この Intel Atom Z2760 を積んでいるPCは、IntelがWindows10用のドライバを提供しない(PowerVRのドライバを用意できない)という事情のために、Windows10 Creators Update にアップグレードできないわけで。 *1

_Windows 8時代の激安タブレットはWindows 10 Creators Updateに更新できない? - ITmedia PC USER
_旧型AtomはWindows 10 Creators Updateの対象外 | スラド ハードウェア

そのくらい、PowerVR系はドライバ関係が酷いらしいので、そこでコケていてもおかしくないのかもしれないなと。

ブラウザ上では動作したけど。 :

TIC-80 はブラウザ上でも動作するので試してみたけど…。

一応動くことは動いたものの、かなり重い。画面の更新がガクガク状態で、60FPSには程遠い。

まあ、昔の Intel Atom だから、コレは仕方ないだろう…。

何にせよ、「TIC-80は非力なPCでもそれなりに動くよ」とは言えない作りっぽいなと。

*1: 古い Windows10 ―― Windows10 Anniversary Update までは入れられるけど、Windows10 Creators Update にアップグレードはできないらしい。

#2 [pc] 親父さん用PCが不調

朝方、親父さんから相談が。親父さん用PCにおいて、Windows10が起動はするものの、使ってるうちにマウスもキーボードも反応しなくなって画面も固まるとのこと。

試しにリセットボタンを押して再起動してみたけれど、たしかに何かの拍子に無反応になった…。自分も症状を目撃。

Windowsメモリ診断を走らせたけど、それも途中で止まってる気配が。CPUファンが全開で回りっぱなしになってる、そんな感じの音がする…。

_UBCD から _Memtest86+ を起動してメモリのチェックをしたけれど、一応、一巡はした。ということは、あからさまに分かりやすい形でメモリが壊れてるわけではない、ということかな…。ちなみにCPUの温度は55〜65度ぐらい。

吸気口に埃が溜まってて熱暴走してるのではないかと疑って、ケースを開けて掃除してみたけれど。それほど埃が溜まってるようには見えず。でもまあ一応、掃除機とエアダスターで埃は取ったけど。

ちなみに、親父さん用PCのスペックは以下。
_INWIN IW-BK623 は省スペースケースなので、ちょっとしたことでも熱がこもるわけで…。CPUはともかくチップセット周辺に熱がこもって熱暴走してる可能性はないか…。内部に何かファンでもつけたほうがいいのかもしれん…。と言っても、ファンを入れる余裕も無さそうだけど。

Memtes86+は走るのに、Windows10が止まるあたりも気になる。Windows Update が、AMD製CPUをフリーズさせる何かを配布しちゃってるのでは、と思ってググってみたり。2018/01頃や、2018/08頃に、そういう状況があったらしいけど、今現在はそういった話もないような…。

_AMD CPU搭載PCでWindowsアップデート後に起動できなくなる症状と対策
_Windows 10のマイクロコードアップデートKB4100347で深刻な不具合が発生中か | ソフトアンテナブログ

とりあえず掃除後は固まってないようなので、しばらく様子を見てみるしかないなと。また固まるようなら、埃が原因ではなかった、ということになるのだろう。

以上、31 日分です。

過去ログ表示

Prev - 2018/10 - 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 29 30 31

カテゴリで表示

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


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

Powered by hns-2.19.6, HyperNikkiSystem Project