キノコの自省録

日々適当クリエイト

Raspberry piでYMZ294を鳴らす

ArduinoでYMZ294を鳴らした記事はよく見ますが、Raspberry piで試した人は見当たらなかったので試してみました。

ちゃんと鳴ります。

3.3V問題

Raspberry piのGPIOは3.3Vです。YMZ294は基本5V動作っぽいので、3.3Vで大丈夫か、と思ったのですが、大丈夫でした。

データシート的には、こうなっています。

  • 4/6, /IC, /TEST以外は最小2.2Vでラッチ
  • 4/6, /IC, /TESTは最小3.5Vでラッチ

なので、ロジック電圧を印加するD0~D7, /WR, /CS, A0は2.2V以上でラッチします。/TESTは無接続、4/6はロジックで弄らない、ということで、/IC(リセット)が使えない程度です。

リセット使えなくても特に問題ないですし、どうしても使いたい場合でも1ピンだけなら割と何とでもなるでしょう。

Arduinoとの違い

鳴るとはいえ、正直YMZ294を扱うなら、Arduinoの方が楽です。理由としてはこんな感じです。

  • ピン配が面倒(ラズパイだとD0~D7がどうしても飛び飛びになる)
  • YMZ294のデータ入力に、ArduinoだとPORTDがそのまま使える
  • リセットがラズパイGPIO直だと動かない

ただし、Arduinoだと、PSG鳴らしながら何かするのは結構しんどいと思います。 Rasperry piはプロセス切っちゃえばいいので、その辺は楽ですね。

動作映像

とりあえずやっつけでドレミファソラシド

youtu.be

f:id:kinokorori:20170331234554j:plain

回路図も書こうと思いましたが、要らなさそうだしGPIOピン書くの面倒なので省略。

ちなみに、スピーカーは直結ではなく、D級アンプを嚙ませています。SOはドレイン接地かなにかだと思うんですが、SO-GND間に抵抗を挟まないと、スピーカーが鳴らないので注意してください。

パーティクルで魔法エフェクト(1) - 炎魔法編

f:id:kinokorori:20170327235357p:plain

ウィッチクライドでは、いくつかの魔法をParticle Systemを使って表現しています。

今回は炎魔法を紹介。

動画の1:02あたりで、炎魔法が発動しています。火炎弾ですね。手元でポッと点火して、モンスターに向かって発射、着弾と同時に破裂といったエフェクトです。

ちなみにウィッチクライドはCocos-2dを使っていますが、パーティクルの基本的な考え方は、どのSDKでも一緒です。例えば、Qtにもパーティクルシステムが用意されていますが、パラメタが若干異なるものの、使い方や考え方はやはり一緒です。

CCParticleSun

Cocos-2dでは、いくつかのパーティクルがテンプレートとして用意されていますが、火炎弾は、すべてCCParticleSunをベースに作っています。

CCParticleSunは、ある点を中心とした所定半径内に、速度・加速度ともに0の赤色パーティクルを発生させ続けるテンプレートです。ブレンド条件がスクリーンなため、重なれば重なるほど色が白くなります。そのため、中心部は白色に発光して、円周部は若干赤みを帯びます。円周もいい感じで揺らぐため、さながら太陽のように見えます。

着火エフェクト

CCParticleSunをベースに、いくつかパラメータをいじっています。

CCParticleSun* charge = [CCParticleSun node];
charge.scale = .8f;
charge.position = ccp(startPos.x+40, startPos.y);
charge.texture = [[CCTextureCache sharedTextureCache] addImage:@"flame@2x.png"];
charge.startSpinVar = 360;
charge.endSpinVar = 360;
charge.totalParticles = 100;
charge.duration = 0.8f;
charge.gravity = ccp(charge.position.x, charge.position.y + 100);

動画で確認すると、手元の炎が若干左上に流れているのがわかると思います。

これは、charge.gravity = ccp(charge.position.x, charge.position.y + 100);で、左上に重力点を置いているため、パーティクルがそっちに引き寄せられています。

また、パーティクル自体も、通常のCCParticleSunは半透明の正円(fire.png)ですが、ここではブーメランに近い形状のパーティクルを使用しています。

これがそうですが、真っ白で見えませんね。

f:id:kinokorori:20170330213530p:plain

射出エフェクト

着火エフェクトとは別のCCParticleSunインスタンスを使用しています。これは、CCParticleSunのパラメータそのままで、サイズだけ小さくしています。

そのCCParticleSunをそのままターゲットに向かって移動(CCMoveTo)させているだけです。中心点を移動しながらパーティクルを発生させ続けているため、いい感じに炎の尻尾が表現されています。

爆発エフェクト

これも素のCCParticleSunです。サイズを0.6から3.0倍に150msでアニメーションしているだけです。

魔法詠唱ゲーのキャラデザ遷移

f:id:kinokorori:20170327235357p:plain

今回はゆるく、ウィッチクライドのキャラデザ遷移を紹介するなど。

ウィッチクライド ~君の声が魔法となる~を App Store で

バージョン1

f:id:kinokorori:20170328232439p:plain

一番最初に描いたバージョンです。名前も決まっておらず、とりあえずマジ子と呼んでいました。ピンクの髪と魔法使いの三角帽は最初の段階から固定。結構飄々とした性格という設定でキャラデしたので、なんだかちょっとイラっとくる顔をしています。

バージョン2

f:id:kinokorori:20170328232725p:plain

これは今でも戦闘画面で使用しています。ゲーム画面で使用する絵を先に描いた感じです。なぜコートが半脱ぎなのかは永遠の謎。

バージョン3

f:id:kinokorori:20170328232952p:plain

バージョン1が幼過ぎたので、少し年齢を上げたらなんか変な感じになったバージョンです。純粋に変な絵なので割と即お蔵入りに。

バージョン4

f:id:kinokorori:20170328233149p:plain

バージョン3が変にねっとりしてしまったので、バトルの3頭身キャラに合わせて幼くしたバージョンです。ちょっと幼くし過ぎたので、再びボツ。

バージョン5

f:id:kinokorori:20170328233554p:plain

最終バージョン。ちょっとサイドの髪が気になるんですが、それ以外は大体イメージ通りになったので、これでFix.

こうして見比べてみると、バージョン4とバージョン5は結構似てますね。

その他

姫様はバージョン2、師匠はバージョン3、マリは1発。ということで実は結構描き直してます。描いているうちに画力が上がったり、前の描き方から変えたりしたので、そういう意味でも安定しませんでした。

ちなみにキノコ兵も一発です。素晴らしい。

f:id:kinokorori:20170328234256p:plain

規模の大きな個人ゲームを作る時に大切だと思ったこと

f:id:kinokorori:20170327235357p:plain

ウィッチクライドを開発して感じたことです。

ウィッチクライドはこちら。

ウィッチクライド ~君の声が魔法となる~を App Store で

個人開発だと、思いついたまま適当に開発してしまうことがほとんどだと思います。なにしろ結局全部自分でやるので、業務管理なんか面倒なことはしないでしょう。せいぜい機能の○×表やリソース管理表くらいじゃないですかね。

しかし、ラン系のミニゲーム程度ならば、適当に作り始めてもなんとかなってしまいますが、ウィッチクライドくらいの作品規模になると、適当に作ると途中でわけがわからなくなる、というか気持ちが乗ってこなくなります。

イデアを膨らませるために

ウィッチクライドの基本のアイデアはこうです。

「自分の声で魔法詠唱がしたい。魔法で敵を倒したい。」

魔法詠唱機能は、魔法作成フェーズと魔法実行フェーズとを明確に分けることを初期段階から考えていたので、認識エンジンの方向性についてはある程度ブレませんでした。

問題は、魔法実行フェーズ、つまりゲームでどう魔法を使うか?ゲーム性を持たせるか?というところについては、右から来る敵を適当に倒せばいいんじゃない?程度にしか考えませんでした。

ということで、ろくにゲーム性を検討せずに、ゲーム画面を適当に実装してしまい、結果酷いものが出来上がりました。それがこれです。

f:id:kinokorori:20170327235133j:plain

これはもう、次に何をすればいいのかも頭に浮かばず、完全に開発の手が止まりました。魔法エフェクトはとか敵とか主人公の動きとか、ノーデザインでプログラムで適当にやろうと思ったのが間違い。

そもそも魔法作成が必要なのに、そっちの画面を考えずに、いきなりゲーム画面出しても仕方ないのですが、画面遷移とか設計とか後回しでいいやとか思った結果、こんな適当なゲーム画面をまず作ってしまいました。

画面設計をしよう

途轍もなく当たり前の話ではありますが、プログラミングしながら画面デザインはできません。「とりあえず四角い箱動かせばいいや」はNGです。四角い箱を出すことすら面倒くさいです。

ということで、まず画面設計をする。これが物凄く重要だと感じました。Unreal Engineがブループリントという簡易画面設計ツールを用意しているように、画面の叩き台は最初に作っておくべきものなんですよね。

最低限必要な画面遷移と、各画面の画面設計をして、必要な部品をプロジェクトに取り込み、配置する。これを先にやらないと、気持ちが萎えます。

そんなわけで、まずは絵で画面設計とゲームデザインをしました。次に作ったのがこちらの画面。

f:id:kinokorori:20140501135530j:plain

右にモンスターを配置、左サイドの前衛キャラが防衛しつつ、魔法使いが魔法を撃ち込むという感じです。もうほぼ今の形に近いです。

もう少しデザインを詰めて、できたのがこちら。

f:id:kinokorori:20170328224521p:plain

キャラクターの絵柄やヒロインの位置など、デザイン面は大きく違いますが、ゲームコンセプトとなるベース部分はほぼほぼリリース版と一緒です。とりあえず、初期段階でここまで詰めました。

いきなり戦闘画面に行っても魔法が撃てないので、戦闘画面は一旦置いておいて、メニュー画面系も作りました。初期イメージはこんな感じです。

f:id:kinokorori:20170328225029j:plain

f:id:kinokorori:20170328225028j:plain

※ヒロインの絵柄がバラバラですが、なかなか納得がいかず、最終バージョンになるまで、何度もリテイクしました……。

デザインの差はあれ、ここはそれほど大きく変わる部分ではないので、こちらも基本は大差ないです。

ここまであれば、ゲーム性を確認できるまでの基本画面は繋がります。コード開発はそこからが本番、といった感じです。

ということで、まずは最低限ゲームが成り立つまでの画面設計をすることをお勧めします。特に多少規模が大きいゲームで画面設計がないと、どうにもうまくいかなくなります。

実際、ウィッチクライドの前に別のゲームを作りかけていたのですが、ゲームとしての全体像を最初に作らなかったために、途中で心が折れてしまいました。

個人での特許出願のために必要なプロセス(4) - 出願編

残すは出願のみです。

個人での特許出願のために必要なプロセス(1) - 識別番号取得編 - キノコの自省録

個人での特許出願のために必要なプロセス(2) - 提案書作成編 - キノコの自省録

個人での特許出願のために必要なプロセス(3) - 出願費用の支払い編 - キノコの自省録

1. 特許庁のWebページから、電子出願サポートソフトをダウンロードしてインストールする

2. 電子証明書をゲットする

3. 申請人登録を行い、識別番号を取得する

4. 提案書ひな形ファイルをダウンロードして、ガイドラインに沿って提案書を作成する

5. 出願費用を支払って、提案書に納付番号を記載する

6. インターネット出願アプリで出願を行う

6-a. 記載不備がある場合は修正して再度出願

出願処理

インターネット出願アプリから行います。

出願アプリを立ち上げて、「出願」タブを選択し、「送信ファイル」フォルダを選択します。

すると、左上の「文書入力」ボタンと「合成入力」ボタンが有効になります。

f:id:kinokorori:20170327223148p:plain

1つのhtmlファイルを送信ファイルに変換する場合は「文書入力」ボタンを、複数のhtmlファイルを合成して送信ファイルに変換する場合は「合成入力」ボタンを選択して、提案書ファイルを入力します。

提案書ファイルを入力すると、変換処理とともに、チェッカーが走ります。なお、この段階では特許庁にファイルは送られません。

f:id:kinokorori:20170327223618p:plain

正常ならOK, 警告なら内容を確認して、問題なければ特許庁に出願OK、エラーがあるならば修正して再度変換処理を行う必要があります。

この例の場合は警告ですので、中身をチェックして、必要に応じて修正を行います。警告やエラーの具体的な内容は、html形式で出力されます。

f:id:kinokorori:20170327224258p:plain

大抵の場合、一発じゃうまくいかないと思います。頑張って修正しましょう。特に、【国際特許分類】は、全角スペースを使って正しく桁数を合わせないといけないので、蹴られた場合は良くチェックしてみましょう。

また、一度は印刷して確認してみることをお勧めします。特に図が意図通り出ているか、潰れていないか、小さすぎないかを確かめましょう。

f:id:kinokorori:20170327223150p:plain

もう問題なしという場合、出願したい提案書ファイルを選択して、「オンライン出願」ボタンを選択します。これでようやく特許庁に実際に出願が行われます。

ちゃんと受理されていれば、2, 3日もすると、ステータスが「接受」に変わります。これが完了状態です。

もし、チェッカーには引っかからない類の書類不備等ある場合、「接受」にならず、差し戻しされるようです。

f:id:kinokorori:20170327224920p:plain

出願までの一連の流れは以上です。かなり手間は多いですが、それほど難しくはないという感想です。

出願までならば費用もそれほどかからないので、(業務発明に該当しない)良い特許ネタがあれば、出願してみるのもよいと思います。

なお、審査請求は10万飛ぶので注意してください……。

個人での特許出願のために必要なプロセス(3) - 出願費用の支払い編

続き

個人での特許出願のために必要なプロセス(1) - 識別番号取得編 - キノコの自省録

個人での特許出願のために必要なプロセス(2) - 提案書作成編 - キノコの自省録

1. 特許庁のWebページから、電子出願サポートソフトをダウンロードしてインストールする

2. 電子証明書をゲットする

3. 申請人登録を行い、識別番号を取得する

4. 提案書ひな形ファイルをダウンロードして、ガイドラインに沿って提案書を作成する

5. 出願費用を支払って、提案書に納付番号を記載する

6. インターネット出願アプリで出願を行う

6-a. 記載不備がある場合は修正して再度出願

今回は出願費用の支払いについて。

出願費用の支払い

特許出願費用は、前払いです。出願処理をする前に払う必要があります。

支払い方法は次の4つがあります。

手数料の納付方法 | 経済産業省 特許庁

特に理由がない限り、電子現金納付をお勧めします。お勧めしますというか電子現金納付一択です。

電子現金納付以外は特許庁に対して事前の手続きが必要なので、めちゃくちゃ面倒くさいです。

電子現金納付

ペイジーを使って支払いを行います。

「いつでも、どこでも、ペイジー。」日本マルチペイメントネットワーク推進協議会

電子現金納付 | 経済産業省 特許庁

複雑そうに見えますが、そうでもないです。ワンタイムパスワード程度。

まず、「インターネット出願」アプリを立ち上げます。

f:id:kinokorori:20170325150245p:plain

※初回はどこかで「電子現金納付専用パスワード」と「電子現金納付者カナ氏名」の登録処理が入りますので、適切に入力して、パスワードを保管しましょう。

補助タブを押して、納付番号取得を選択します。納付ログイン画面が出てくるので、電子現金納付専用パスワードを入力してログインします。

f:id:kinokorori:20170325151716p:plain

f:id:kinokorori:20170325150246p:plain

次に納付番号請求画面が出てくるので、四法を「特許」、手続種別を「出願関係」に選択します。金額は、手続料金自動計算システムのリンクから、正確な金額を確認して入力します。2017年3月現在は14000円です。入力完了後、実行ボタンを押すと、「収納機関番号」「収納機関」「納付番号」「確認番号」が返ってくるのでメモします。

(申請する気ないのに実行すると、虚偽申請になって怒られるので、スクショはなしです)

これらの番号を使ってインターネットバンキング、またはATMから30分以内に振り込みます。大抵、ペイジー専用メニューがインターネットバンキングに用意されているはずですので、探してみてください。例えば、三菱東京UFJダイレクトでは、「税金・各種料金払い込み」がペイジーです。

振り込みまで完了したら、特許提案書の表紙の【手数料の表示】を次のように修正します。

【手数料の表示】      
    【納付番号】  XXXX-XXXX-XXXX-XXXX

XXXX-XXXX-XXXX-XXXXには、先ほど支払った納付番号を記入します。

これですべて完了です。

他の支払い方法

せっかくなんで、その他の支払い方法も一応紹介しておきます。

予納

予納は予納口座を作成して、予めそこにお金を入れておく仕組みです。

都度支払い処理をする必要がなくなるため、大量に出願する企業などはこちらの方が便利かもしれませんが、個人ならばここまでする必要はないでしょう。

インターネット出願ソフトで初回の申請人利用登録時に予納台帳番号を取得します。※取得できるのは、初回のみです。 ...(略)... 『予納書』に手数料等の見込額に相当する特許印紙をはり付けて特許庁へ提出します。

ということで、予納台帳の作成は簡単ですが、残高追加には特許印紙を特許庁へ提出する必要があります。

現金納付

初めて特許庁専用「納付書」を請求する場合は、『現金納付に係る識別番号付与請求書』を提出します。 2回目以降は、『納付書交付請求書』を提出します。 提出後、7日から10日程度で特許庁専用「納付書」が送付されます。

この納付書を日本銀行の窓口に持って行って振り込みを行います。日本銀行の窓口で振り込む機会なんかそうそうないので、やってみるのも面白いかもしれませんが。

口座振替

特許庁へ『特許料等手数料ダイレクト方式預金口座振替納付申出書兼特許料等手数料ダイレクト方式預金口座振替依頼書(新規)』(以下、『申出書』という。)を提出します。

申出書を提出して3週間から4週間後に「振替番号通知」が送付されます。

提出も面倒ですが、そもそも時間がかかり過ぎるのであまりやりたいとは思いません。

次回

個人での特許出願のために必要なプロセス(4) - 出願編 - キノコの自省録

個人での特許出願のために必要なプロセス(2) - 提案書作成編

前回の続き

個人での特許出願のために必要なプロセス(1) - 識別番号取得編 - キノコの自省録

1. 特許庁のWebページから、電子出願サポートソフトをダウンロードしてインストールする

2. 電子証明書をゲットする

3. 申請人登録を行い、識別番号を取得する

4. 提案書ひな形ファイルをダウンロードして、ガイドラインに沿って提案書を作成する

5. 出願費用を支払って、提案書に納付番号を記載する

6. インターネット出願アプリで出願を行う

6-a. 記載不備がある場合は修正して再度出願

前回は1~3まで。続いて4.提案書の作成です。

業務で特許提案したことがある人でも、全て自分で書いて出願する人は稀でしょう。おそらく、企業の決めた最低限の項目を記入して、体裁は知財部や弁理士が整えて出願すると思います。会社によっては出願者はアイデアシートだけ記入すればOKというところもありますが、それって知財部は体裁整えるじゃ済まないレベルで負担ですし、なんかもったいない気がします。

なお、請求項や実施例の書き方については触れません。この辺は私が敢えて書く必要もないでしょう。

ひな形をダウンロードする

特許庁のページにひな形が置いてありますので、まずそれをダウンロードしましょう。

電子出願ソフトサポートサイト(申請書類の書き方ガイド)

Wordかhtmlか、どちらかで書くことになります。私はhtmlで書きました。Word嫌いなんです。

ひな形使用上の注意

htmlを見ると、大文字タグ、bodyに直書き、htmlのバージョン指定がないなど、凄い気になることがありますが、気にしてはいけません。

というのも、出願する時に体裁チェッカーが走るので、あんまり変に弄らないことをお勧めします

また、文字コードSJISを使用します。SJISがイヤだからドラフトまではUTF8で編集する、というのも別に構いませんが、SJIS範囲外の文字を入力しないように注意しましょう。

図・数式について

図は基本的に2階調BMPを使用します。一応JPEGも可能ですが、基本使わないように特許庁もコメントを出しています。

JPEGを使用する場合、必要以上に読み込みの画素密度を高くしたり、保存時の圧縮率を低くすると、ファイルサイズが非常に大きくなります。 JPEGは、特許・実用新案の図面代用写真又は意匠・商標の色彩を含む図面や写真のみに使用してください。 また、画素密度は200dpiを前提として、保存時には可能な限り圧縮率を高くし、ファイルサイズを小さくするよう設定してください。 特許・実用新案の図面代用写真や意匠・商標の色彩図面や写真以外の図形の場合は、白黒のPNG、GIF、BMP形式を使用してください。

refer from: 電子出願ソフトサポートサイト(よくあるQ&A 書類作成・文書入力B)

図は”【書類名】図面”にまとめます。HTML形式の場合は、図の番号とともにimgタグで貼り付けます。また、数式については、文中に直接(imgタグで)埋め込みます。

段落番号を打つ

【0001】という形式の段落番号を打つ必要があります。

書きかけの段階から段落番号を打つと、文章を挿入したり削ったりすると、酷く面倒なことが起こります。最後に一括して行うことをお勧めします。自分では、段落番号をすべて【XXXX】としておいて、後で自作したrubyプログラムで段落番号に置換する方法をとりました。

一応置いておきます。SJISファイルを入力するようにしてください。

http://kinokorori.ninja-x.jp/paragraph_xxxx.rb

表紙について

書類名は「特許願」ですが、まあ早い話が表紙です。テンプレートはこんな感じになっています。

【書類名】       特許願
【整理番号】      POOOOO3-1
【あて先】       特許庁長官殿
【国際特許分類】    A11B  1/11
            A11B  2/11
【発明者】
  【住所又は居所】  東京都千代田区霞が関1丁目3番1号
  【氏名】      発明 一郎
【特許出願人】
  【識別番号】    000000000
  【氏名又は名称】  特許株式会社
【代理人】
  【識別番号】    000000000
  【弁理士】
  【氏名又は名称】  代理 太郎
【選任した代理人】
  【識別番号】    000000000
  【弁理士】
  【氏名又は名称】  代理 一郎
  【電話番号】    00-0000-0000
  【連絡先】     担当
【手数料の表示】
  【予納台帳番号】  000000
  【納付金額】    14000
【提出物件の目録】
  【物件名】     明細書 1
  【物件名】     特許請求の範囲 1
  【物件名】     要約書 1
  【物件名】     図面 1

ここは会社ではまず書かないと思われるところだと思います。順を追って説明します。

【書類名】       特許願
ここはそのままです。

【整理番号】      POOOOO3-1
整理番号は、出願者が勝手につけてよい番号です。桁も合わせる必要はありません。

【あて先】       特許庁長官殿
ここもそのまま。

【国際特許分類】    A11B  1/11
            A11B  2/11
発明の分類番号です。

IPC分類表及び更新情報(日本語版) | 経済産業省 特許庁

ここから分類コード表を取得して、当てはまるものを入力します。また、入力に際し、桁数を全角スペースで正確に合わせる必要があるので注意してください。何を言っているのか意味不明かもしれませんが、たぶん出願時の体裁チェックで蹴られるので、イヤでも後からわかります。

【発明者】
  【住所又は居所】  東京都千代田区霞が関1丁目3番1号
  【氏名】      発明 一郎
発明者(要するに自分)の住所と名前を記入します。省略できません。

【特許出願人】
  【識別番号】    000000000
  【氏名又は名称】  特許株式会社
あなたの識別番号と個人名を入力します。識別番号については前回のエントリを参照してください。

個人での特許出願のために必要なプロセス(1) - 識別番号取得編 - キノコの自省録

代理人
  【識別番号】    000000000
  【弁理士
  【氏名又は名称】  代理 太郎
【選任した代理人
  【識別番号】    000000000
  【弁理士
  【氏名又は名称】  代理 一郎
  【電話番号】    00-0000-0000
  【連絡先】     担当
要らないです。消してOK。

(たぶん弁理士使うなら、表紙は書いてもらえるでしょう。)

【手数料の表示】
  【予納台帳番号】  000000
  【納付金額】    14000
どうやって出願費用を納付したかによって異なります。これは次回のネタにします。

【提出物件の目録】
  【物件名】     明細書 1
  【物件名】     特許請求の範囲 1
  【物件名】     要約書 1
  【物件名】     図面 1
ここもそのまま。これらの書類をちゃんと揃えましょう。

とりあえず今回はここまで。

次回

個人での特許出願のために必要なプロセス(3) - 出願費用の支払い編 - キノコの自省録