ストレス解消型デバイス「Gaming Big Enter Key」の提案

この記事は FUN Advent Calendar 2023 の17日目の記事になります。

(コロナにかかり、大遅刻しました。スイマセン....)

adventar.org

 

昨日(16日)は nagata さんによる、逆張りオタクが独学で音ゲー中級者になった話(かも) でした!

hackmd.io

 

↑思想強くて笑いました

 

 

※注意 この記事には、事実でない内容や筆者の偏見が多く含まれております。ご注意ください。

 

 

--------------------------------------------------------------------------------------

1.背景

1.1ストレス

 日本社会においてストレスは大きな社会問題となっている.企業ではストレスチェックが義務化されるなど,ストレスの管理が重要となっている.そして,ストレスには様々な解消方法があり,ランニングをする,歌を歌う,風呂に入るなど,人それぞれの方法によりストレスを解消している.しかし,これらのストレス解消法は準備を必要としたり,ある程度まとまった時間がなければ行えないものが多い.そこで本研究では,日々の生活の中に存在する,短時間で行えるストレス解消法に着目する.それは「エンターキーの押下」である.

 「エンターキーの押下」は多くの社会人が行うPC操作の中に含まれる動作であり,たとえ業務中であっても,少し強くエンターキーを叩くだけで気持ちよくなり,ストレス解消に繋がる.(ただし,この動作により生まれる騒音は,周囲の人間のストレスとなる.そのため,「エンターキーの押下」はストレスの押し付けとも言える.これは明らかに公衆の衛生を害する行為であるため,「エンターキーの押下」をストレス解消法として捉えるべきか否かは議論をしていく必要がある.)

 「エンターキーの押下」によるストレス解消量は,押下行為の気持ちよさに比例する.押下行為の気持ちよさを生む要因としては,「物理的なボタン」「面積の広いキースイッチ」「適度なストローク」が考えられる.例えば,タッチパネル上のエンターキーを強く押しても,気持ちよさには繋がらない.それどころか,突き指の危険性が生まれる.反対に,メカニカルキーボードのエンターキーでは,押下による気持ちよさが生まれる.これらから言えることは,「エンターキーは大きければ大きいほどストレス解消につながる」ということである.

 

 

1.2ゲーム

 ここ数年,「esports」という言葉を耳にする機会が大きく増えている.実際に,多額の賞金がかけられたゲーム大会が存在したり,ゲームをプレイする様子を配信するストリーマーというジャンルが生まれ,配信者・視聴者共に増加傾向にあったりするなど,esportsが日本中に広まっている.そして,esportsにおける主要なゲームジャンルとして,FPS対戦格闘ゲームなどが存在する.これらのゲームを満足に楽しむためには,(ゲームにもよるが)ミドルスペック以上のゲーム向きPCが必要になってしまうことが多々ある.従来,ミドルスペック以上のPCや,グラフィックボードを搭載したPCは,多少コアな人向けであったと思われる.しかし今は,小中学生ですらゲーム用PCを欲しがっているということも珍しくない.

これらの需要を満たすPCは「ゲーミングPC」と呼ばれる.ゲーミングPCの特徴として,

  • グラフィック性能が高い
  • ゲーマー向けのソフトウェアがプリインストールされていることもある(steamクライアント,ゲーム本体など)
  • 無駄に光る

などが挙げられる.

 また,PC以外でも,「ゲーミングマウス」「ゲーミングキーボード」などのデバイスが存在する.これらには,反応速度が速い,ゲーム向けの機能が搭載している,などの特徴がある.また,ゲーミングPCと同じように「無駄に光る」製品も多く存在する.

 そして,これらのデバイスから派生した「ゲーミング○○」という製品も多く存在する.ゲーミングチェア,ゲーミングベッド,ゲーミングウェア,といった製品が存在し,間接的にゲームに関連する商品も増加している.そして,これらの製品の一部にも「無駄に光る」という機能が搭載されていることが少なくない.それどころか,「無駄に光る」という特徴を持ち,ゲームには一切関係ないデバイスまで「ゲーミング○○」と名前がつく場合も存在する.つまり「ゲーミング○○」とは,ゲームに関係なく,「無駄に光る」デバイスのことを指しているとも言える.

 ここで,なぜ「無駄に光る」製品が存在するのかを考えてみる.あくまで推測ではあるが,その理由は「なんかカッコいいから」ではないかと考える.光るものに憧れた結果,約1680万色(正確には16777216色)に光るデバイスに惹かれたのではないだろうか.

 これらを踏まえ,1.1項で挙げた「大きなエンターキー」に加えて,ゲーミング要素(無駄に光る)を加えた物が存在すれば,ストレス解消かつ「なんかカッコいい」デバイスが作れると考える.そこで本論文では,ストレス解消型デバイス「Gaming Big Enter Key」を提案する(図1). 

 

図1 Gaming Big Enter Key の使用イメージ

 


2.先行研究

 大きなエンターキーに関しては,すでに商品化が行われており,容易に入手することが可能である.(ショッピングサイトで「エンターキー クッション」と検索した様子を図2に示す.)本研究では,大きなエンターキーに加え,さらに謎に光らせることにより,さらなる機能性向上を目指している.

図2 ショッピングサイトでビッグエンターキーを購入できる様子

 ゲーミング○○に関しても,ゲームに関係あるデバイスや,ゲームに関係のないデバイスがすでに商品化されている.エンターキーに関しても,キーボードの中のキーとして見ると,謎に光る商品は存在する.しかし,それは通常サイズのものである.本研究では大きなエンターキーを謎に光らせる事により,新たな可能性を見出すことができると考える. 

 


3.提案

 本論文では,ストレス解消型デバイス「Gaming Big Enter Key」を提案する.このデバイスを使用することで,日々のストレスが軽減される上に,謎に光る機能により「なんかかっこいい」という感情を引き出し,気分を向上させることが期待できる.また,エンターキーの押下に対するフィードバックにも着目する.従来のビッグエンターキーでは,押下に対するフィードバックはPC画面上にしか表示されない.そこで,押下に対応してLEDの点灯パターンを変化させることにより,フィードバックを増加させ,さらなる操作感・ストレス解消量を目指す.

 本デバイスは,エンターキーとして使用することが前提となるため,マイコンを用いてUSBキーボードとして認識されるよう制御を行う.また,LEDの点灯パターンの制御も同様にマイコンを用いる.

 

 

4.実装

 本研究のデバイスは,主に「ケース部」「LED部」「制御部」の3部分に分かれる.

 「ケース部」はエンターキーの外装や,各種パーツの固定用の土台,戻りバネなどが含まれる.「LED部」は「謎に光る」機能を実現するためのLEDを指す.「制御部」は,入出力の制御を行うマイコン,各種端子,電子回路などが含まれる.

 「ケース部」の制作には主に段ボールと3Dプリンタを用いた.エンターキーの外装の素材や作成方法はいくつか考えられる.例えば,3Dプリンターで作成する,スタイロフォームを削り作成する,アクリルを組み合わせて作成する,など様々な方法があるが,今回はSDGsに考慮し使用済み段ボールを使用することとした.(なお,様々な加工を施すことは,古紙回収に出しにくくなる行為であり,SDGsに反しているという点は無視する.)詳細は後述するが,「Enter」という文字が書かれる箇所は,光を通過させるために,乳白色のアクリルを使用している.使用済み段ボールを使用して外装を組み立てている様子を図3に示す.

図3 段ボールを組み立てている様子


 しかし,段ボールを使うだけでは,表面がチープな見た目になってしまう.そこで黒色のカッティングシールを表面に貼り,全体の質感を落ち着いた色にしている.また,「enter」という文字の部分は,カッティングプロッターを使用して切り抜いている.カッティングシートを貼り付けた様子を図4に示す.

 

図4 カッティングシートを張り付けた様子


 エンターキーのストロークを生み出す部分は,3Dプリンターで出力したパーツと押しバネを使用している(図5).このパーツによりストロークは10mmで固定される.

 

図5 ストロークを生み出すためのパーツ


 「LED部」にはテープLEDを用いる.LEDにより光らせる箇所は,エンターキー外周下部の隙間と「Enter」という文字の部分の2箇所である.これらのテープLEDは土台部分に固定して配置する.その様子を図6に示す.

 

図6 外周下部のLEDを配置した様子

 「制御部」で使用しているマイコンは,USB機能搭載のPIC18F14K50とした.実際の制作には,パスコン,USB端子,ICSP端子,リセッタブルヒューズなどが搭載済みの,秋月電子通商の「PIC18F14K50使用USB対応超小型マイコンボード」を使用している.キー押下の取得にはフォトリフレクタを使用している.これらのパーツはブレッドボード上に実装し,エンターキー内部に収めている.テープLEDは制御の都合上二系統とし,それぞれ別のピンから制御を行う.テープLEDへの電源供給は,ACアダプターを用いて供給する.マイコンボードに搭載されているリセッタブルヒューズは350mAまで,LEDテープの消費電流は6mA x (53+8)=366mAと,十分な供給が不可能であるため,外部電源を使用した.プログラムは,Microchip Libraries for Applications のUSBキーボードサンプルを使用している.

 これらの実装をすべて完了した状態の内部画像を図7に示す.

 

図7 デバイス内部をすべて実装した様子

 


5.使用イメージ

 本研究のデバイスの動作模様と,使用イメージの動画を以下に示す.

 

 本デバイスは,電源を投入すると同時に白色に点灯する.その後,キーが押下されている間,赤青緑とそれを混ぜ合わせた計7色の中から,ルーレットのように高速で変化し,キーを離すことで色が確定する.また,キーの押下に合わせて,USBキーボードとしても動作するため,PCのエンターキ―としても使用することが可能である.

 

 

6.応用例

 本デバイスを用いた応用例を2つ提示する.

 一つ目は,企業が福利厚生として本デバイスを支給することである.前述したとおり,企業では従業員のストレスの管理が重要となる.しかし,人それぞれの解消法ができるようにサポートするのは労力がかかる.そこで本デバイスを利用することで,業務時間をストレス解消につなげることができる.ストレス解消だけでなく,業務効率の向上,最終的には企業の利益向上にもつながる可能性もある.

 二つ目は,エンターキ―の押下がうるさい人のエンターキ―を本デバイスにすり替えることである.エンターキ―の押下がうるさく,周囲に迷惑をかけている人は,自身のキーの押下のうるささに気付いていないことが多い.本デバイスは内部にバネを4つ搭載し,静音などの処理を一切していないため,押下音が通常のキーボードに比べて遥かに大きい.そこで,本人に気付かれないように本デバイスとすり替えることで,「うわっ…私の押下音大きすぎ…?」と自覚することが期待できる.

 

 

7.まとめ

 本研究では,ストレス解消型デバイス「Gaming Big Enter Key」の提案を行った.実際にデバイスを作成し,その使用感を確かめることや,このデバイスを用いた応用例を2つ提示した.今後は,押下音の低下,発色パターンの増加,より良いフィードバックの提案を検討している.

 

 

謝辞

 本研究の遂行にあたり,工房職員のN様には加工方法の選定から実際の作業の補助まで,大変お世話になりました.本当に感謝いたします.

 また,まつさん(Twitter:@MatsuHibr)より,LEDテープの提供をしていただきました.本当に感謝いたします.

--------------------------------------------------------------------------------------

 

 

 

明日(18日)は mkod さんによる「mkod ToDO & MAKING」です!

お楽しみに!

adventar.org

今年こそは神ゲー紹介する

この記事は FUN Part2 Advent Calendar 2023 の12日目の記事になります。

adventar.org

 

 

昨日は とみすけ さんによる ちょっとアブノーマルな公立はこだて未来大学合格体験記 でした!!

tomisuke.com

 

私もAO入試(今の総合型選抜)で入学した身なので、(勝手に)親近感がわいてます...笑

それと面接の質問内容めっちゃ覚えててすごいなと思った...

(面接の記憶がないタイプの人間)

 

 

自己紹介

こんにちは、kazu8823と申します(twitter:@kazujdDR8823)

知能システムコース4年、絶賛研究に追われている人です。

 

好きなものは、

です。

 

はじめに

私は毎年アドカレを書いているのですが、2年前にこのような記事を書きました。

kazu8823.hatenablog.jp

 

こちらで紹介したゲームは以下です

  1. Getting Over It with Bennett Foddy(通称壺おじ)
  2. Jump King
  3. Cart Racer
  4. International Space Banana

うん、まあ癖が強いです。

(上の方のゲームしか知らない方もいると思いますが、壺おじみたいなゲームを4つ紹介している記事です。)

 

こんなことをしているから仕方ないですが、私が何かゲームを紹介しても、どうせ癖が強いゲームなんだろうと思われることがあります... 悲しい...

ってわけで、たまにはまじめに紹介します。

 

というかただの布教記事です。自己満足です。

 

 

1. イースIX -Monstrum NOX-

基本情報

発売日:2019年9月26日

対応ハード:PS4, Switch, Steam

開発:日本ファルコム

 

 

監獄都市を舞台に、縦横無尽の異能アクションでバトル! シンプルかつ爽快なバトル、明快でドラマチックな物語、バトルを盛り上げる熱いBGMで、男女問わず国内外のユーザーから高い評価を受けるアクションRPGイース」シリーズの最新作。
(steamより)
 

 

イースシリーズについて

イースシリーズは、冒険家「アドル・クリスティン」を主人公としたアクションRPGシリーズです。

このシリーズは全ての作品(一部番外編を除き)で、アドルが書いた冒険日誌を元に作られているという設定です。その為、ストーリに大きな分岐はなく、基本的には一本道な展開になります。

また、シリーズのためストーリーにつながりはあるのですが、基本的に1作完結となっているため、どの作品から始めても問題ないです。(「Ⅰ→Ⅱ」のみ前後編となっています)

 

 

②アクション

イースIXは、アクションも楽しいです。

アクションの種類は、ジャンプ、攻撃、回避、スキル攻撃などなど...一般的な3Dのアクションゲームと同じようなアクションがあります。

しかし、その中でも特に紹介したいのが「フラッシュムーブ」「フラッシュガード」の2つです。

フラッシュムーブは、攻撃が当たる直前に回避を行うことで発動でき、一定時間の間「無敵」「周囲がスローになる」「自分の移動速度上昇」となります。

フラッシュガードは、攻撃が当たる直前にガードボタンを押すことで発動でき、一定時間の間「無敵」「攻撃がすべてクリティカル」となります。

この二つは、どちらともボタンを押すタイミングがずれると攻撃を受けてしまうため、リスクもありますが、成功した時のリターンがでかいです。というか楽しいです。

 

前作(イースVIII)の画像ですが、アクションの内容はほぼ同じでこんな感じです

公式サイトより

 

 

また、異能アクションというものがあります。これは、ストーリーを進め仲間を増やすことで種類が増える特殊アクションで、

  • 特定の場所に一瞬で移動する クリムゾンライン
  • 垂直な壁でも軽々と駆け上がっていける ヘヴンズラン
  • 羽を広げて長時間の滑空を可能にする ハンターグライド

などがあります。

(↓上記3つの異能を使ったムービー)

これらを駆使してマップ探索をするのがマジで楽しい。やばい。

 

③ストーリー&キャラクター

ストーリーが良い。キャラクターも良い。

今まで遊んだゲームの中で1番泣いた。(次に泣いたのが OneShot )

というのも、イースシリーズ全部に言えることですが、最後には別れがきます。アドルは冒険家のため、この作品での冒険が終わったら次の冒険に向かいます。

数十時間遊んで思い入れが強くなったキャラクターとも、最後には別れます。悲しい。

キャラクターも魅力がたっぷり過ぎて、より別れがつらくなるんですよ...

 

もちろんそれだけではありません。詳しいことは書きませんが、まあまあ序盤の段階で「なんで????」となることが起きます。そんな疑問が少しずつ明らかになっていくストーリーがマジでアツいです。

 

また、キャラクターも超魅力的です。

ストーリーが進むにつれて様々なキャラクターとのイベントが発生し、そのキャラクターの過去や抱えている事情などを知ることになります。

そんなキャラクター達が前を向いて進む姿などがマジでもうやばい、泣ける。感動。良すぎるのよ。

 

ただ、文章でこの良さを伝えられる自信が全くないので、マジでプレイしてください。

とりあえず推しキャラ貼っときます(すべて公式サイトより)

キリシャ

テイト

背教者



④音楽

Falcom Sound Team jdk 最高

ファルコム作品は音楽も最高です。

とはいえ、ゲームのBGMはゲームに合わせて聞くのが一番良いと思うので、ここでは紹介しませんが、各種サブスクでサントラが出ているため、簡単に聞くことができます。

ちなみに私の好きな曲は

  • CROSSING A/A
  • KNOCK ON NOX
  • DANDELION'S JOURNEY

です。

 

最新作 イースX -NORDICS-

イースシリーズにはたくさんの作品があるわけですが、最新作イースXが9月28日に発売されました。

対応プラットフォーム:PS4, PS5, Switch 

これもめっちゃ楽しいです、やばい、超オススメ

 

 

⑤まとめ

アクションも良し、ストーリーも良し、音楽も良し、すべて良いです。

イースIXに限らずイースシリーズはめちゃくちゃオススメなので、じっくり遊べるゲームを探している人は、イースシリーズはどうでしょうか!!!

 

 

以上イースIXでした!

 

(もう一回貼っとこ)

 

2. Cuphead

基本情報

発売日:2017年9月29日

対応ハード:steam, Xbox One, Switch, PS4

開発:StudioMDHR

 

『Cuphead』はシングル/協力プレイ型で、ボスバトルを中心とするシューティングアクション。1930年代のカートゥーンにインスピレーションを得た本作のビジュアルと音楽は、当時のアニメーション制作過程をを緻密に再現。セル画ですべて手描き、背景は水彩画、音楽も録り下ろしのジャズ楽曲を使用しています。

デビルとの賭けに負けたCupheadとMugman。自分たちの命を賭けて奇妙な世界を冒険しながら、新たな武器や強力な必殺技を手に入れて様々なボスとの戦いを繰り広げよう!

(steamより)

 

 

①どんなゲーム?

ロックマンのボス戦だけを抜き出したかのような、アクションシューティングゲームです。そして高難易度です。

とにかく特徴的なのがグラフィックで、1930年代のカートゥーンアニメーションのように動きます。これらのアニメーションは全部手書きらしいです....すごっ

 

 

②とにかくムズイ... でも...

Cupheadは一部ステージを除きボス戦のみの1ステージ構成となっています。また、プレイヤーの体力は3で回復がない(一部を除き)ため、相当厳しい戦いをすることになります。(1ステージは基本2,3分程度)

 

そして、敵の動きや攻撃の予備動作などは割とわかりやすく作られているため、パターンを覚えると意外と簡単に攻撃をかわせるようになります。ごめん嘘、覚えてもムズイ。

しかし、練習を重ねるにつれて、徐々に自分が上手くなっていく感覚が得られやすいことや、クリアした時の達成感が本当に嬉しいため、何度も繰り返しプレイしたくなるゲームになっています。マジで達成感やばい

 

また、このゲーム独自の要素として、「パリィ」というものがあります。ピンク色の弾や敵に対して、ジャンプ中にタイミングよくジャンプボタンを押すと、弾を消したり敵にダメージを与えながらジャンプができ、必殺技に使うゲージもためることができます。

もちろんパリィのタイミングをミスるとダメージを受けてしまうため、ハイリスクハイリターンなアクションとなっています。

安定を取って弾を避けるか、ゲージを稼ぎにパリィを狙いに行くか、この判断が楽しい。

 

③様々なショット・お守り

このゲームではステージを進めるにつれて、様々なショットを使えるようになったり、お守りというお助け要素のようなアイテムが増えていきます。

ショット6つの内2つ、お守りは6つの内1つまで同時に装備することができ、2つのショットは常に切り替えて使用することが可能です。(ショット、お守りともにDLCで少し増えます)

 

使えるショットは、普通の直進ショット、射程が短い代わりに5way、威力が弱いがホーミング、チャージショット、などなど...

自分の好きなショットを探すのも楽しいです。

(ちなみに私はスプレッド+チャージ一択です、火力重視)

 

お守りの効果も様々で、ライフが増える代わりにダメージ減少、ダッシュに無敵付与、ゲージが自動で増加、パリィ動作に攻撃判定付与、などなど...

ちょっとしたお助けアイテムから、攻撃スタイルを大きく変えることができるものまで様々なお守りが存在し、これらを使って攻略してくのがめっちゃ楽しいです。

(ちなみに私は緊急回避用にケムリ玉です。ごり押しによく使う)

 

 

④Run & Gun

先ほどこのゲームはボス戦のみと書いたのですが、一部ステージではRun&Gunと呼ばれる、通常の横スクロールステージも存在します。(ロックマンとかメタスラの道中みたいな)

これもまあむずいんですよ

ボス戦とは違って雑魚敵が大量にいるので、画面がわちゃわちゃする上に、ライフは変わらず3しかありません。その為、ボス戦よりむずいと感じる人もたくさんいるのではないでしょうか。

 

また、Run&Gunに限らずこのゲームではステージクリア後のリザルト画面で、評価が出ます。クリアタイムや被弾回数などいろいろな要素で評価され、最高はSランクなのですが、Run&GunのみPランクという評価が最高評価になります。

これは敵を一体も倒さずにクリアすると得られる評価です。これを狙おうとすると、被弾前提で進まなければならない場所もあったりして、実質ノーダメクリアが求められることも多いです。腕に自信のある方はぜひPランクも狙ってみてはいかがでしょうか。楽しいよ。

 

 

 

⑤まとめ

個人的に、Cupheadはアクションゲーム界の中でもトップレベルに楽しいゲームだと思っています。特に攻めたアクションをするのがとても楽しく、脳汁がやばい。

高難易度のアクションゲームがやりたい!って人にはめっちゃオススメです。

 

以上Cupheadでした!

 

 

 

 

番外編 OneShot

ここで、ちょっと番外編です。このゲームはもともと紹介しようと思っていたのですが、結構ネタバレを踏みやすいゲームなので、軽くのみ紹介します。

 

 

 

こんな感じの雰囲気のゲームです。

できることなら前情報無しでこのゲームを遊んでほしいです。なので、もしこの動画を見て興味がわいた人は、これより下を読まずにOneShotをプレイしましょう。

 

次のゲームの紹介まで飛ばしやすいように、目次を置いておきます。

 

 

流石に先ほどの動画だけではどんなゲームかわからないと思いますので、Indie Worldで紹介された動画を紹介します。

このゲームは、いわゆる第四の壁を越えてくるタイプのゲームです。

だから説明がムズイし、あんまり話したくない... とにかくプレイしてくれ!!!!

 

ちなみにこのゲームはsteam版の他に、Swtich/PS4/Xbox One向けに発売された「OneShot: World Machine Edition」があります。

World Machine Editionは、steam版と比べて操作等で改良が加えられている他、ギャラリーモードのようなものも追加されております。

 

がしかし、個人的にはsteam版の方がオススメです。このゲームを100%楽しむのであれば、steam版一択だと考えています。

 

以上OneShotでした。

 

3. Rabi-Ribi

基本情報

発売日:2016年1月29日

対応ハード:Steam, PS4, Switch

開発:CreSpirit

 

ウサ耳娘を主人公にするゲームが欲しい、このゲームはそういうあなたに捧げますーーーーー2D横スクロールアクション + 探索ゲーム
主人公「エリナ」は平和な日常を送る極普通のウサギです。ある日突然、彼女は見知らず土地で現れて、しかも人間になりました!目的のない旅の中、彼女は明るい可憐な妖精「リボン」と出会いました。
これで、二人の家を帰る旅が始まった。多分黒幕が探し出せますかな?

(steamより)

 

 

①どんなゲーム?

えっちな1枚絵

えっちなゲームです

 

 

 

 

 

嘘です

 

 

①どんなゲーム?

メトロイドヴァニア弾幕シューティング、って感じの2Dアクションゲームです。

メトロイドヴァニアMetroidvania)とは、任天堂開発のゲームシリーズ「メトロイド」(Metroid)とコナミ開発のゲームシリーズ「悪魔城ドラキュラ(海外名:キャッスルヴァニアCastlevania)」の二つを彷彿とさせるような要素を持つゲームを総称して指す。特にインディーゲームに対して呼ばれる事が多い。

ニコニコ大百科より)

 

 

 

このゲームは探索型のアクションゲームなのですが、ボス戦が特に特徴的です。

steamストアページより

このように、ボス戦で敵は弾幕シューティングのような攻撃をしてきます。

一見避けることができないような攻撃をしてきますが、プレイキャラの当たり判定も小さいため、意外と避けられます。

 

基本的な攻撃方法として、

  • ハンマー(近接攻撃)
  • リボン(遠距離攻撃)

の2種類があり、これを使い分けることで敵を倒していきます。

 

 

メトロイドヴァニアとしての面白さ

このゲームに限った話ではありませんが、メトロイドヴァニアのゲームでは、現時点の装備では進むことができない道が多々あります。しかし、装備をそろえることでどんどん探索ができる範囲が広がっていきます。これが楽しい。

 

Rabi-Ribiでは、探索に関係ないものも含めて様々なアクションがあり、どんどん探索範囲が広がったり、攻撃方法が多彩になっていきます。これが良いのよ。

 

 

③探索の自由度

このゲームには、倒すとストーリーが進むボス(以降、メインボス)と、それ以外のボス(以降、サブボス)がいます。

メインボスの倒す順番は決まっているのですが、メインボスに挑むためには、サブボスを必要数以上倒す必要があり、必要数が少しずつ増えていきます。

そして、サブボスはどの順番で倒しても大丈夫です。その為、めちゃくちゃ自由な攻略ルートを取ることも可能です。

そして、ボスの強さ等のパラメータはゲームの進行具合(アイテムの取得状況、ボスの撃破状況など)によって決まるため、順番を変えることによって不利になるようなことはありません。

 

また、公式が隠しアクションを用意しており、その段階では本来入れない場所に無理やり入ることが可能です。(いわゆるシーケンスブレイクというやつ)

公式が用意しているアクションのため、そこまで難易度は高くなく、気軽にシーケンスブレイクを楽しめます。

(もちろんバグによるシーケンスブレイクも数多く発見されており、それらを用いたspeedrunも盛んです。)

 

これらの特徴より、メトロイドヴァニアの醍醐味を思う存分味わえる作品となっております。楽しすぎる。

 

 

④幅広い難易度

このゲームでは、ゲーム開始時に難易度を6つの中から選べます。

  • CASUAL
  • NOVICE
  • NORMAL
  • HARD
  • HELL
  • BUNNY EXTINCTION

難易度を変更することで、敵の攻撃力や弾幕量が変わるのに加えて、バフや制限の有無が変わります。

CASUALやNOVICEは、サクサクと進められるバランスで、探索を楽しみたい方にお勧めです。

しかし、BUNNY EXTINCTION(というかHELLも)は、マジでやばいです。本当に難しすぎる。こんなに難しいのはダメだと思う。でも楽しい

カジュアルにプレイしたい人から、死にゲー好きまで楽しめます。

 

 

また、DLC(詳しくは後述)を導入することでボスを増やすことができるのですが、そのボスがいろいろやばい。

基本的には難しいボスなのですが、特殊ギミックがあったり、演出がマシマシになっていたりなど、様々な要素があります。高難易度のボスに挑戦するのはもちろん、低難易度でギミックや演出を楽しむなど、いろいろと遊ぶことができます。

 

 

⑤大量のアチーブメント

このゲームには大量の実績があります。その数何と220個!

ゲームをクリアする、ボスを倒す、アイテムを取得する、などのよくある実績に加えて、様々な実績があります。その中からいくつか紹介します。

 

●●●●バニースピードランナー(●●●● -> ブロンズ/シルバー/ゴールド/プラチナ)

いわゆるスピードランの実績です。メインストーリーを規定時間以内にクリアすることで、実績を取得することができます。

 

ドッジマスター:●●(●●にはボスの名前)

ボスをノーダメージで倒す実績です。しっかりと弾幕を見て避けなければならないので、まあまあ大変な実績です...

HPが多いボス(特に後半のボス)では1,2回の被弾が許容されることもあるので、良いバランスになっています。

 

全部リボンにおまかせ!/エリナ……そのかわいさだけで勝とうっていうの?

この二つの実績は、アイテムを一切取らずにクリアすると取得できます。様々なアクションが可能になるアイテムや、自キャラのステータスを上げるアイテムを一切取得できないため、初期状態で最後まで進むことになります。

なによりも一番やばいのが、

ハンマー(近接攻撃)が使えない

ことです。ハンマーもアイテムの一つのため、戦闘をすべてリボンの遠隔攻撃のみで行う必要があります。

これがマジで大変。けど面白い。

 

ゲームこわれちゃったよ!

とある箇所でシーケンスブレイクをすると実績取得できます。公式が実績用意してる?!

 

 

そんな大量の実績ですが、このゲームが好きすぎたので

トロコンまでやりました(大体190時間)

 

DLC

Rabi-RibiにはDLCが存在し、その内3つを紹介します。これもまた楽しいんだよ

 

Cicini's Halloween!

これは無料のDLCで、ハロウィンがテーマのマップ・ボスが追加されます。(まあまあ強い)

無料なのでとりあえず入れとけって感じです。

 

 

Is the order a DLC?

「ご注文はDLCですか?」 通称「ごちD」 920円

本編のさらに後を描くストーリーが追加されるDLC。むしろこっちが本当のエンディングって感じなので、基本的に入れることをオススメするやつです。

ストーリー、マップ、ボス戦、アイテムなど、様々な追加要素があるので、めちゃくちゃオススメです。

 

ただし、追加ボスが(Cicini's Halloween!のボスも含めて)ほぼ避けられないような攻撃をじゃんじゃんしてきます...

DLCボスにはドッジマスター(ノーダメ撃破実績)が無いからなのか、マジで容赦ない攻撃がバンバン飛んできます。やばいよ

 

 

Cocoa Mode & Before Next Adventure

プレイアブルキャラの追加&ボス4体の追加 920円

敵キャラの一人である「ココア」が新しいプレイアブルキャラとして使えるようになります。様々なアクションが変わったり設置型の攻撃が扱えるようになるなど、全然違う遊び方になるため、これもめっちゃ楽しいです。

 

そして大問題のボス4体

アホみたく全部強い

ナニコレ?っていう攻撃ばっかりしてくる上に、特殊なギミックやすごい演出などがたくさんあって、ものすごく面白いです。倒せるかどうかは別として

 

もちろん低難易度に設定すれば、それなりにやさしい攻撃になるので、攻撃の多彩さだけでも楽しんでほしいDLCとなっています。

 

 

最新作? TEVI

ちなみに、Rabi-Ribiを開発したCreSpiritさんは11月30日に新作ゲーム「TEVI」をリリースしました。

続編というわけではないのですが、Rabi-Ribiの系統の新作メトロイドヴァニアです。

絶賛プレイ中なのですが、めっちゃ楽しいです。是非!!!

 

ちなみにCreSpiritさんは台湾のメーカーなのですが、TEVIは何と日本語(のみ)ボイスがついております!

日本語のみ?????

 

 

⑦まとめ

メトロイドヴァニアはいいぞ

あと弾幕シューティングもいいぞ

そんな二つを混ぜ合わせたRabi-Ribiもいいぞ

 

以上Rabi-Ribiでした!

 

 

 

 

 

おわりに

いかがでしたか?(言ってみたかったやつ)

マジでここで挙げた作品はすべてオススメなので、ぜひ遊んでほしいです!!!

大型セールなどでセールが来るゲームでもあるので、ウィッシュリストに追加しておいて損はないですよ!!!!

 

 

 

明日は ろく さんによる 「留学準備についてか一問一答、part1と統合可能性あり」 です!!

 

お楽しみに!!!

adventar.org

シューティングはいいぞおじさん「シューティングはいいぞ」

この記事は FUN Part3 Advent Calendar 2022 の22日目の記事になります。

adventar.org

 

昨日は 新美先生(Ayahiko Niimi) による MeCabに辞書を追加する でした!!

ayaniimi213.github.io

 

ドキュメントをGitHub上に公開してしまえば,内容が古くなっても誰かが更新してくれるかもと思い、~~~」

なるほど!!!!その手が!!!!

 

 

 

自己紹介

始めまして、シューティングはいいぞおじさんです。

 

一言

シューティングはいいぞ

 

 

 

 

 

 

 

 

 

 

 

 

 

ということで、シューティングゲームについて語る記事です。よろしくお願いします。

(今回扱うシューティングゲームは2D横・縦スクロールシューティングです)

 

 

はじめに

私は、去年の10月あたりにシューティングゲームを始めて、ドはまりしています。

アケコン(ゲーセンにあるようなゲームのコントローラー)を作るくらいドはまりしました。

 

kazu8823.hatenablog.jp

 

というか、アケコン作ったことによってさらにドはまりしてます。

 

しかし、、、、、

 

シューティングやってる人マジでいない!!!!!!!!悲しい!!!

 

ということで、シューティングを広めたいと思いこの記事を書きました。

 

 

シューティングの魅力

ぜひ皆さんにも興味を持ってもらいたいので、私がシューティングゲームに特に感じている魅力を3つご紹介します。

 

1. 敵を倒す楽しさ

大体のシューティングゲームでは、画面上にある自機1つで、ものすごくたくさんの敵を倒すことになります。

これがもう快感なんですよ。めっちゃ楽しい。

しかもただ敵を倒すだけじゃなく、敵の激しい攻撃をかいくぐって倒すその過程が本当に楽しい。マジで。

 

 

2. クリアするということ

何かゲームをクリアしたときの喜びって、ものすごく良いものではないですか?そして、その過程が難しければ難しいほどその喜びは増していくと思っています。

シューティングゲームは基本的にクリアがあります。昔のアーケードゲームなど、無限に続くタイプのゲームはありますが、クリアすることがゴールとなっています。

 

それがものすごく楽しいんです。難しいシューティングであればさらに楽しい。

 

難しいゲームをやっていると、「お前ドMかよ」みたいに言われることがよくあります。「ちげーよww」みたいに返すことがよくありますが、正直内心ムカついています

「大きな壁を乗り越えること」に楽しさを感じているのであって、「ボロボロにされること」を望んでいるんじゃありません。確かに、ボロボロにやられて「やべぇ」と笑っていることはよくありますが、高い壁であるほど乗り越えたときの喜びや感動が大きいことを知っているので、これを乗り越えたときはどんな感動が待っているんだろうかとワクワクするんです。

 

3. 成長を実感できる

つい先ほどクリアすることがゴールだと書きましたが、それ以外にもゴールはたくさんあります。もちろん大きなゴールはクリアだとは思いますが、「3面クリアできた!!」とか「このボス倒せた!!」とか様々なゴールを自分で設定できるんです。

 

それだけでなく、クリアの先にもまだゴールはたくさんあります。例えば「スコア100万点目指す!」とか「ノーミスでクリアする!!」などなど...

 

今までにできなかったことができるようになった時、成長をものすごく実感できます。

そして、成長を実感したとき、もうなんか言葉じゃ表せないほどに嬉しいです。

 

そう、シューティングは人生なのです

 

 

作品紹介

みなさんそろそろシューティングがやってみたくなりましたよね!!!!!ね!!!!

 

ということでおすすめのシューティング作品をいくつか紹介します!!

基本的に現行機で遊べる作品メインで紹介しています。というか大体steam

 

 

1. 怒首領蜂大復活(ケイブ)

ゲームセンターミカドによる配信

www.youtube.com

 

 

この作品の最大の特徴として、

 

自機が強すぎる

 

ということがあります。

まず、このゲームにパワーアップの概念がなく、最初っから最大パワーです。



見てくださいこれ、この画面の半分以上を自機の弾で覆っていますが、実はしょっぱなからこれなんですよね

 

それに加えて、このゲームにはハイパーというシステムがあります。敵を倒したりなどするとハイパーゲージというものがたまっていき、満タンになると一定時間ハイパー状態になります。

ハイパー状態中の特徴として

・敵の攻撃が激しくなる

・めっちゃ攻撃力が上がる

ショットで敵弾が消せる

これがマジで強い。すごく強い。

 

と、これだけでも強いのですが、さらに強い点がありまして

オートボム搭載

やばいね、

(ボムとは、一定時間の画面全体攻撃・弾消し・無敵、になる消費型のアイテムです。)

しかも、オートボムが発動してもボム消費数1です。

つまり、適当にプレイしても1プレイで15~30回くらい被弾できます。

そんなこともあり、ものすごく気軽にプレー出来て初心者にめちゃくちゃおすすめです。

 

 

 

Q. ってことはめちゃくちゃ簡単でつまらないゲームじゃないの?

 

 

A. おっ、そうだな

 

と、敵も強いです。(それを差し引いても自機が強いですが...)

簡単すぎるというわけじゃなく、しっかりと手ごたえがあるゲームとなっています。

 

そしてこのゲームは、特定条件を満たしてクリアすると、難易度が大幅に上昇した2週目を続けて遊べます。正直2週目はマジでむずいです。まだまだクリアできそうにない...

 

ということで、初心者が気軽にできる上に、上級者でも楽しめる怒首領蜂大復活でした!!

store.steampowered.com

 

 

 

2. 虫姫さま(ケイブ)

同じくゲームセンターミカドによる配信

www.youtube.com

 

このゲームは先ほどの怒首領蜂大復活と同じケイブさんによるシューティングです。

しかし、先ほどの大復活のように自機がすごく強い!!!!とかはありません。結構ド直球な弾幕シューティングだと思ってます。

 

そして、ゲームモードが三種類あって

・オリジナル:弾数少なめ、弾速早め

・マニアック:弾数多め、弾速遅め(いわゆる弾幕シュー)

・ウルトラ:弾数超多め、まじやばい

となってます。

同じボスの同じ攻撃形態での比較(上からオリジナル・マニアック・ウルトラ)

 

このゲームはシンプルなルールで、とにかく「弾を避けて敵を倒す」ことに集中できます。

また、これは虫姫さまに限らず弾幕シュー全般に言えることですが、見た目よりも当たり判定は相当小さいです。その中でも虫姫さまは特に小さいイメージです。

そのため、「当たったと思ったら生きてる」「なんかよけれた」みたいなことがよく起きます。楽しいよ!

 

store.steampowered.com

 

 

 

3. 斑鳩(トレジャー)

あまりにも嬉しすぎたから初1ccの時の動画載せます

youtu.be

 

このゲームは、他のシューティングに比べてパズル要素的なものがものすごく強いです。

 

簡単にルールを説明すると

・自機/敵は白と黒の属性がある

・自機は好きなタイミングで属性を変更できる

・敵は(一部をのぞいて)属性が決まっている

 

・反対属性に対する攻撃は同属性に対する攻撃の2倍の攻撃力

・同属性の敵を倒すと打ち返し弾が飛んでくる(難易度によって異なる)

・同属性の敵が放つ弾は吸収できる(=ミスにならない)

・吸収した弾は一定以上溜めるとホーミング弾を打つことができる

・反対属性の敵が放つ弾に当たるとミス

 

みたいな感じです

 

また、スコアのシステムもちょっと特殊です。メインの得点源としてチェーンボーナスがあります。これは同じ属性の敵を3連続で倒し続けることでどんどんボーナスが上がっていくというものです。

例) OK 黒黒黒 白白白 白白白 黒黒黒 (4chain)

      NG 黒黒黒 白白黒 (1chainで途切れる)

 

と、ここまで書くと複雑なゲームだなぁと感じるかもしれません.....が、実際にプレイしてみると意外とすんなり入ってきます。

じゃあ簡単なのかというと....

 

 

 

斑鳩はとんでもなく難しいです。

 

 

めちゃくちゃに難しいです。

 

でも、斑鳩はとにかく練習が結果に出るゲームです。

斑鳩はパターン要素が相当強いです。何も考えずに特攻してたらすぐ死ぬけど、ちょっとパターン覚えたらすんなり抜けれるようになった... みたいなことがよく起きます。

前半にシューティングの魅力についていくつか語りましたが、斑鳩はその中でも成長をとても実感できるゲームだと思っています。

 

個人的に、ワンコインクリア(ノーコンティニュー)できたときの喜びが一番高かったシューティングです

 

マジでオススメです。

store.steampowered.com

 



駄文:9月13日の話をさせてくれ

9月13日、それは Nintendo Direct の放送が行われた日でした。

 

 

 

と、その前に、

 

さかのぼること8ヶ月....

4月2,3日に、シュー大祭というシューティング関係のイベントがありました。

その中の Live Wire さんというメーカーの枠において、

超伝説級ってなんだろうなとその時は思いつつ、ワクワクしながら気長に待つことにしました。

(ちなみに Live Wire さんは、switch向けに怒首領蜂大復活虫姫さまを移植したメーカーさんです。PC持ってない方などはぜひswitchで!)

 

時は進み... 6月19日

 

 

????!!!!!!!!!!!!!

おいおいおいおいおいおいおいおい!!!!!!!!

これは期待しちゃっていいんじゃないの!!!!!!!!!

 

 

そして、9月13日

私はメトロイドプライム4の情報が出ないかな~~~と楽しみにしていました(出なかった)

 

楽しみながら放送を見ていました....

 

 

そして、

「ピックアップタイトルもめちゃくちゃ面白そうなんだよな~~」

と気を抜いていました。

 

 

は?????????!?!!!!!?!?!?!?!?!?!?!?!

はああぁっぁぁぁぁぁぁぁll!!!!!!!!?????!?!?!?!???!

ほへぇえええええええええええ??????????????????

 

 

と、ここまで酷くはありませんが、マジで変な声が出ました。

なぜかというと、マジでこのレイディアントシルバーガンは移植してほしいなと心から願っていた作品だったからです....

 

レイディアントシルバーガンとは、1998年に稼働開始した、アーケードのシューティングゲームです。また、同じく1998年にセガサターンに、2011年にXbox 360に移植されていますが、現行機向けの移植は行われていませんでした。(実はXbox版はOneでも動きますが...)

 

そしてレイディアントシルバーガン斑鳩の前作に当たるゲームです。私が斑鳩にドはまりしていたころに、レイディアントシルバーガンもやりたくなっていたのですが、残念なことに手元のハードでは動かせるものがありませんでした。

 

そんな中、突然ニンダイで発表されてあまりに驚きました....

驚く人の様子

store-jp.nintendo.com

そんなわけで皆さん買いましょう。

 

 

さいごに

いかがでしたでしょうか。これを見て少しでもシューティングに興味を持っていただけたら幸いです。

ちなみに今回紹介した作品の内steamで販売されている3作品はセールめちゃくちゃしているので、「ちょっと高いなぁ」って人はセールの時に買いましょう。ウィンターセールくるし。

 

まだまだ紹介できていないシューティングはたくさんあるので、他にも知りたい方がいたらぜひ私(twitter:kazujdDR8823)に声かけてください!!!!喜んで沼にはめますね!

 

 

adventar.org

明日は ろく さんによる 大学に入ってから出会ったやべーやつらで打線組む。んで、ぬま先輩と戦う です!!!!

お楽しみに!!!!

 

 

ということで、ここまでご覧いただきありがとうございました!!!

 

 

ちなみに

Sound Create は2Dシューティングを強く応援します by 部長(私)

「2Dシューティングはいいぞ、2Dシューティングをやれ」by きーちゃん先輩(前部長)

 

 

 

 

ちょい宣伝

kazu8823.hatenablog.jp

part1の17日にまじめな技術系記事も書いていますので、そちらももしよければご覧ください。

 

kazu8823.hatenablog.jp

そしてpart2の20日にもまじめなラーメン系技術記事(?)も書いていますので、こちらもぜひ!

二郎

この記事は FUN Part2 Advent Calendar 202220日目の記事になります。

adventar.org

 

昨日は石田先生による Eclipseを使いたくない人のための無理やりJARファイル作成術 for FUN情報処理演習I でした!!!

qiita.com

 

Eclipse使わないって手があったのか.....去年知りたかった....

 

 

 

二郎系とは

「二郎系」とは、ラーメン店「ラーメン二郎」を元祖にして典型・模範・標準とするラーメンのスタイル・系統ならびに二郎系のラーメンや二郎系のラーメンを出す店のことを意味する表現。(Webilo辞書より)

www.weblio.jp

 

「二郎系ラーメン」~ 食べたことはないけれど、名前は知っている。そんな人も多いのではないでしょうか。

二郎系のラーメンの特徴として

・極太麺

・たくさんのモヤシ等の野菜

・ニンニク

・背油

などなど....

とにかくこれが美味いんですよ。最近の外食の9割は二郎になるほどにドはまりしてます。

そんな二郎の魅力を伝えたいと思い、この記事を書きます。

 

 

二郎は完全食

完全食(かんぜんしょく)とは、健康を維持するために必要な栄養をすべて含んだ食品、あるいは食事である。 (wikipediaより)

ja.wikipedia.org

 

皆さん知っていましたか?二郎は完全食です

だって考えてみてください

 

・エネルギーたっぷり(=健康)

・野菜たっぷり(=健康)

・満足感たっぷり(=精神的健康)

 

もう誰がどう見ても完全食ですね。すばらしい。

 

 

 

二郎は健康にいい

(こいつ写真下手だな)

 

見てください、モヤシたっぷりですよね。野菜がこんだけありゃもうそりゃ健康になるに決まってます。

加えてニンニクもたっぷり。

 

 

A. ニンニクは体にいい

B. 二郎にはニンニクが入っている

 

結論. 二郎は体にいい

 

 

素晴らしい三段論法ですね

 

ちなみに私の友達は、

「二郎って野菜たっぷり入ってるじゃん、しかも醤油ベースってことは、つまり二郎は筑前煮」

と言ってます。そうです、二郎は実質筑前煮です。

 

 

 

二郎を食べること、それは一種の行為である

何言ってんだコイツ、って思ったかもしれません。確かに最初はそう思うでしょう。

 

ほら、こっちへおいでよ......

 

 

二郎を食べるという行為は、ただの食事ではありません。

ただラーメンを食べているのとは訳が違います。二郎を食しているのです。

「二郎を食べる」で一つの動詞です。下一段活用です

 

・二郎を食べる(終止形)

・二郎を食べないと死ぬ(未然形)

・私は偉いので二郎を食べます(連用形)

・二郎を食べるとき生を実感する(連体形)

・二郎を食べればすべて解決(仮定形)

・二郎を食べろ(命令形)

 

 

 

 

実は....

 

 

 

店舗紹介

ここまで読んでくれた皆さんなら、頭の中は

こうなっているに違いないですね!!!!

ということで函館(+近郊)で食べれる二郎系ラーメン3つ紹介します!!!

 

 

麺屋 いっ徳

 

いやああうまそうだねえええええ

 

ramen-restaurant-127.business.site

 

麵屋いっ徳は、田家町にあるラーメン屋で二郎に限らず様々なラーメンなどが食べられるラーメン屋さんです。

 

(参考に...)

hakodatedayo.blog.jp

 

実は私が初めて食べた二郎系が、いっ徳の二郎風極太いっ徳麺です。まじで初めて食べた時衝撃でしたね。やばかった。そんなこともあり一時期週1で通ってました笑

 

というか今食いたくなってる、やばい飯テロ食らってる

 

個人的にここの刻みニンニクがめちゃくちゃ好きです。特に汁を最後まで飲んだ時の、最後に刻みニンニクがいっぺんに来て、味から風味から食感まで何もかも楽しめるあの瞬間が最高すぎます。

 

最高

 

 

カルドカルチョ

っひいいっやっほおおおいいいいいいいい

 

カルドカルチョ七重浜にあるイタリアンレストランです。

 

もう一度言います、イタリアンレストランです。

 

 

いや、マジで、イタリアンレストランだった。びっくりよ、ラーメン出てくる雰囲気じゃなかったもん。

おしゃれなレストランで二郎を食うというなかなか味わえない体験ができます。

 

ちなみに、二郎系だけではなく家系も提供しているらしいです...今度行きます

hakodatedayo.blog.jp

 

味は結構さっぱり目(他の二郎比)だったのですが、様々なバリエーションやトッピングがあったため、自由度が高そうです...

 

というかマジで2日前に初めて行った感じなので、まだいろいろと試せてないです...

とりあえず、食べている途中に後ろの人が注文していた辛JIROがめちゃくちゃ気になってます。

 

最高

 

麺TEPPEN

興奮してきた ハァハァ

 

麺TEPPENは、港のポールスターのすぐ近くにあるラーメン屋さんです。

 

hakodatedayo.blog.jp

hakodatedayo.blog.jp

 

このお店の面白いところは、

・昼は普通のラーメン店

・夜は二郎系専門店

なんです。なかなかタイミングが合わなくて昼の方は行けていませんが、↑に貼った記事読んだらめちゃくちゃ行きたくなってます。今度行くわ。

 

二郎系専門店として営業している夜のメニューは

・二郎の小(150g)

・二郎の中(250g)

・二郎の大(350g)

のみです。アツいね。

 

ここの二郎は味が濃い目でジャンキーな感じがしてマジで最高です。

 

最高

 

 

 

まとめ

二郎はいいぞ

 

 

 

 

adventar.org

明日は 吾妻ちとせ さんによる ???? です!!!!

お楽しみに!!!!

 

 

kazu8823.hatenablog.jp

ちなみにpart1の17日にまじめな技術系記事も書いていますので、そちらももしよければご覧ください。

 

 

adventar.org

そしてpart3の22日にはシューティングはいいぞおじさんをする記事を書く予定です。

ぜひそちらも見ていただけると幸いです!

【ハード音源】ファミコン風音源をマイコンで作ろうとした話【欲しい】

この記事は FUN AdventCalendar 2022 の17日目の記事になります。

adventar.org

 

昨日はかげろんさんによる プログラミング教育とTAをやった気がする でした!

note.com

私も小学生~高校生にプログラミングを教える機会が時々あった身として、答えをそのまま教えないように、でも理解につながるくらいは教えつつ...と、どこまで教えるのか悩んでいました。難しいです...

TAは...一度やってみようと思った時はあったのですが、移動時間的にきついです...笑笑

 

 

自己紹介+はじめに

こんにちは、kazu8823と申します(twitter:@kazujdDR8823)

知能システムコース3年、好きな言語はC・C#、最近はプロジェクトでドアを作ってました。

 

こんなことや、

 

そんなことや、

 

あんなことや、

 

こんなことを、

 

しています。


よろしくお願いします。

 

 

 

事の発端

 

 

ということで作ります

 

 

 YM2151とは?
ヤマハ(当時は日本楽器製造)が1983年に開発したFM音源IC
様々なアーケードゲームの基板に使用されている
ファンタジーゾーン
アレックスキッド
沙羅曼蛇
グラディウスII -GOFERの野望-
ストリートファイターII
バトルガレッガ

 

事の発端2

もともとアドカレでは別のネタを書く予定でした。

それは「ファミコンカセットを作ろう!」というやつです。

 

ですが、プロジェクトが忙しくアドカレの準備に手を付けないでいたら、いざ準備を始めた時には必要な部品の発注が間に合わないことが確定しました....

 

しかしファミコンもあきらめきれないので、いっそファミコン音源作っちゃえとなりました。

(FM音源よりファミコン音源の方が楽そうなのもあったりなかったり...)

 

ということで作ります

 

 

仕様

製作に入る前に、具体的な音源の仕様を決めます。

なるべくファミコン音源の仕様に寄せつつ、時間がかかりそうな要素は省いて、簡易的なものにします。

 

矩形波

・2チャンネル

・デューティー比は12.5%、25%、50%の三種類 (デューティー比を変えるとちょっと音が変わります。)

・音量は16段階

 

三角波

・1チャンネル

・綺麗な三角波ではなく、16段階にカクカクしている

・音量変更不可

 

ノイズ

・1チャンネル

・長周期ノイズと短周期ノイズの二種類

・音量は16段階

・周波数は16段階

 

の計4チャンネルです。

DPCMはあきらめました...

 

矩形波三角波に関しては、ファミコンと違い周波数指定ではなく、音階で指定する形にしました。

それと時間がなかったのでエンベローブは実装してないです...

 

↓参考にさせていただきました

wikiwiki.jp

 

 

 ファミコン音源がどのようなものなのかはこの動画のシリーズがわかりやすい+具体例付きで面白いです。興味ある方はぜひご覧ください。

youtu.be

 

 

使うマイコン

今回使用するマイコンはこちらです!!!

 



 

私の愛するdspic33fj64gp802ちゃんです!!!!

akizukidenshi.com

 

秋月で1個870円で販売中です!!

みんな買おうね!!!!超オススメ!!!!

 

picマイコンの中ではちょっと値段が高めなのですが、

・最大クロック80MHz

・プログラムメモリ:64kB

・データメモリ:16kB

・GPIO:21ピン

・ADC:10チャンネル

・I2C:1チャンネル

・SPI:2チャンネル

・タイマ:5チャンネル

 

 超おおざっぱな用語解説
・クロック:数字がでかいほど処理が速い
・プログラムメモリ:プログラムが格納されるメモリ。でかいほどめっちゃプログラム書ける
・データメモリ:変数の値とかが格納されるメモリ。でかいほどめっちゃ変数宣言できる
・GPIO:General Purpose Input Output 入出力に使えるピンのこと
・ADC:Analog to Digital Converter アナログ値を読み取る機能
・I2C, SPI:マイコンやICなどが通信する規格
・タイマ:時間測ったり、定期的な処理をするのに使ったりするやつ

 

 

そして!!!

DAC:4チャンネル!!!!!

(差動出力なので、実質2系統)

 

 超おおざっぱな用語解説
DACDigital to Analog Converter アナログ値を出力する機能。ADCの逆

 

PWMじゃなく、ガチのアナログ出力がついているんです!!!!

しかもオーディオ向けにいろいろとついていて、何とハードウェア側で256倍のオーバーサンプリングをしてくれるので、エイリアシングノイズを意識せずとも減らせます!!!

神だね

 

 

ほら皆さん欲しくなってきたでしょう~

ここから買えますよ~

akizukidenshi.com

 

ただし、電源電圧は3.0~3.6Vです。この点だけご注意ください...

 

そして、このマイコンは冒頭の自己紹介の時に紹介した、エアギターマシンの内部にも使用しています。

 

入力系は全部arduinoに任せて、音の生成処理はすべてdspic33fj64gp802で行っています。

 

というか今回の記事は書く時間無かったんで、これのリメイクみたいなもんです...

 

それでは作っていきましょう!!!

 

 開発環境は

・MPLAB X IDE v5.45

・XC16 v1.70

です

 

回路作成

回路作成(というかプログラムも)するのにあたってめちゃくちゃ参考にさせていただいたサイトをご紹介します。

www.picfun.com

はい、picマイコンユーザーおなじみのサイトです。本当にありがとうございます!!

いつも参考にさせていただいています。



ということで、ブレッドボード上に回路を製作しました。上記のサイトにある回路図から必要な部分(電源回路・オーディオ出力・水晶発振子)だけ取り出し、入力としてスイッチ6つとLED3つ(後でもう一つ増えます)を加えています。

 

↓とりあえずのLチカ

 

 

こんな感じです

それでは実際に音を鳴らしてみましょう

 

1. とりあえず音を出す

まずは正弦波を出してみましょう

 

今回は音の波形の作り方としてウェーブテーブル方式を使います。

 

 ウェーブテーブルとは

trivisionstudio.com

 

具体的にはこんな感じに、波形一周期分を任意の数で分割して配列に入れておきます。

今回は256個に分割しています。

// 正弦波 サンプル数:256
const signed int sinWave[] = {
    0, 804, 1607, 2410, 3211, 4011, 4807, 5601, 6392, 7179, 
    7961, 8739, 9511, 10278, 11038, 11792, 12539, 13278, 14009, 14732, 
    15446, 16150, 16845, 17530, 18204, 18867, 19519, 20159, 20787, 21402, 
    22004, 22594, 23169, 23731, 24278, 24811, 25329, 25831, 26318, 26789, 
    27244, 27683, 28105, 28510, 28897, 29268, 29621, 29955, 30272, 30571, 
    30851, 31113, 31356, 31580, 31785, 31970, 32137, 32284, 32412, 32520, 
    32609, 32678, 32727, 32757, 32766, 32757, 32727, 32678, 32609, 32520, 
    32412, 32284, 32137, 31970, 31785, 31580, 31356, 31113, 30851, 30571, 
    30272, 29955, 29621, 29268, 28897, 28510, 28105, 27683, 27244, 26789, 
    26318, 25831, 25329, 24811, 24278, 23731, 23169, 22594, 22004, 21402, 
    20787, 20159, 19519, 18867, 18204, 17530, 16845, 16150, 15446, 14732, 
    14009, 13278, 12539, 11792, 11038, 10278, 9511, 8739, 7961, 7179, 
    6392, 5601, 4807, 4011, 3211, 2410, 1607, 804,   0, -804, 
    -1607, -2410, -3211, -4011, -4807, -5601, -6392, -7179, -7961, -8739, 
    -9511, -10278, -11038, -11792, -12539, -13278, -14009, -14732, -15446, -16150, 
    -16845, -17530, -18204, -18867, -19519, -20159, -20787, -21402, -22004, -22594, 
    -23169, -23731, -24278, -24811, -25329, -25831, -26318, -26789, -27244, -27683, 
    -28105, -28510, -28897, -29268, -29621, -29955, -30272, -30571, -30851, -31113, 
    -31356, -31580, -31785, -31970, -32137, -32284, -32412, -32520, -32609, -32678, 
    -32727, -32757, -32767, -32757, -32727, -32678, -32609, -32520, -32412, -32284, 
    -32137, -31970, -31785, -31580, -31356, -31113, -30851, -30571, -30272, -29955, 
    -29621, -29268, -28897, -28510, -28105, -27683, -27244, -26789, -26318, -25831, 
    -25329, -24811, -24278, -23731, -23169, -22594, -22004, -21402, -20787, -20159, 
    -19519, -18867, -18204, -17530, -16845, -16150, -15446, -14732, -14009, -13278, 
    -12539, -11792, -11038, -10278, -9511, -8739, -7961, -7179, -6392, -5601, 
    -4807, -4011, -3211, -2410, -1607, -804
};

そして音を鳴らすときには、これを順番に参照して鳴らします。

例えば、1秒間に256階音量の更新が行われるとしたら、

・更新のたびに参照する場所を(要素1, 要素2, 要素3, ...)と読むと -> 1Hzに

・更新のたびに参照する場所を(要素1, 要素3, 要素5, ...)と読むと -> 2Hzに

・更新のたびに参照する場所を(要素1, 要素5, 要素9, ...)と読むと -> 4Hzに

といった感じに、何個飛ばして読むかによって、任意の周波数の音にすることができます。

 

 この動画の1分あたりから始まる説明がめちゃくちゃわかりやすいです。参考にどうぞ...

 

ウェーブテーブル方式を採用した理由として、とにかく処理負荷が軽いことがあります。マイコンのような計算資源が限られている環境では、三角関数は相当重い処理になってしまうため、ただ配列から値を引っ張ってくるだけで波形を作れるこの方式を採用しました。

 

それでは実装していきます。

 

 

....と、プログラムを乗せようと思ったのですが、あまりにも長いので要点だけのせます...

 

全文はこちらに... 

www.dropbox.com

 

// DAC割り込み処理関数
void __attribute__((interrupt, no_auto_psv)) _DAC1LInterrupt(void){
    IFS4bits.DAC1LIF = 0;   // 割り込みフラグリセット
    
    signed int out = 0;
    
    if(flag == 1){
        out = sinWave[step++];
        //out = sawWave[step++];
        LED1 = 1;
    }else{
        LED1 = 0;
    }
    
    // 出力
    DAC1LDAT = out;
}

 

音を鳴らしている部分の関数です。48000Hzの周期で呼ばれます。

 

・sinWaveは少し上に載せたコードで初期化しています

(・sawWaveには同様の方法でのこぎり波を入れています)

・flag は スイッチ1でON/OFFしています。

・DAC1LDAT に格納した値がそのままアナログ出力されます。

 

設定はいろいろとありますが、音を鳴らす部分の処理はたったこれだけで完成します!

 

 

そして、実際に音を鳴らしている様子を直撮りしようとしたのですが、聞こえにくすぎたため、ライン撮りで録音しています。

 

正弦波ライン撮り

 

ちなみにライン撮りした波形はこんな感じで、結構綺麗に出力できています。

 

 

ついでにのこぎり波も作ってみました

 

(スピーカーしょぼい&無理やり音量上げてるので、音めちゃくちゃ悪いです...スイマセン...)

 

のこぎり波ライン撮り(ちょっと音量注意)

 

 

 

2. 和音にする

単音だけではさみしいので和音にしてみましょう

和音にする方法は単純で、ただ足し算するだけです。

 

プログラム全文はこちら

www.dropbox.com

// DAC割り込み処理関数
void __attribute__((interrupt, no_auto_psv)) _DAC1LInterrupt(void){
    IFS4bits.DAC1LIF = 0;   // 割り込みフラグリセット
    
    // 出力
    signed int out = 0;
    
    // 1音目
    if(flag1 == 1){
        out += sinWave[step1] >> 2;
        step1 += 1;
        LED1 = 1;
    }else{
        LED1 = 0;
    }
    
    // 2音目
    if(flag2 == 1){
        out += sinWave[step2] >> 2;
        step2 += 2;
        LED2 = 1;
    }else{
        LED2 = 0;
    }
    
    // 3音目
    if(flag3 == 1){
        out += sinWave[step3] >> 2;
        step3 += 3;
        LED3 = 1;
    }else{
        LED3 = 0;
    }
    
    // 出力
    DAC1LDAT = out;
}

 

一点だけ注意点として、DAC1LDATは符号あり16bitのため、-32768~32767の範囲に収める必要があります。

sinWaveは振幅32768としてデータを作っていたため、そのままでは簡単にオーバーフローしてしまいます。そのためそれぞれの音で1/4にしています。

 

オーバーフローしたときの音もそれはそれで面白い音が出ます...

 

音小さめです

 

音量が小さいのでわかりにくいのですが、しっかりと和音が出せています。

 

ライン撮り撮るの忘れた...

 

3. ちゃんとした音階にする

さっきの和音は音程もクソもないものだったので、次はちゃんと音階にしましょう。

 

音階ごとの周波数を元に、1周期ごとに加算する値をしっかり計算します。

tomari.org

 

具体的には

(ウェーブテーブルの数 / (サンプリング周波数 / 音の周波数)) * 256

となります。今回の場合

(256 / (48000 / 音の周波数)) * 256

です。

 

ちなみに一番後ろの「* 256」はなぜあるのかというと、処理負荷を軽減するためにあります。

何個飛ばしで値を読むかをただ計算するだけだと、少数がたくさん出てしまい、かといって切り捨てたりしてしまうと音痴な音になってしまいます。

じゃあ少数で計算すればいいじゃんという話なのですが、基本的に整数演算より少数演算のほうが処理が重いです。なので、できる限り整数演算のみで終わらしたいところです。

そのために、256倍(8ビットシフトで処理できる)した状態で全部の計算をしています。

逆に配列を参照するときは sinWave[step1 >> 8] のように256で割ってあげることにより、処理負荷が高くならないようにしつつもある程度の精度を保ちながら計算できるようになります。

 

プログラム全文はこちら

www.dropbox.com

 

// DAC割り込み処理関数
void __attribute__((interrupt, no_auto_psv)) _DAC1LInterrupt(void){
    IFS4bits.DAC1LIF = 0;   // 割り込みフラグリセット
    
    // 出力
    signed int out = 0;
    
    // stepに加算する値の計算式
    // (ウェーブテーブルの数 / (サンプリング周波数 / 音の周波数)) * 256
    // (256 / (48000 / 音の周波数)) * 256
    
    // 1音目
    if(flag1 == 1){
        out += sinWave[step1 >> 8] >> 2;
        step1 += 714;   // ド 523.251Hz
        LED1 = 1;
    }else{
        LED1 = 0;
    }
    
    // 2音目
    if(flag2 == 1){
        out += sinWave[step2 >> 8] >> 2;
        step2 += 900;   // ミ 659.255Hz
        LED2 = 1;
    }else{
        LED2 = 0;
    }
    
    // 3音目
    if(flag3 == 1){
        out += sinWave[step3 >> 8] >> 2;
        step3 += 1070;  // ソ 783.991Hz
        LED3 = 1;
    }else{
        LED3 = 0;
    }
    
    // 出力
    DAC1LDAT = out;
}

 

一つ前との違いは、stepに加算する値を変更しただけです。

 

 

無理やり音量上げているのでノイズ酷いです....

 

ドミソの和音が作れました

 

今回は音階に対応する値を直接書いていましたが、実際に使用する際は下の写真のように、音程ごとに配列に入れて格納すると使いやすいです。

 

4. 矩形波

ここまではとりあえず音を鳴らしてみよう的なものでしたが、ここからが本番みたいなもんです。ファミコン風の音を鳴らします。

まずは矩形波を鳴らしてみましょう。

 

まずは先ほどと同様にウェーブテーブルを作ります。

 

相当長いので画像で...

 

・square12_5Wave -> デューティー比12.5%

・square25Wave -> デューティー比25%

・square50Wave -> デューティー比50%

となっています

 

プログラム全文はこちら

www.dropbox.com

 

// DAC割り込み処理関数
void __attribute__((interrupt, no_auto_psv)) _DAC1LInterrupt(void){
    IFS4bits.DAC1LIF = 0;   // 割り込みフラグリセット
    
    // 出力
    signed int out = 0;
    
    // stepに加算する値の計算式
    // (ウェーブテーブルの数 / (サンプリング周波数 / 音の周波数)) * 256
    // (256 / (48000 / 音の周波数)) * 256
    
    // 1音目
    if(flag1 == 1){
        out += square12_5Wave[step1 >> 8] >> 2;
        step1 += 714;   // ド 523.251Hz
        LED1 = 1;
    }else{
        LED1 = 0;
    }
    
    // 2音目
    if(flag2 == 1){
        out += square25Wave[step2 >> 8] >> 2;
        step2 += 714;
        //step2 += 900;   // ミ 659.255Hz
        LED2 = 1;
    }else{
        LED2 = 0;
    }
    
    // 3音目
    if(flag3 == 1){
        out += square50Wave[step3 >> 8] >> 2;
        step3 += 714;
        //step3 += 1070;  // ソ 783.991Hz
        LED3 = 1;
    }else{
        LED3 = 0;
    }
    
    // 出力
    DAC1LDAT = out;
}

 

ひとつ前との違いは、使うテーブルを矩形波の物に変更しただけです

 

 

矩形波ライン撮り(音量注意です)

duty比 12.5->25->50->同時 の順番です

 

矩形波が作れました。それっぽいものができてきていますね!

 

5. 三角波

続いて三角波を鳴らしてみましょう

仕様の話の時にも少し触れましたが、ファミコン三角波は純粋な三角波ではありません。

出力が16段階になっているため、カクカクとした三角波になっています。

ファミコン三角波イメージ

 

このカクカクとした部分がファミコン三角波特有の音を作っています。

 

まずはウェーブテーブルを作ります

 

 

プログラム全文はこちら

www.dropbox.com

 

// DAC割り込み処理関数
void __attribute__((interrupt, no_auto_psv)) _DAC1LInterrupt(void){
    IFS4bits.DAC1LIF = 0;   // 割り込みフラグリセット
    
    // 出力
    signed int out = 0;
    
    // stepに加算する値の計算式
    // (ウェーブテーブルの数 / (サンプリング周波数 / 音の周波数)) * 256
    // (256 / (48000 / 音の周波数)) * 256
    
    // 1音目
    if(flag1 == 1){
        out += tri16Wave[step1 >> 8] >> 2;
        step1 += 714;   // ド 523.251Hz
        LED1 = 1;
    }else{
        LED1 = 0;
    }
    
    // 2音目
    if(flag2 == 1){
        out += tri16Wave[step2 >> 8] >> 2;
        step2 += 900;   // ミ 659.255Hz
        LED2 = 1;
    }else{
        LED2 = 0;
    }
    
    // 3音目
    if(flag3 == 1){
        out += tri16Wave[step3 >> 8] >> 2;
        step3 += 1070;  // ソ 783.991Hz
        LED3 = 1;
    }else{
        LED3 = 0;
    }
    
    // 出力
    DAC1LDAT = out;
}

 

ひとつ前との違いは、使うテーブルを三角波の物に変更しただけです

 

 

三角波ライン撮り

 

 

あれっ? ファミコンっぽさ薄いぞ....

 

ちょっと波形を見てみましょう

 

 

うん、16段階が完全に消えてますねこれ。なんかただざらざらしてる感じの波形になってますね...

 

なぜだ....

 

 

 

 

あっ!!!!!!



オーバーサンプリングされちゃってんじゃん.....

 

 オーバーサンプリングとは?

e-words.jp

 

これはマジでどうしようもないので諦めます...

 

ファミコンだからね!!!!!仕方ないね!!!

 

ということで普通の三角波ができました....

 

6. ノイズ

最後にノイズを鳴らしてみましょう

 

こちらを参考にしています

dic.nicovideo.jp

tyfkda.github.io

 

 

ファミコンのノイズをおおざっぱに説明すると(間違ってたらスイマセン...)

・HIGH,LOWのどちらかが乱数によってランダムに出力される

・乱数の更新周期は周波数(16段階)によって変わる

・長周期ノイズでは、32767回で1ループ

・短周期ノイズでは、93回で1ループ

 

らしいです。よくわからん

 

最初は乱数の更新をタイマにやらせるとか考えたんですが、テーブルにしても32kbit(=4KB)なので、ウェーブテーブル(?)にしちゃえ、ってなりました。

ってことでウェーブテーブル(?)にしました。さすがに載せれる長さではないですね...

 

短周期ノイズはこんな感じになります。

要素1の7bit目->要素1の6bit目~~~~要素1の0bit目->要素2の7bit目->~~~~~

という順番に拾っていくように作りました。

// 短周期ノイズ サンプル数:96
const unsigned char noiseS[] = {
    0x00, 0x02, 0x02, 0x0a, 0x02, 0x2a, 0x22, 0x8a, 0x00, 0x28, 0x28, 0x88
};

 

プログラム全文はこちら

www.dropbox.com

 

先ほどと同じ部分は省略しています

// DAC割り込み処理関数
void __attribute__((interrupt, no_auto_psv)) _DAC1LInterrupt(void){
    static unsigned long noiseLFreq = 0;
    static unsigned long noiseSFreq = 0;
    
    IFS4bits.DAC1LIF = 0;   // 割り込みフラグリセット
    
    // 出力
    signed int out = 0;

~~~~~
ちょっと省略
~~~~~

    // ノイズ
    if(flag4 == 1){
        unsigned int tempStep = step4 >> 8;
        
        // 該当のビットが0か1かで出力切り替え
        if((noiseL[tempStep >> 3] & (0x80 >> (tempStep & 0x0007))) == 0){
            out += -8192;
        }else{
            out += 8192;
        }
        step4 = (step4 + noiseFreq[noiseLFreq >> 15]) & 0x7fffff;
        
        noiseLFreq = (noiseLFreq + 1) & 0x07ffff; 
    }
    
    if(flag5 == 1){
        unsigned int tempStep = step5 >> 8;
        
        // 該当のビットが0か1かで出力切り替え
        if((noiseS[tempStep >> 3] & (0x80 >> (tempStep & 0x0007))) == 0){
            out += -8192;
        }else{
            out += 8192;
        }
        step5 += noiseFreq[noiseSFreq >> 15];
        if(step5 >= 24064){ // 24064 = 94 * 256
            step5 -= 24064;
        }
        
        noiseSFreq = (noiseSFreq + 1) & 0x07ffff; 
    }
    
    // 出力
    DAC1LDAT = out;
}

 

 

動画も撮ったのですが、上手く音が取れていなかったためライン撮りのみ載せました。

 

ノイズライン撮り(長周期ノイズ->短周期ノイズ の順番)

周波数16段階を少しづつ変えています。

 

長周期ノイズそれっぽい!!!!!!!

 

そして明らかに短周期ノイズうまくいってないけどとりあえずよし!!!!!!

(原因特定するまでの時間がない...)

 

7. 全部音出してみる

矩形波三角波・ノイズの3種類が出せるようになったので、全部いっぺんに出してみたいと思います!

 

正直この工程は必要ありませんが、「あ~俺これを作ったんだな~」感を味わうためにやってます。

 

プログラム全文はこちら

www.dropbox.com

 

// DAC割り込み処理関数
void __attribute__((interrupt, no_auto_psv)) _DAC1LInterrupt(void){
    
    IFS4bits.DAC1LIF = 0;   // 割り込みフラグリセット
    
    // 出力
    signed int out = 0;
    
    // stepに加算する値の計算式
    // (ウェーブテーブルの数 / (サンプリング周波数 / 音の周波数)) * 256
    // (256 / (48000 / 音の周波数)) * 256
    
    // 1音目
    if(flag1 == 1){
        out += tri16Wave[step1 >> 8] >> 2;
        step1 += 714;   // ド 523.251Hz
        LED1 = 1;
    }else{
        LED1 = 0;
    }
    
    // 2音目
    if(flag2 == 1){
        out += square12_5Wave[step2 >> 8] >> 2;
        step2 += 900;   // ミ 659.255Hz
        LED2 = 1;
    }else{
        LED2 = 0;
    }
    
    // 3音目
    if(flag3 == 1){
        out += square50Wave[step3 >> 8] >> 2;
        step3 += 1070;  // ソ 783.991Hz
        LED3 = 1;
    }else{
        LED3 = 0;
    }
    
    // ノイズ
    if(flag4 == 1){
        unsigned int tempStep = step4 >> 8;
        
        // 該当のビットが0か1かで出力切り替え
        if((noiseL[tempStep >> 3] & (0x80 >> (tempStep & 0x0007))) == 0){
            out += -8192;
        }else{
            out += 8192;
        }
        step4 = (step4 + noiseFreq[5]) & 0x7fffff;
        
    }
    
    // ノイズ
    if(flag5 == 1){
        unsigned int tempStep = step5 >> 8;
        
        // 該当のビットが0か1かで出力切り替え
        if((noiseL[tempStep >> 3] & (0x80 >> (tempStep & 0x0007))) == 0){
            out += -8192;
        }else{
            out += 8192;
        }
        step5 = (step5 + noiseFreq[13]) & 0x7fffff;
    }
    
    // ノイズ
    if(flag6 == 1){
        unsigned int tempStep = step6 >> 8;
        
        // 該当のビットが0か1かで出力切り替え
        if((noiseS[tempStep >> 3] & (0x80 >> (tempStep & 0x0007))) == 0){
            out += -8192;
        }else{
            out += 8192;
        }
        step6 += noiseFreq[15];
        if(step6 >= 24064){ // 24064 = 94 * 256
            step6 -= 24064;
        }
        
    }
    
    // 出力
    DAC1LDAT = out;
}

 

出している音は

三角波(ド)

矩形波12.5%(ミ)

矩形波50%(ソ)

・長周期ノイズ(高い音)

・長周期ノイズ(低い音)

・短周期ノイズ

です

 

動画撮るのミスっていたので、ライン撮りのみです...(音量注意)

 

これで全部の音が作れたので....

 

8. ファミコン風音源製作!!!

今まではボタンで音を鳴らしていましたが、自動で演奏するようにします!

 

シーケンサの機能も持たせることを考えましたが、外部から通信できたほうが応用しやすいと思い、SPI通信で音のデータを送ることにしました。

 

ちなみにデータを送るのに使用しているマイコンはpic18f26k22です。

akizukidenshi.com

 

このマイコンもなかなかに面白くてオススメです!!!!

静電容量を計測するためのモジュールがあったりとめちゃくちゃ面白いです!!!

ぜひ!!!!!

 

 

ということで完成!!!!!!

(右下のちっちゃいブレッドボードが演奏データを送っているマイコンです)

プログラムはこちら!!

www.dropbox.com

 

9. 演奏!!!!

実際に演奏させてみます。

 

スピーカーの箱がティッシュ箱なのは、良い感じの箱がこれしかなかったからです...

 

 

↓ライン撮りver

 

↓こちらを参考にさせていただきました。

www.nicovideo.jp

 

 

 

 

うん...

 

めちゃくちゃよくてビビってる

 

正直ここまでうまくいくと思ってなかったです。もっとボロボロな感じになるかなと思ってました....

 

 

 

10. まとめ!!

久しぶりにマイコンをつかった音ネタができたので楽しかったです!!

 

ただ、記事としては説明省いている部分もたくさんあるので、もし何か質問等あれば私(twitter:@kazujdDR8823)までお願いします!!!

 

みんなもPICマイコン始めよう!!!!楽しいよ!!!!

 

adventar.org

明日は Sumeshi さんによる データベーススペシャリスト大変でした です!

お楽しみに!!!

(私も受験したことありますが、マジで夢にE-R図出てきました。しかも毎日。地獄かよ)

 

 

adventar.org

ちなみにpart2の20日には二郎系ラーメンの話をする記事を

 

adventar.org

part3の22日にはシューティングはいいぞおじさんをする記事を書く予定です。

ぜひそちらも見ていただけると幸いです!

 

 

ここまでご覧いただきありがとうございました!!!!

神ゲー紹介する

この記事は FUN part2 Advent Calendar 2021 の17日目の記事になります。

adventar.org

 

昨日はT-田中さんによる 【令和最新版】研究室を移動した話 でした。

噂で聞いてはいたのですが.... 

一年後には研究室を選ぶことになるので、今の内からしっかりと評判見ておきます...

 

 

 

はじめに

こんにちは、kazu8823と申します(twitter:@kazujdDR8823)

知能システムコース2年、好きな言語はC・C#、好きな分野は組み込み、好きなゲームは音楽ゲーム(弐寺DDRドラマニ)です。

 

さて、私は今までアドカレにてこのような記事を書いてきました。

kazu8823.hatenablog.jp

↑ 2020 Part2

 

kazu8823.hatenablog.jp

↑ 2021 Part1

 

 

一応未来大生ということで(?)技術系の記事(?)を書いていました。

しかし今年は枠を2つ取れたこともあり、せっかくなので技術全く関係ない記事を書いてみたいなと思いました。

 

 

 

 

 

ということで....

 

 

 

 

kazu8823による!俺的神ゲー紹介!!!!

 

 

 

 

 

パチパチパチパチ

 

 

 

 

(この記事は基本的にこんなノリです、戻るなら今)

 

 

 

神ゲー1 数十時間遊べるゲーム1

神ゲー1つ目は、自分の成長を楽しめるとても熱いゲームです!!!

 

 

それは!!!!!

 

 

 

 

Getting Over It with Bennett Foddy(通称壺おじ)

store.steampowered.com

 

(ん?ってなった人へ、こういう記事ですお察しください)

 

 

通常(?)プレイ動画

 

 

 

山を登るだけのゲームですが、めちゃくちゃに奥が深い。

 

簡単にこのゲームを紹介すると

マウスでハンマーを動かして山を登る

ゲームです。ただそれだけ。

 

しかし、最初はハンマーをうまく操れなく、スタート地点すぐそばにある木すら超えることができません。

f:id:kazujdDR8823:20211216233310p:plain

少しづつ少しづつ進みながら(時に戻され)山を登る様は、もはや人生ですね(?)

 

やはりこのゲームにおいて一番楽しいのは、障害物を乗り越えた瞬間です。

散々苦労した場所を初めて超えた時のアドレナリンったらやばいですよ....

 

 

ここからは私の考えなのですが、

壺おじを神ゲーたらしめているのは、シンプルかつ奥が深い操作性だと思っています。

ボタンは一切使わず、マウスを動かすことだけで遊べるというシンプルさは、このゲームを「なんとなく」で遊べることを可能にしています。

例えば、マウスをぐるぐると円を描くように回すだけで前に進めたり、障害物を登れたりします。

 

だからと言って、このゲームは「簡単」ではありません。むしろ超ムズイ。なんてったって操作性が独特すぎる

 

先ほど「マウスでハンマーを動かして」と言いましたが、これがそんなに単純じゃないのです。

設定でマウスカーソルの表示をONにすると、白い円が表示されます。

実はプレイヤーが動かしているのは、ハンマーではなく、この白い円です。ハンマーはこの白い円を追うように動きます。

そして、この白い円は自由に動かせるわけではありません。おじさんを中心にある程度より離れることはできない、逆にある程度より近づくこともできない、という仕様になっています。

この仕様のクセを体で覚えれると、今までとは見違えるようにおじさんを操れるようになります。マジで奥が深い。

 

補足:

もう一つ白い円の特徴があります。

プレイヤーが見ている画面での座標をカメラ座標、ゲーム内での座標をゲーム座標と表記すると、白い円はカメラ座標の影響を受けず、ゲーム座標上で動きます。

これにより何が起きるかというと、落下中に何もマウスを動かさないでいたらハンマーが徐々に上に動きます。

この仕様を理解していると、ショートカットなどがやりやすくなると思います。

 

 

ということで神ゲー1つ目の Getting Over It with Bennett Foddy でした。

 

(Q. 本当に数十時間遊べるの? 

A. 遊べるよ

f:id:kazujdDR8823:20211216002441p:plain

)

 

神ゲー2 数十時間遊べるゲーム2

神ゲー2つ目は、私が一番オススメしたいゲームです!!!!

 

 

それは!!!!!

 

 

 

 

 

Jump King

store.steampowered.com

 

自己べ動画

 

 

塔(?)を登るゲームです。

このゲームは、系統で言ったら壺おじと同じ系統になります。激ムズ系的な。

 

操作に使うキーは

・左

・右

・ジャンプ

 

以上!!!!!めっちゃシンプルですね

 

動きの説明をすると

・左右のキーを押すと歩くことができる

・ジャンプキーは押す長さに応じてジャンプ力が変わる。ジャンプキーを離した瞬間ジャンプ(例外あり)

・ジャンプ力は、押している長さが1f~36fまでの36段階に分かれている

(f → フレーム  今回は1フレーム=1/60秒)

・押してから36f以上たつとその瞬間最大ジャンプ

・ジャンプの瞬間に左右キーを入力しているとその方向にジャンプ。押していないと真上にジャンプ

 

となっています。これだけ見ると、癖が少しあるだけでそんなに難しくないんじゃ?と思うかもしれません。

しかし、

一度ジャンプしたら着地するまで何もできない

という点が難易度をとても上げると同時に、Jump King を神ゲーに仕立て上げています。

そして、このゲームのマップはめちゃくちゃ計算されています。何が起きるかというと、一回ジャンプのミスをしただけで、めちゃくちゃ下に戻されます。心折れる。

 

じゃあ Jump King はただ難しいゲームなのかというとそうじゃありません。

このゲームは自分の成長を感じやすくなる作りになっています。

 

ジャンプの仕様も合わさり、普通に遊んでいるだけで何百回、何千回と下に落とされます。つまり、同じところを何回も通るわけです。

それにより、昔はめちゃくちゃ苦労したところをいつの間にかすんなりと進めるようになるのです。これが楽しい。

 

またもやここからは私の考えなのですが、

壺おじは進めないゲームJump King は戻されるゲーム

だと思っています。

壺おじも戻されるポイントはたくさんありますが、障害物に阻まれてしばらくそこに居続けるという時間の方が多いのではないでしょうか?

壺おじはマウス操作のため、できることが非常に多いです。そのため進めない時は、どのように操作すれば進めるのかを考えながらプレーします。それが超楽しい

では Jump King はというと、ジャンプの方向は場所によって決まっているようなものなので、ジャンプ力の36段階、実際はなんとなくこれくらいという感覚がわかるのでもっと少なくなります。つまりできることは少ないです。しかも、成功すれば進む、失敗すれば落ちます。その結果何度も落とされ、戻ってきてまた落され....と繰り返した末に、成功して進むことができます。それが超楽しい

 

つまり何が言いたいかというと

 

壺おじも Jump King もやろうね!!!!!

 

っていうことです。

 

 

 

それに加えて Jump King では何とステージが3つもあります!!

1つ目も確かに難しいのですが、それをはるかに超える難易度の2面3面もありますので、永遠に遊べますね!!!!!

ただ、正直2,3面はマジでむずすぎて心折れるので、1面だけのプレイでも Jump King を堪能できると思います。

 

 

 

 

ちなみに

私は、壺おじと Jump King でタイムアタックをして遊んでいます(カジュアル)。

壺おじの自己べが5:3.074

Jump King (1面)が5:47.888です

まじでタイムアタック熱いよ!みんなもやろう!!!!!

過去の自分を超えようぜ!!!!!!!!!

 

 

ちなみに2

私と Jump King の出会いは、突然起きました。

f:id:kazujdDR8823:20211216132434p:plain

最初はせっかくギフトしてもらったんだし頑張ってプレイしないとな、と思い渋々やっていたのですが、めちゃくちゃにハマりました。本当にありがとうございます

 

 

ということで神ゲー2つ目の Jump King でした。

 

 

 

(Q. 本当に数十時間遊べるの? 

A. うるせえ

f:id:kazujdDR8823:20211216005834p:plain

)

 

 

神ゲー3 カジュアルに遊べるゲーム1

ここまで2本とも、初クリアまで10時間近くかかってしまうような激ムズ神ゲーを紹介してきました。

そんなわけで、後半はカジュアルに遊べる神ゲーを紹介します。

 

神ゲー3つ目は、疾走感(?)がたまらないレースゲーム(?)です!!!!!

 

 

それは!!!!!

 

 

 

 

 

Cart Racer(通称かごおじ)

store.steampowered.com

 

1-1~1-3までのプレイ動画

 

 

このゲームを簡単に説明すると

おじさんを買い物かごに乗せてゴールに向かう

ゲームです。

????????????????????

 

まずはプレイの様子をご覧ください。

 

 

つまりかごに乗ったおじさんをゴールに運べばクリアです。

バカゲー的な神ゲーですね。

 

このゲームの特徴は何といっても操作が難しい点です!!!!

その代わり難しい面を突破できたときの爽快感がやばい!!!!

 

そして Cart Racer は安い!!!! 定価100円ですが、セール時は大体50円になります!!!気軽に買えるね!!!!!

 

&BGMが良すぎる!!!!かっこいいい!!!!!!

 

 

ただこのゲームに少し不満がありまして....

それは1-2が難しすぎることです。

 

Cart Racer は全部で4x3=12ステージあり、1-1から4-3まで順番にプレイしていきます。一番難しいのは最後の4-3、次に3-3なのですが、3番目に難しいのが1-2ではないかと思っています。

 

f:id:kazujdDR8823:20211216110316p:plain

実際にsteamのグローバル実績データを見てみると、上から

・1-1クリア

・100回挑戦

・1-2クリア

・1-3クリア

・2-1クリア

・2-2クリア

.....

 

となっています。

1-1クリア(61.8%)と1-2クリア(43.1%)の差がでかくないですか?

もちろん、少しだけプレイしてすぐやめる人もいるので、ある程度クリア率に差ができるとは思いますが、それにしても差がでかいです。

1-2で進めなくなりやめてしまうのはめちゃくちゃにもったいないです...できることなら最後までプレイしてほしい... うまくいけば1,2時間くらいで終わるから...

 

 

 

ということで神ゲー3つ目の Cart Racer でした。

 

 

 

神ゲー4 カジュアルに遊べるゲーム2

 

先ほどに引き続き、カジュアルに遊べるゲームを紹介します。

 

神ゲー4つ目は、うまくいった時の爽快感が半端ないゲームです!!!

 

 

それは!!!!!

 

 

 

 

 

International Space Banana

store.steampowered.com

 

このゲームは、

宇宙空間にいるバナナを操作してゴールを目指す

ゲームです。

 

うん......まずはプレイ動画をご覧ください。

 

 

1面プレイ動画

 

 

 

操作方法は

・Aキーで左回転、Dキーで右回転

以上です。シンプルだね!

 

基本的には障害物に触れているときに、バナナを回転させて反作用で進めていきます。

一応、キーを押している間はその方向にほんの少しだけ加速します。

 

本当に操作はこれだけです。その為めちゃくちゃ変な方向にバナナがすっ飛んでいきます。

しかし思い通りに動いた瞬間、想像以上に上手く動いた瞬間のうれしさがハンパないです。

また、全部で8ステージあるのですが、後半のステージになるにつれて、自然にバナナの扱いが上手くなります。成長を感じよう。

 

普段は500円ほどですが、セールになると50円くらいになります。ぜひ!!!!

 

そしてこのゲーム、何とマルチプレイに対応しています!!!!!

しかも Remote Play Together 対応なので、離れた人ともプレイできますね!!!

 

 

ただこのゲームにも一点だけ不満がありまして...

 

エンディングが爆音です

 

ゲーム内に音量設定があり、それを下げて遊んでいたのですが、エンディングだけ音量調節をガン無視してきます。音量を下げて遊ぶ場合はお気を付けください。

 

 

 

ちなみに

このゲームはあるとき突然友達にギフトされました。俺をクソゲーマーみたいに扱ってない???????

 

この神ゲーに出会わせてくれたことに感謝します。

お返しでギフトした Cart Racer 早くプレイしてね!!!!(圧)

 

 

ということで神ゲー4つ目の International Space Banana でした。

 

 

 

おわりに

ということで以上クソゲー紹介でした。

ここまで読んでいただきありがとうございます。みんなもプレイしようね!!!

 

来年は神ゲー(ガチ)紹介にするか...

 

 

 

明日は しゅれぬこ さんによる 「君の思ってるスケールは実際のスケールと違うかもしれない」 です!!

お楽しみに!!!

adventar.org

 

 

 

シューティングにはまってアケコン作った話

この記事は FUN AdventCalendar 2021の13日目の記事になります。

adventar.org

 

昨日はこたさんによる こたのちきちきお一人ハッカソン でした。(です?現在進行形?頑張ってください...)(追記:今見たら終了してました、お疲れさまでした。)

ちなみに私は一日アプリ開発の方に票を入れました。若干の申し訳なさも感じつつ、マジでお疲れ様です。

 

 

自己紹介+はじめに

 

こんにちは、kazu8823と申します(twitter:@kazujdDR8823)

知能システムコース2年、好きな言語はC・C#、好きなゲームは音楽ゲーム(弐寺DDRドラマニ)です。

 

こんなことや、

 

そんなことや、

 

あんなことや、

 

こんなことを、

しています。

 

よろしくお願いします。

 

 

早速本題に入っていきます。

 

先ほど好きなゲームは音楽ゲームだと書いたのですが、実は最近あまりモチベがなく、しばらくプレイしてません。

しかし、代わりに(?)とあるジャンルにはまっています。

 

そう、シューティングです!!!!

 

主に遊んでいるのは、

怒首領蜂大復活

store.steampowered.com

 

虫姫さま

store.steampowered.com

 

斑鳩

store.steampowered.com

 

などです。(シューティング楽しいよ!!!!!やろう!!!!!!)

 

 

そんな私が普段シューティングをプレイするときは、キーボードで操作しています。

 

もちろんキーボード操作だからと言って、何か問題があるなんてことはありません。

 

超楽しい。まじで

 

 

ですが、少しづつある思いが芽生えてきました。

 

 

.....欲しい

.....欲しい

.....欲しい

 

.....欲しい

 

.....欲しい

 

.....欲しい

 

 

.....欲しい

 

 

 

 

 

 

 

 

 

アケコン欲しい!!!!!!!

 

(Q. アケコンって何? A. こういうの)

item.rakuten.co.jp

 

 

 

 

 

 

 

 

そうだ!!!!!!!

 

 

 

 

 

 

 

 

作ろう!!!!!!

 

 

 

 

 

 

 

 

注意

 

先に言っておきますが、この記事長いです。

 

たった今ブラウザバックしたくなった人が気持ちよくブラウザバックできるように、先に結論から言っちゃいますね。

 

 

 

 

 

 

 

 

 

既製品を買え!!

 

(この記事のオチ、ここから下は駄文)

 

 

 

 

 

作りたいもの

 

アケコンの製作に入る前に、どのようなアケコンを作るかを決めましょう。

 

今回は

・ボタン+レバーは静音

  通常のやつうるさいから。ただ通常より値段が高い。

 

・8方向レバー+8ボタン+スタート・セレクト等に4ボタン

 

見た目は気にしない!!!!

  (気にすることができるほどの加工技術無い)

 

基盤はPICを使って自作

  PICが好きだから

  (Q. PICとは? A. マイコンの一種)

  (Q. マイコンとは? A. これ見て https://wa3.i-3-i.info/word15753.html)

 

・天板はアルミ+硬質塩ビ

  硬さを求めてアルミ+冬冷たいから表面は塩ビ、の2層構造

 

・天板以外は木

  加工性・入手性良し+割と強度ある

 

・なるべく改造しやすいように作る

  ボタンの端子に直で半田付けとかはしない

 

見た目は気にしない!!!!

  (大事なことなので二回言いました)

 

 

 

それでは実際の製作に入っていきましょう

 

 

 

 

 

基盤など

(小難しい話が続くので、流し読み推奨)

 

 

使用するマイコンについて

最初はp18f14k50を使おうと思っていたのですが、

akizukidenshi.com

(↑まじオススメ、USB周りの配線とか全部されてるから、ブレッドボードに指すだけで開発できて超楽)

 

14k50はUSBを使うと、GPIO(入出力に使える端子)が12(+1)本しかありません。

 

今回はレバー(=4ボタン)+8ボタン+4ボタン=16ボタンのため、ピン数が足りないです。

 

ということでピン数が多いp18f2550に変更しました。

akizukidenshi.com

 

2550には、(秋月で観測する限り)USBコネクタ付きのボードはなかったため、マイコン・USB周りの部品(水晶発振子、コンデンサ等)を全部そろえて、配線する必要があります。

 

 

ということで回路図はこんな感じです。

f:id:kazujdDR8823:20211205021423p:plain

 

 

スイッチと基盤は、5ピンコネクタ(GND共通、4ボタン分)でつなぐことにします。

 

 

 

主な部品表です

部品名 値段 個数 用途など
PIC18F2550 500 1 マイコン
水晶発振器20MHz 30 1 クロックの生成
積層セラミックコンデンサ15pF 10 2 水晶発振子の負荷容量
セラコン0.1μF 15 1 パスコン
セラコン0.22μF 20 1 VUSB端子につなぐ
セラコン1μF 20 1 USB端子側につけてノイズ軽減
ミニB-USBコネクタDIP化キット 200 1 USB端子
抵抗10kΩ(購入は100単位) 1 8 プルアップ抵抗
XHコネクタ ベース5P 15 4 ボタンと基盤をつなぐ端子
丸ピンICソケット 28P 70 1 マイコンを直でつけないために使用
ユニバーサル基盤 100 1 基盤

 

合計1043円(全部秋月)

 

 

はんだ付け

ということで、実際に基盤を作っていきます

 

まずは部品配置などの設計をします。

 

f:id:kazujdDR8823:20211207004735j:plain

ユニバーサル基盤上で作る場合、基盤の寸法図を印刷して使うと便利でオススメです。

(ただこの写真の紙は半透明にするの忘れたからクソやりにくい)

 

実際に書いたものがこちらです。

f:id:kazujdDR8823:20211207004731j:plain

汚いけど自分がわかればOK!!!!!!!!!!

 

 

 

次ははんだ付け!

 

(とりあえず動画撮ってみたやつ)

 

作業時間:約2時間

f:id:kazujdDR8823:20211207005038j:plainf:id:kazujdDR8823:20211207005057j:plain

 

ということでこんな感じです。

 

ここら辺そんなに書くことないからサクサク行きます

 

 

プログラム

次はマイコンに書き込むプログラムです。

 

 

 

が、結構長いため、別の記事に分割しました。

kazu8823.hatenablog.jp

 

↑の記事はPICがある程度わかっている人向けかつ、割とまじめに書いたやつ、そして長いので、

アケコン作るつもりはない

・PIC?なにそれ?おいしいの?

arduinoで作らせてよ

・この記事長い

という人は読むことをオススメしません。時間の無駄だぞ、よく考えろ。

 

 

 

 

 

 

 

 

 

 

 

ということでプログラムを書きこんだマイコンがこちらになります!!!!!!!!!

(料理番組のように)

f:id:kazujdDR8823:20211207010836j:plain

 

 

 

 

 

ボタン・レバー周り

次にメインと言ってもいいボタンやレバーなどの入力装置周りについてです。

全部三和電子製でそろえています。

 

 

まずは購入した部品です

 

楽天(三和電子ストア)

部品名 値段 個数 用途など
JLF-TPRG-8BYT-SK- 5808 1 静音レバー
OBSFE-30- (4個入り) 1452 2 静音ボタン メインボタン用
OBSFE-24-K 363 4 静音ボタン スタートセレクト等用
JLF-H 583 1 レバーにつなぐ線
LB-35- 187 1 レバーボール
AT-187 (100個入り) 1210 1 ボタンに線を取り付ける用の金具

 

秋月

部品名 値段 個数 用途など
耐熱電子ワイヤー 2m×7色 AWG24 480 1
XHコネクタ ハウジング 5P 10 4 ボタンからの線を基盤につなげるためのコネクタ
XHコネクタ ハウジング用コンタクト(100個入り) 200 1 コネクタ用の金具

 

合計 12864円

 

結構な値段になってしまいましたが、静音のパーツにしているのが主な原因です。

静音じゃないレバーは大体3000円弱、ボタンは1個250円ほどで買えます。

 

 

楽天から届いた時の画像

f:id:kazujdDR8823:20211210230459j:plain

 

レバーやボタンの取り付けは一番最後の作業になるため、先にハーネス作りをします。

(Q. ハーネスとは? A. 線何本かまとめたやつみたいな)

 

 

イメージしにくいと思うので、完成品を先に載せます

f:id:kazujdDR8823:20211210230810j:plain

 

こんなやつです。

 

 

 

はい、わかりにくいですね。

まあ、「なんか線まとめてるんだなぁ」程度の認識でなんも問題ないです。

 

 

とりあえず先ほどの画像の説明をします。

f:id:kazujdDR8823:20211210230810j:plain

・上の部分にあるのが、基盤に刺さるコネクタ

・下の線の先にあるのがリセプタクルという、金属の端子に差し込めるようになるパーツです。

・下の黒以外の線をそれぞれボタンの片方に、黒い線をもう片方にさします。

 

f:id:kazujdDR8823:20211210231613j:plain

そうするとこうなり、GND側(-側)を共通にして端子数を減らしています。

 

 

 

ってことで製作!!!!

 

 

 

作業時間:1時間ちょい

 

(さっきのはんだ付け動画もですが400倍です)

 

 

f:id:kazujdDR8823:20211210234038j:plain

ってことで完成!!!!!!!

 

(ちなみにこの日、後述する木工作業と基板作成をやったあとに作業したため、超きつかった)

 

 

 

 

筐体作成

 

それでは、今までに作ったものたちを納める箱を作ります。

 

 

最初に書いた内容とかぶるところもありますが、筐体は以下のような仕様です

 

・天板はアルミ塩ビ版の二層構造。アルミは強度用。ただアルミだけだと表面冷たいから塩ビも上に。二層構造だから間に紙とか挟める、ってか挟む。

 

・それ以外の部分は木

 

・メンテとかしやすいようにするために、磁石でパカパカ開けれるようにする

 

 

 

まずは購入した部品です

 

部品名 値段 個数 用途など
MDF板300x450x12 470 1
アルミ板200x300x2 1045 1 天板
硬質塩ビ板200x300x2 437 1 天板
超低頭小ねじ(4個入り) 129 1 レバー固定用
六角ナット 5 4 レバー固定用
ワッシャー 4 4 レバー固定用
丸木ねじ(たくさん入ってるやつ) 110 1 天板固定用
超低頭タッピング(たくさんはいってるやつ) 162 1 いろいろ固定用
マグネットキャッチ 173 2 パカパカ開けれるようにするためのやつ

 

合計2735円(全部ホーマック)

 

 

購入した商品の説明+補足

 

アルミ板+塩ビ板+MDF板

f:id:kazujdDR8823:20211211002412j:plain

 

ホーマックに売ってたアルミ板が300x200だったため、カットしなくて済むように筐体も300x200としました。

 

・取り付けるボタンが(確か)板厚MAX3.9ミリまでなので、アルミを2ミリ・塩ビを1ミリにしました。

 

・MDF板はもともと300x450でしたが、ホーマックの木材カットサービスを使って、300x200,60,60,60,60 にしてもらいました。ホーマックマジ神。

 

 

 

 

 

マグネットキャッチ

f:id:kazujdDR8823:20211211004106j:plain

 

・磁石の力でピタッと閉まる棚とかに使われてるアレ

 

 

「でしょうね」って動きする

 

 

 

 

 

ねじ類

f:id:kazujdDR8823:20211211004556j:plain

 

左:天板固定用

右:基盤固定用だったけど、マグネットキャッチ付属のねじが長すぎて木材貫通しそうだったから、基盤だけじゃなくそこにも一部使用

 

 

 

 

 

レバー固定用ねじ等

f:id:kazujdDR8823:20211211004915j:plain

 

左からナット、ワッシャー、ねじ

 

 

一番右の超低頭ねじがマジで頭部分が薄くてびっくりしました。1ミリ無い....

 

f:id:kazujdDR8823:20211211005008j:plain

 

 

 

 

それでは実際の作業に入ります

 

サクサク行きますよ~~~

 

 

 

木材加工

 

切る

f:id:kazujdDR8823:20211211005913j:plain

 

切った

f:id:kazujdDR8823:20211211005823j:plain

 

つける

f:id:kazujdDR8823:20211211005852j:plainf:id:kazujdDR8823:20211211010011j:plain



つけた

f:id:kazujdDR8823:20211211010049j:plain

 

金属

f:id:kazujdDR8823:20211211010221j:plain


磁石

f:id:kazujdDR8823:20211211010250j:plain

 

 

完成~~~~~!!!!!!!

f:id:kazujdDR8823:20211211010321j:plain

 

 

 

 

 

(あんまり書くことない...)

 

 

 

 

天板加工

 

アケコンを作る上で超重要と言ってもいい天板部分です。

 

先に完成品からご覧ください!!!

 

f:id:kazujdDR8823:20211212170310j:plain

左からアルミ・間に挟む紙・硬質塩ビ板

 

 

いやあぁ、いいですねぇ。綺麗ですねぇ。

 

 

 

 

 

 

だって全部自分でやってないからねえ

 

 

 

はい、ということで、天板部分は知り合いの方にお願いしました。

 

アルミ板に30mmの穴開ける工具持ってないんですよね...そのためアルミ板と塩ビ版の穴あけは、機械加工が得意な知り合いの方に、

間に挟む紙は、ミリ単位でイラストを描けるソフト持ってないので、イラレ持ってる知り合いの方に、お願いしました。

 

そんなわけで天板部分に関しては人の力借りまくりました。

 

 

余談ですが、ボタンははめ込み式のためねじが必要ないのに対し、レバーはねじで固定するため、そのまま取り付けようとするとねじの頭が表面に出てしまいます。

 

そのため、

f:id:kazujdDR8823:20211212171849p:plain

こんな感じに塩ビには大きめに穴をあけて、表面にあまり出ないようにしようとしていたのですが、

 

f:id:kazujdDR8823:20211212171951p:plain

何とこんな感じに加工してくださいました。神かよ

 

 

間に挟む紙については、サイズが300x200とA4よりちょっと大きいです。しかし自宅にあるプリンターは最大A4のため、もらったデータをUSBに入れてセブンイレブンのプリンターに駆け込みました。セブンイレブンさんありがとうございます。

 

 

 

天板の加工をしてくださった方と、こんな感じで頼みますって手書きイメージ送った通りにデータに変換してくれた方に、この場を借りてお礼を申し上げます。

 

 

 

 

 

つまり天板は、他力本願ゾーンです

 

 

イェイ

 

 

組み立て

全部の部品がそろったので実際の組み立て作業に入ります。

 

1.レバー取り付け

f:id:kazujdDR8823:20211212172118j:plainf:id:kazujdDR8823:20211212172212j:plain

アルミ板にレバーを取り付けます。

ちなみにレバーボールも取り付けていますが、この後塩ビ板を取り付けなきゃいけないため、順番間違っています。せっかちだね。

 

 

2.塩ビ板&デザイン紙取り付け

f:id:kazujdDR8823:20211212172349j:plain

アルミの上に、紙・塩ビ板の順番で重ねて、今度こそレバーボールを取り付けます。

 

 

3.木箱へ取り付け

f:id:kazujdDR8823:20211212172504j:plain

すごくわかりづらいのですが、木箱にねじで取り付けてます。

 

 

4.ボタンはめ込み

f:id:kazujdDR8823:20211212172536j:plainf:id:kazujdDR8823:20211212172553j:plain

ボタンをはめ込みます。っぽくなってきた。

 

 

5.線取り付け

f:id:kazujdDR8823:20211212172700j:plain

線を挿します。全体的に線がちょっと長かった。

 

 

6.完成!!!!!!

f:id:kazujdDR8823:20211212172800j:plain

(なんか感動する)

 

 

 

テストプレイ

それでは実際に使用している様子をご覧ください。

 

 

シューティング

めっちゃしくってるけど、ギリギリ1CCできたしOK

 

 

アクション

かちゃかちゃやるのたのしい(小並感)

 

 

jump king

アケコンでやるもんじゃねえ、レバー重い

 

 

 

自作についてまじめに考える

 

アケコン自作について、いろいろと振り返ってみます。

 

まずは金銭面から

 

秋月 1763
楽天(三和電子) 12144
ホーマック 2735
合計 16642

 

うん、高い。

 

同じ値段なら↓とか買った方が500%いい

www.amazon.co.jp

 

正直思ったより高くなりました。

 

 

 

続いて、メリット・デメリット等

 

メリット

・楽しい - 唯一にして最大の魅力。モノを作るのが楽しめる人なら超楽しい。

 

 

デメリット

・時間 - 作業時間だけでも10時間は超えてそう。設計考えてる時間とかいろいろ含めたら倍以上に...

 

・お金 - 材料費だけじゃなく、工具代などがかかる。かかった費用として書いているのは材料費のみだが、作る上で工具を買い足しているので結構お金がかかった。

 

・失敗のリスク - 必ずしも成功するとは限らないものにかけられる値段ではない気がする。

 

 

 

これらを踏まえて

 

私個人としては、自作したいという強い意志がない限りは既製品を購入した方がいいと思います。正直デメリットがでかすぎる....

 

ただ、もし「作りたい!!!」って人がいるのであれば、割とオススメできます。

ネットに情報がゴロゴロ転がっている上に、完成すれば普通にコントローラーとして使えるので、達成感が味わいやすい気がします。ってかなんかあったら聞いてくれ!組み込み楽しいよ!!!!!!

 

 

終わりに

こんなに長い記事を最後まで読んでいただき、本当にありがとうございます。

 

去年「組み込みが好きです」って言っときながら組み込みじゃなかったので、今年はかけて満足しています。(ただし財布の中身がやばい...)

 

質問も受け付けますので、もしアケコン自作したい人などがおられましたら、私のtwitterにでもお願いします。

 

 

adventar.org

明日はよっすーさんによる「デザイン系の話かハッカソン周りの話をします」です!

(デザインできる人マジで尊敬します...)

お楽しみに!!!

 

 

 

 

(ちなみに、私はPart2の17日にも登録していますので、もしよろしければそちらもご覧ください。ゲーム紹介の予定です。今頑張って書いてます...)

adventar.org