HSPでジャイロ利用したスマホ用レーシングゲームのようなものを
細々と作っていました。

しかし速度面での限界がちらほらと見え隠れするようにも
なってきました。
具体的には、Nexus7(2013)で60fps維持できる
スプライトは128個くらいが限度かなみたいな。
BG面など使えればまだいいのですがバッファに描いて合成して転送
が仕様上無理なので、例えばドラクエのマップ程度でも処理時間の
半分くらいを消費してしまう感じです。
てところでUnityです。
スマホは勿論、PS4やらSwitchにも対応しているらしい!
2D3Dの両方に対応したゲーム製作ツールだか環境!
JAVAとかC#を使ってプログラミングする!
C#って触ったこともないですが、なんかCは速いらしい!
といった観点からちょっとだけいじってみようかねとおっさんは
Unityをインストールするのでした。
早速、最新の2017版とやらをインストールしてみたところ
32BitOSなので動かねーよとのお達しがありました。
Unity体験終了
と思ったら前バージョンのUnity5は32Bitサポートして
いましたので探してきてインストールします。
途中でVisualStudioもインストールするからなと言われ
なすがままに承諾しました。
金とられないよね(個人でこの用途で使う場合、無料です)
とりあえず、画面見てもなにすりゃええのか解らないので
Unityで2Dミニゲームを作るチュートリアルを見て実験を始めます。
スクリプトを書く段になるとVisualStudioが起動しました。
おお、と思ったのもつかの間、
メモリが足らんのでプログラムをシャットダウンせよとお告げ。
UnityとVisualStudio、教本代わりに開きっぱなしの
Chromeでメモリが足らないらしい。
Unity体験終了
と思ったが、無視して動かし続けても何とかなるっぽい。
たまに固まるけどChrome閉じたりコード書くときは
VisualStudioだけ開くとかしとけばどうにか。
32Bit勢には生き辛い時代ではありますが、導入成功。
- 2018/02/25(日) 00:35:08|
- Unity
-
| トラックバック:0
-
| コメント:0
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Managertest : Token {
void Start () {
for (int i = 0; i < 400; i++)
{
Enemy.Add(0, 0);
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Managertest : Token {
void Start () {
for (int i = 0; i < 400; i++)
{
Enemy.Add(0, 0);
}
}
- 2018/02/24(土) 18:01:25|
- Unity
-
| トラックバック:0
-
| コメント:0
去る8月5日朝11時頃、ついにNintendo Switchを
購入して自宅にたどり着きました。長かった…

Switch発売当時はそこそこ売れるんじゃないかとは思ってはいました。
でも初期不良とかあったら嫌だし落ち着いたらと様子見していたところ
あれよあれよと大人気で連日品切れ、こりゃ早めに入手しとくかと
ビックカメラの毎週の抽選会に並びだしたのが6月上旬。
しかし、週末の朝に街まで散歩の習慣だと思えば良いじゃないのと
呑気に構えていましたところハズレの嵐。
当選番号抜き取り疑惑ニュースも拡散される中
苦しい展開を迎えていました。
平行してジョーシンの会員にもなりネット抽選にも
毎週応募するも厳正な抽選の結果ハズレまくりました。
それぞれ8回ずつくらいハズレているはずです。
そんなある日(6回目あたりの頃)ビックカメラの抽選行った後に
ヤマダ電機に寄ってみたら。
数人が店舗前に並んでいましてスイッチ販売とかなにも書いてないけども
後ろに並んでみました。
したら、開店と同時に皆我先にゲームコーナーまで
階段を一足飛びに走り出してスイッチ販売用プラカードを
わしづかみにするという修羅の国でした。
半信半疑で小走りについて行った自分は無論取れませんでした。
運動会の種目にすると面白いかもしれません、いや危ない。
なお、この時2つの自動ドアがあり、あえて皆が1列に並んでいる
にも関わらずもう片方の入り口に悠々と後から陣取って
ダッシュ決めてまんまと購入していた中華らしきおっさん許せん。
だからあんたの国は(略
といった事があった後、危険性とか公平性が問題にされたのかは
判りませんがとにかく浜松のヤマダ電機は
先着整理券方式に切り替えたようです。
先着1台みたいなやるせない週もありましたけど
毎週少量でも入荷して先着購入できる、希望が見えました。
という事でこの方式の店舗ならばまず、前日営業終了後に
「スイッチ〇〇版、先着何名様販売いたします」
のような張り紙が出ますのでまずそれを確認する。

これは自分が並んだ時のものです。
台数と自分の地域の込み具合など勘案して
事前準備(座布団とか飲料)して並ぶ時間を決める。
確認後にすぐ並んで朝まで待てば絶対買えるわけですがまあ程ほどに。
自分は夜中の1時に確認に行って上記の状態でしたんで
もう、このまま待ってやろうじゃないかと9時間座って待ちました。
今思うと気合入りすぎで、結局7番目の人が並んだのが朝7時ごろだったかな。
暇すぎてブラムストーカーの吸血鬼ドラキュラを読破しちゃいましたよ。
あと腰超いたい。
このような店舗が近場にあり、数時間待つ気力があるならば
挑戦してみるのも宜しいんじゃないでしょうか。
夏なのでそれほど辛くもありませんよ。
さらば難民の日々。
- 2017/08/07(月) 22:48:28|
- ゲーム
-
| トラックバック:0
-
| コメント:0
音源を作るってつまり何をすればいいんでしょうか。
軽くどこから手をつけていいものか悩んでいたところ、
ちょうどHSP掲示板で”特定の周波数のsin波のwavを書き出す”
スクリプトが掲示されており、これを読むことでかなりの
初期の疑問の解決とすべき事が判りました。
・wavファイルは、決められたヘッダ部とデータ部分からなる。
・ヘッダ部はいろいろ決まりがあるがリニアPCMならば基本44バイトで
再生周波数、ステレオ設定、データの長さ等の重要な情報を記録している
・より詳しくは「wav ヘッダ」とかでググれ
・ヘッダの後に音声データを羅列したものを拡張子wavで書き出し(bsave)すれば
・wavファイルが完成する
そうか、つまり自分の希望する音程や波形を持ったデータをwavに書き出せばいいのか。
(ちなみにゲームのBGMとして使えるようリアルタイムに出力する事は
考えておりません)
テストプログラムで検証し、矩形波、sin波、ノイズが出力できる事を確認できました。
また、音楽は単音ではなく複数の音が重ね合わされます。
どうすんのかな?各音データを単純に加算すればできるんかな?
まさかそんな単純な話じゃないだろうけどまあ実験…あ、できた。和音ぽく出てる、へー。
ただ、いちいちwavを書き出さないと再生できないところがじれったい。
wavデータはプログラム内で配列として持たれていて、いろいろ加工された上で書き出します。
書き出さずとも、この内容を直接参照して再生できないものかな?
HSP標準命令にはそのようなものは無いですがWin32APIの中にある
playSoundてのが使えそうな匂いがします。
これwinmm.asで定義されてた気がするとと思って見てみたら有りました。
ここからいろいろ苦労しましたが(Win32APIとか全然判ってない)
playSound varptr(MASTER_Wave),0,$5
のような感じでメモリ内のwavデータを再生できるようになりました。
これまでvarptrってさっぱり意味不明でしたがなるほどこんな時に使えるのか。
HSPの変数を直接渡せない外部にアドレスで渡す方法なのだなと理解しました、
違っていても気にしない方向で。
次回は音程をつけたり音色に変化をつけたりを考えていくことにしよう。
続く。
- 2017/01/02(月) 23:52:20|
- HSP
-
| トラックバック:0
-
| コメント:0
あけましておめでとうございます。
だらだら過ごしていたらあっというまに一年が過ぎてしまいましたがともかく。
HSPで波形メモリ音源を作ってみたくなり、このところプログラミングなどしていました。
で目指す音源は一応作れたのですが、シーケンサ部分で挫折と言うか面倒になり
まあここらで中断しようかなとなったので、備忘録として書き散らかしておきます。
こんな感じで楽譜入力と波形変更、とwav書き出しまでは作りましたが、
パラメーター関係の入力系がやんなってきたので。

こいつで実際出力してみた曲がこちら
ドラクエ1フィールド曲※ノーマル1回PCM音源使用版1回が流れます。
波形メモリてのは要するにだいたいこういう音が出ます。
ファミコンディスクシステムとかPCエンジンなんかの内蔵音源、あとMSXのSCCなどが代表的な使用例。
ていうかナムコの初期の名作群とかグラディウスも音源はPSGかと思ってたら
波形メモリらしく驚きました。よく似ているんですが厳密には異なるらしい。
→詳しくはWIKIで原理的にはものすごくサンプル数の少ないPCMのようなものと言っていいのかな?
サンプル数32~256個くらいなので複雑な波形が作れず結果、
正弦波、矩形波、三角波、鋸波とそれに近い波形がメインとなってる面があるのでしょう。
ぶっちゃけ、VSTプラグインでもそんな音出るのいっぱいあるし、mckでも
ファミトラッカーでもなんでも使えばいいんですけど
興味が出てきてしまったので勉強を兼ねてやってみました。
ところでまず音源を作る、というけど具体的には何をすればいいのだろうか(そこからか)
眠い、続く。
- 2017/01/02(月) 00:30:45|
- HSP
-
| トラックバック:0
-
| コメント:0
キャンディークラッシュは、テレビのCMでしか見たことはないですが、非常に人気のあるパズルゲーとは知っています。
その開発会社Kingが自社製品でもで使用しているゲームエンジンを無料で公開というニュースを見ました。
UnityもCocos2d-xもわりとすぐにスルーしていたのに今回はちょっと目を引かれる点がありました。
・2D特化の軽量エンジンである
・LUAでスクリプトを書ける
LUAが何かも知りませんがここがCとかJavaだったらまた速攻スルーでしたけど。
で、LUAについて調べてみる。
詳しいことや正しいことは判らないが、ネットから拾った情報からこのようなもののようです。
・手続き型のスクリプト言語
・型の宣言とかいらない
・シンプル
・そこそこ速い
とにかく、クラスとかメソッドとかインスタンスとかなんとかかんとかが見た瞬間にどこがおいしいのかわからなくて
勉強する意欲を一瞬で失った自分にとってこれはちょいと魅力的に映りました。
HSPみたいなことが、より簡単に高速にできるのかなと思えたのです。
で、LUAについてもうちょっと調べようと思い日本語翻訳マニュアルを探してみて読んでいったのですが。
基本的な命令はあるんだけど、描画系とかなんも用意されていないっぽい。
Cを呼び出すことができますみたいな記述がありました。
必要な機能はCで書いて呼び出せって事かしら?なら最初からCやるんじゃないの?
それともゲームエンジンって言うからには、呼び出せる機能もセットで使えるようになってんのかな?
という疑問が噴出しましたので、とりあえずダウンロードしてみるかということになりました。
googleアカウントについて登録したりしてWin版をダウンロードしているのですが…
めちゃくちゃ遅い。220MB程度のファイルが1分1~2メガしか落ちてこない。
で、待ってる間暇なのでこれを書いていたところ今気付いたらダウンロード失敗していました。
完
テーマ:プログラミング - ジャンル:コンピュータ
- 2016/03/29(火) 22:06:09|
- PC
-
| トラックバック:0
-
| コメント:0
また遊びで変なプログラムを作りました。
セガが体感ゲームにイースを移植しようとしていたという設定。

HSPで自作のスプライトモジュールを改造(XZ平面用の方向指定等追加)して作りました。
やはり重くて、うちの環境でスプライト600個程度を超えると60fps維持が難しくなります。
キャラはスペハリ2の時機、敵はシャイニングフォースのゴブリン?に手を加えたものです。
ヴァーチャルハイドライドに通ずるおバカな雰囲気は出てると思うのですがどうでしょう。

あと、マップ描画を軽くするため工夫した結果実はこんな表示になってます。(カメラ視点上からに変更)
HSP部屋にBGM無し、更に動作を軽くするため視界を小さくしたバージョンを上げてあります。
↓
マップテスト
- 2016/03/27(日) 11:19:56|
- HSP
-
| トラックバック:0
-
| コメント:0
次のページ