2015年12月5日土曜日

HSPコンテストで入賞したよ!ヽ( ´¬`)ノメリクリー

10月末に作成した「胡桃坂(くるみざか)ハロウィンパーティ」
  HSP プログラムコンテスト2015
「(有)テクノキット賞」に選ばれました!

胡桃坂ハロウィンパーティ | HSPプログラムコンテスト2015 入賞作品詳細

      ヽ(´ー`)ノばんざーい!
ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ


コンテスト TV で配信されたよ!

入賞メールの数日前、11月28日(土)に HSP のコンテスト TV (Ustream.tv) で 44 分 33 秒あたりに個性派部門の一作品として紹介されました。

HSP の開発者であられるおにたま様からゲーム内容をわかりやすく説明していただけてうれしかったです。恐縮です。
#へたな絵を個性的な絵といいかえてくれる優しさプライスレス( ˘ω˘)

あの偉大なハカセからも「めちゃくちゃな『どうぶつの森』?」みたいなコメントをいただきありがたかったです。
ジャンルは似ていますがクオリティなどだいぶ異なります。ぶつ森ファンの皆様はどうかご容赦下さい( ˘ω˘)

そして、入賞へ……


もう、この配信を見ただけで作品を作ってよかったと満足していたのですが、
その数日後「迷惑フォルダ」の中にひっそりと「応募作品入賞のお知らせ」メールが入っていました。
#いつもどおり消す気まんまんでフォルダを開いたのですが、消さなくて良かった!
#俺でなきゃ見逃しちゃうね>(`・ω´・)
#                  ↑いってみたかっただけ

「コンテスト TV」 で紹介された時点でもしかしたら入賞作品なのかもしれないと今になって思います。
しかし、その配信の時点では、エントリーしたから紹介してもらえたと思っていました。
そして、段違いのクオリティの作品をたくさんみて、すごいなーと思っていました。
なので、入賞なんて想像もしていませんでした。
そんな中で受け取ったこのメールはとてもうれしいサプライズでした。

入賞はいろいろな視点でみて決めているというようなことを配信中にそういえばいってたかもと思い出しましたが、それでも選んでもらえてうれしいです。
副賞の発電機つきラジオもわくわくです。


感動の受賞会見風の何か


エントリーした作品にはおにたま様からの暖かいコメントが書かれていてさらに感激しました(´;ω;`)ブワッ
「このまま新しい世界を作っていってもらいたい」という
一人でちまちまとゲームを作っている私にはすごくうれしいお言葉を頂きました。
このお言葉を励みに頑張りたいと思います。/)`;ω;´)

さらに、全世界推定10人くらいの貴重なファンの皆様もいつもありがとうございます。/)`;ω;´)
アクセス数くらいしかわかりませんが、それだけでもとても勇気づけられました。

最近は、 pon 様のブログのゲーム紹介の記事に掲載していただきました。
このホームページの Game タブや youtube でも暖かいコメントをいただきうれしかったです。

折れやすい心ですが、これからも頑張ってみます!
これからもよろしくお願いします(`・ω・´)ゞ

一足早くメリークリスマスな気分の現場からは以上です。ヽ(‘ ∇‘ )ノ ワーイ
。o○☆мёЯЯЧ .。゚+.(,,・ω・,,)。+.゚ χ’мдs☆○o。

2015年11月23日月曜日

OpenTheBoxをバージョンアップしたよ。作品紹介に感謝の巻( ˘ω˘)

前回のブログのとおり、あほげーさんの第18回に
「OpenTheBox~その箱を開けるとき~」をエントリーさせていただきました。




プレイした方は気づいたかもしれませんが、ステージは固定なのでいつも同じ順番で同じお題です。
ステージごとに15、30、45回と機械的に右ボタンを押してから箱を選択するとクリアできます。


もう、15、30、45回ボタンを押す行為に飽きてしまったよ(´・ω・`)

そんな方もおられるのではないでしょうか?(希望的観測)

そんなあなたに朗報です!(`・ω・´)

安 心 し て く だ さ い !

ランダムモードで永久に遊べるように
バージョンアップしましたよ!
(飽きないとは言っていない)

使えるシチュエーションとしては、対決ですね。(妄想)
ライバルとの対決なのに、15、30、45を正確にクリックするだけでは、いまいち熱くならないのではないでしょうか?
そんなときに、ランダムを押せば、理不尽なくらいランダムにお題が変わります。

15、30、45という業界の常識がなくなった状態で、己の力のみを信じて戦う
熱いシチュエーションが得られますね。(確信)

でも、ランダムという理不尽なモードにも、さりげない優しさをいれておきました。
同じ絵柄が続くと、移動したかどうかがわかりづらく、回数を数えるのがかなり難しくなります。
そこで、隣同士が同じ絵柄にはならないチェックをいれておきました。

そんな乱数と優しさをプラスしたバージョン1.1は、
前回と同じURLでモゲラさんから絶賛公開中です。
#以前のバージョンも追加したリンクからアクセスできます。

あほげーさんの効果のおかげでたった1日で200回を突破しました。
アクセス数が増えるととても励みになります。気が向いたらプレイしてください。







HSP3.4で乱数にはまったメモ


rnd 命令で 4 を指定した場合だけランダムではなく周期的な値が返ってくる現象の話です。

HSPスクリプトエディタから実行した場合は普通にランダムに箱を配置できました。

しかし、HSP3Dish でブラウザ用のデータを作成してアップロードして試すと、
カエルさん→ロケット→カエルさん→ロケット→カエルさん→ロケット→カエルさん→ロケット
のように同じパターンになるおかしな現象が起きました。

しかも、毎回同じではなく、別の組み合わせでも
A→B→A→B→A→Bという周期的な配置になります。

幸運にもぐぐったらすぐにその報告がありました。
たまたま絵柄が4種類なので rnd(4) を使っていたためにこのような現象が起きたようです。
HSP3.5beta では修正されているようです。
今回は HSP3.4 でリリースしたかったので、 rnd(5) に変えて、 4 が含まれたら再抽選する少し無駄な処理をいれて対策しました。

あほげー第18回の感想


昨日は、あほげー第18回の作品紹介がありました。
常連さんも新しい人もたくさんいて、さまざまな個性のある作品を見られて面白かったです。
さらに、どたばたの実況、斬新な構図、眠りに落ちていく様子などなかなか見られないジャンルの放送で、夜更かしは苦手ながらも最後まで見ることができました。

あほげーさんには、春に行われた第16回(テーマ「和菓子」)から参加しています。
最初はエントリーするだけで四苦八苦(今もか。。。)でしたが、
最近は、どんな風に放送されるかなーと想像しながら作るようになりました。

だいたいいつも飲酒プレイされるようなので、なるべくわかりやすいルールと操作方法にしたいと思っています。
それと短時間でたくさん紹介するので、3分くらいで全面クリアができて、失敗してもすぐにやり直せるように心がけています。

作っている側からすると説明が不要に思えても
何も知らない状態でいきなりつきだされたらわかりにくいものは
たくさんあるものだと今回も思いました。

実際にプレイしている様子を見ること自体が貴重で参考になります。
#なんかちょうちん記事のようになってきましたが、金品は一切受け取っていません。

←→ボタンと書いたので、画面の→を探してくれると思い込んでいましたが、
→を見るとキーボードの矢印キーを連想するというのはよくあることだと思いました。
ましてや、ゲーム開発者ではない人ならば、それに気づかずに意味不明な状態で終わらせてしまうこともあると思います。

テキストだけではなく、画像で説明したほうがわかりやすいと思いました。
次の機会で覚えていてかつ余裕があれば、もっと説明をわかりやすくしたいです。

名前を少しでも覚えていただけたことと、
全ステージクリアまでプレイしてもらえたことが特にうれしかったです。
#ゲームオーバーになるたびに、わかりづらくてやめてしまうかもしれないと、どきどきしながら、もっとわかりやすくすればよかったと思っていました。

放送中のツイートで良かったと言ってもらえたこともうれしかったです。

それと映像が乱れやすい状況でしたが、運よくしっかりと映像が流れていたのは幸運でした。
作品紹介のほうは、 youtube にアップされているようなので、見逃した方はご覧になってはいかがでしょうか。

ちなみに私の作品の紹介は1時間33分37秒あたりから始まっています。
次回もできたら参加して楽しみたいです。今回もありがとうございました。


2015年11月21日土曜日

あほげー第18回に遅刻せずにエントリー(`・ω・´)v

あほげーの今回のお題は「箱」です。

 「まじかよ糞箱売ってくる」とかメタルギアソリッドの箱男とか
いつもお世話になってるアマゾンさんの箱とかいろいろ思い浮かびました。

 夜中って、そういう妄想がはかどるのかな?
5個くらいぽんぽん浮かんで、絵を描いたりして寝ました。

 朝起きたときは、小規模で仕様もはっきりしてるから
3本くらいいけるかなーたはー
と思っていたのですが、
 締め切り直後の今になってみると、1つでいっぱいいっぱいでした₍₍ (ง ˘ω˘ )ว ⁾⁾ 

作る予定の複数の作品の絵を夜中に描いていたんだけど
今度からは1つの作品ごとに描いていこうと思った。
 結局1作品作ったら時間も気力もなくなるし。。。

 朝に、とりあえず一番簡単に作れそうな奴を作ろうと思ってやったのが
エントリー作品「Open The Box ~その箱を開けるとき~」です。






4つの絵柄の箱が100個並んでいて、その中から条件にあった箱を探すゲームです。
箱は1個ずつ表示され、両側の矢印ボタンで隣の箱に移動します。
条件にあった箱をクリックするとステージクリアです。
プレイ時間は3分くらい、操作はクリックだけです。

 この作品の絵はいきなり本番で描いたので絵の作成時間はトータル30分かかっていないです。
 夜中に3時間もかけて描いた絵が没になったのが悔やまれます₍₍ (ง ˘ω˘ )ว ⁾⁾ 

言語はHSPを使っています。
最近ドローンとかくるみ坂とか HSP をやっていたので、今回も使ってみました。
小規模なGUIを作るならば本当に HSP は使いやすいと思います。

ただ、Dish のブラウザ版にすると文字の下の部分が少しかけたりするのが気になりました。
あとツイート機能のために URL を引数にブラウザを起動したかったのですが、 exec がまだ js 版は未サポートのようで今回はあきらめました。
ここらへんは今後の改善に期待したいと思います。

そんなお手軽なHSPのおかげもあって
午前中にはタイトル画面とメイン画面のボタンを実装しました。
 タイトル~メイン~クリア/ゲームオーバーの一連の流れができて
午後からは、それに音楽をつけたり、きちんとステージのデータを設定したりしました。 

音楽をつけるとやっぱり雰囲気がぐっとゲームっぽくなります。
今回もフリー音楽素材/魔王魂さんの音楽を使っています。
 それで15時ころには一応の形になり、
夕方ちょっと用事をすませて夜に mogera さんにアップしました。

たびたび、もう1作品いけるかもと思うことがあるほど今回は時間に余裕があったのですが、
なんか途中から進捗が遅くなってきて、締め切り30分前になんとかエントリーすることができました。
見積もりが甘いというか、簡単だろうと思っているところで手間取ったりしました。
自分の見積もりはあてにならず、最低でも3倍の時間がかかることを最近よく実感します。

遅刻前提でもう1作エントリーしようとか思っていたころもお昼ころにはありました(遠い目)。。。
なんとか1作品エントリーできて、今はとにかく寝たいです。

明日起きたら変わっているかもしれませんが、とりあえず今回の目標は達成できたと思います。
でも、昨日思い浮かべていたネタは、あほげーに間に合わなくても、どこかで使えたらいいなと思います。
それでは Good Night (´ぅω・`)ノシ

2015年11月10日火曜日

11/11向けミニゲーム「ドローン1111」を急いで作った(・`ω・´)v

10/31に胡桃坂ハロウィンパーティをリリースして、今度は11/11向けのミニゲームをリリースして、
できたら13日の金曜日に向けて何かリリースしたい SakuraCrowd です。こんばんわ。
とはいっても、さすがにもう2日間くらいしかない13日の金曜日に向けてのリリースはたぶん無理だと思います。(*´・ω・)(・ω・`*)ネー

先月末のリリースをして数日はぼーっとしていたのですが、
11月11日ってよく食べてるプリoツとポoキーの日じゃん!と思って
何か作りたくなって頑張ってたら3日で作れました。
HSPの手軽さ恐るべしっ!(`・ω´・)

ドローン1111


コンセプト

最初にプリoツ的な棒を4つ使って 11月11日を連想させるゲームを作ろうと思いました。
もうこの時点で3日前だったので、作ろうというよりも妄想してた感じです。
その妄想がなかなかおさまらず、次第に形ができてきたので最近使わせていただいたHSPでためしに実装してみました。

製作過程

短時間だから、土管に棒をたてるだけでいいやと思い、最初にそれを実装しました。
それが以外と1日くらいでさっくりできたので、次の日に鳥と風のトラップを追加しました。
3日目で土管の位置などを最終調整したり、音量調節や説明文のヘルプを作ってリリースという感じです。
さくさくできた前提として、先月1ヶ月くらいかけて HSP の作品を完成させたことで、技術的な調べ物をほとんどしなくてすんだことがあると思います。

今回はミニゲームなので動画の撮影や編集も短時間ですみ、なんとか11月11日前日に紹介動画も公開できました。
今回も「ふりーむ!」で公開したのですが、審査がとても早くてうれしかったです。
夜7時過ぎに申請したので、もしかしたら明日になるかなと思ったのですが、いつもよりも速い2時間くらいでの公開になりました。
紹介画像も全部の景色をいれてもらえてうれしかったです。

「ドローン1111」の概要

ドローンが左右に勝手に移動するので、土管の真上でクリックして棒を落とします。
4つの土管に棒がささればクリアです。
全6ステージで、3回ミスするとゲームオーバーです。
2ステージごとに背景が変わります。
今回は11月11日がテーマなので秋っぽい、「秋晴れの街」「収穫前の田んぼ」「紅葉の山と川」を描いてみました。
ステージごとに鳥や風のトラップがあり、少しずつ難しくなるように土管の配置を調整しています。
だいたい1分ちょっとでクリアできると思いますが、いろいろ工夫することでタイムを短縮できるかもしれません。

完成するときの条件?

あほげーさんに参加させていただいたときも思ったのですが、時間が限られていたほうが割り切りやすくなって、結果的に作品を完成させやすいと思います。
今までいくつも時間をかけては完成する前にフェードアウトしてきた私ですが、時間を区切るのが大事なのかもしれません。
だらだらして進まなくなったなーと思ったら、時間を区切ってみるというのがいいかもしれないと思いました。

今後の予定

「ドローン1111」が3日でできたなら、13日の金曜日までに何とかなるんじゃないかと思ったりもしたのですが、ドローンが完成した今日風邪っぽい症状に見舞われたので、たぶん頑張らないと思います。
短期間で作ったせいで知恵熱的な何かにおそわれた可能性も考えられるし、やっぱり無理はいけないと思いました。
しばらくは、 HSP の勉強をしたり、他のゲーム製作ツールを見たりしようかと思います。
それと Unity もまた触りたくなってきたので勉強しようかと思います。
とりあえず確実な予定は、しっかり寝て風邪を治すことです。(`・ω・´)ノ < おやすみー



2015年10月31日土曜日

ハロウィンゲームをハロウィン当日ぎりぎりリリース(・`ω・´)

急に冷えてきてもう眠いけど
ハロウィンのうちにブログを書きたいので頑張ります(´ぅω・`)

先月下旬あたりから作り始めたゲームをついにリリースできました!
タイトルは「胡桃坂(くるみざか)ハロウィンパーティ」です。

胡桃坂ハロウィンパーティ:無料ゲーム配信中! [ふりーむ!]



いつものようにBGMと効果音は「フリー音楽素材/魔王魂」様の素材を利用させていただきました。
特にメインのBGMがすごくハロウィンっぽい雰囲気を出してくれています。

先月からのブログを見ている方には見慣れた画面かもしれませんが、このラスト10日間で劇的な速さで実装が進んだ気がします。

システムを使うためのデータ作り


キャラの描画やマップ移動のシステムが大事なように、話したりアイテムをくれたりするNPCの設定も大事です。
矛盾がないようにフラグを管理しながら、NPCを追加していきました。
衣装を細かいものまで数えたら53種類になっていましたが、それをどのように配置するかなども悩みました。
そのためのクエストやミニゲームへの自然な流れなども作っては少し修正して作りました。
プログラミングとは違った難しさがありましたが、短いストーリーを考えるのも楽しい気がします。

にぎやかしのNPCの配置


某人探しのカリスマ的な絵本「○oー○ーを探せ」とまではいきませんでしたが、各マップに40体のエキストラ的なNPCを配置しました。
このNPCはにぎやかさと人探しのゲームのために配置しているので、話したりはしません。
それでもいろいろな衣装をつけて配置するのは、割と気合と時間がかかりました。

ミニゲーム「魔女のゲーム」の実装


ミニゲームは以前のブログでも追加したいといっていたのですが、実装したのはリリースの3日前くらいです。
半ば諦めていたのですが、勝手に脳内でこんなん作りたいと仕様が少しずつ固まってきていたのでほぼ1日で作ることができました。
基本的なシステムは通常のマップと同じですが、マップの雰囲気やリアクション(話しかけるとAIがランダムから一定の場所に向かうようになる)の変化という末端の部分の追加だけですんだのもスムーズにいった要因だと思います。

列車も動いたよ!


列車の絵は用意していたのですが、実装の優先度を低くしていたので、リリース前日まで実装していませんでした。
でも、テストでプレイしているうちに、線路があって「TRAIN」という看板もあるのに、列車がこないのもなんだか変だなと思うようになり、やってみたら意外と簡単に実装できました。
単純に、絵を位置をずらしながら描画するだけなので今思えば簡単でした。

あとは、マップの当たり判定や重ね合わせの微調整をしました。
まだまだ粗はありますが、壁に飲み込まれるようなこともなくなり、だいぶましになりました。

何とかハロウィンに間に合ってよかったです。
しかし、間に合わせるために睡眠不足が続いているので明日は超だらけたいと思います。

コンテストにも何とか間に合った


まだ結果は反映されていませんが、HSPプログラムコンテストにも参加の申請をさせていただきました。
HSPはちょっとしたツールを1回作ったことがありますが、触れた日数はトータルしても3ヶ月を超えないと思います。
それでも、さくさくとGUIのアプリケーションを作れてしまうのが便利だと思います。

間違い探し?


コンテストのほうへ提出したものはすぐに直したんだけど、ふりーむ!に出したほうは審査中だったこともあり直していない点があります。
起動するためのショートカットのファイル名が胡桃坂ではなく胡桃沢になっています。(´・ω・`)
とはいっても、ゲーム内の要素ではないし、ちょっとした間違い探しとして笑ってもらえればそれはそれで良いかと思いました。
胡桃坂(くるみざか)という名前は架空のショッピングモールの名前を考えていたときになんとなく思い浮かんだ語呂のよさそうな名前でハロウィンシーズンぽいかなと思い決定しました。
ただ、いろいろとてんぱった状況で胡桃沢になってしまったみたいです。
それではおやすみなさい。ハッピーハロウィーン(ゝω・)v

ニコニコのほかに youtube にもあげてみたよ。

2015年10月21日水曜日

ハロウィンに間に合いたいHSPゲ製の経過報告

先月始めたころは、1ヶ月あるから何とかなるでしょうと思ってたけど
ハロウィンまであと10日を切ってしまいました。
ここ10日間くらいは、ブログを書く余裕もない感じでした。

そもそも、まだキャラの素材がぜんぜん足りてなかったり、マップも調整必須な状況です。
でも、21:30を過ぎるとプログラミングの速度がものすごく低下することが最近わかってきたので、
その時間を有効利用してブログを書こうと思います。₍₍ (ง ˘ω˘ )ว ⁾⁾
#明日のこの時間はFFの新作アプリが出るからそっちをやりたい。。。

進捗報告


製作途中ですが、動画をとったので宜しければご覧ください。
テキストで説明するよりも、どんな感じに作っているかがわかりやすいと思います。
音楽と効果音は「フリー音楽素材/魔王魂」様の素材を利用させていただいています。
いつも思いますが、音楽をいれるとゲームの雰囲気が格段にあがります。


動画のとおりですが、次のような実装をしました。

・PC(プレイアブルキャラクター)のほかのNPCを配置して勝手に移動するようにした。
・HSP3Dish 対応をした。
・マップを4つ作った。
・マップに配置したポータルで他のマップへ移動できるようにした。
・花火のエフェクトを追加した。

NPCを移動させるのは、スプライトを表示する機能を前回の段階で実装していたので簡単にできました。
移動とはいっても、ランダムな方向に毎回1歩進むだけです。
PCと同じように移動できるかどうかの衝突判定をしています。

HSP3Dish 対応


HSP3Dish 対応は、なんで最初からやらなかったのヽ(`Д´#)ノ ムキー!!という感じになりました。
HSP3Dish でリリースしたいという人は、最初から #include "hsp3dish.as" をいれて開発するといいかもしれません。

主に困ったのは画像の扱いです。
HSP3Dish でない場合は、アルファチャンネル付きの画像を描画するときに、アルファチャンネル用の画像をRGBの画像の隣に配置して gmode 7 で転送します。
これが、HSP3Dish では便利になって、 png のアルファチャンネル付きの画像をそのままバッファ読みこんで使えるようになりました。
便利なのですが、最初に HSP3Dish ではないやり方を使っていたため、画像転送のロジックやら、画像自体もアルファチャンネル付きに加工する手間がかかりました。

画像関係でもうひとつ、原因がはっきりわかりませんが、 picload ではうまくアルファチャンネル付きの画像が扱えず celload を使うことになりました。
picload と違い、ウィンドウバッファのサイズを変更せずに読み込むことができません。
picload を使っていたときは、細かな画像をぺたぺたとウィンドウバッファにはっていたのですが、それができないので、あらかじめバッファに対応する1枚の画像として用意することにしました。
スクリーン(#0)以外のウィンドウバッファの編集が制限されていることと関係しているのかもしれません。

もうひとつは、 mref 66 により VRAM のピクセルデータを見ることができなくなったことです。
前回書いたように、当たり判定は白黒の画像の画素値で判定しています。
pget で配列にコピーしようと思いましたが、毎回マップ読み込みで行うのも時間がかかるし、実際に試してみたら HSP3Dish には対応していないようでした。
そのため、画像をバイナリファイルに一度変換して、それを bload で配列に読み込んで使うようにしました。

HSP3Dish は制限はあるもののスマホやウェブブラウザでもソフトを実行できるようになることが魅力的だと思います。
あと、音量調整の mmvol という便利な関数もあります。

マップの実装


マップの絵を描くのはすごく時間がかかりました。
うまいとは決して言えないのですが、そこは百も承知です。
ただ、下手なりに丁寧に書こうと頑張りました。
1日1マップが限度でした。プログラミングとはまた違う疲れがでてきます。

ポータル移動は、ポータルをスプライトで実装して、zキーを押したときに、ポータルが近くにあればそのポータルに対応したワープ処理をするようにしました。
動画ではわかりにくいのですが、最初は使えないポータルが、緑の服を着たNPCにzキーで触れるとポータルが有効になるようにしています。

花火の実装


これは、エンディングで使おうと思っている花火です。
小さな星がつくことでかなり花火らしくなりました。

全体的に薄暗くして夜っぽい感じにするには、 gmode と grect を使います。
この命令で半透明の矩形を描画して簡単に薄暗くすることができました。
 参考:画面を暗くしたい - HSPTV!掲示板

gmode 3, , , 100
color 0, 0, 64
grect x, y, 0, width, height

これだけで、少し青っぽいうすぐらい感じになります。

今後の予定


キャラがまだお団子キャノンの主人公しかいない状態なので、キャラを増やそうと思います。
それと、マップも壁にめりこんだり、重なり方が不自然なところがあるので当たり判定などを調整します。
それと、できたらミニゲームをさらに追加したいと思っています(これ自体ミニゲームですが…)
ハロウィンの日まで間に合うか微妙ですが頑張ります(`・ω・´)ゞ

2015年10月11日日曜日

HSPでマップをスクロールさせてみた

先日は、アニメーションするスプライトを作ってマップをうろちょろさせました。
今回は、そのマップをスクロールする機能を実装しました。


テスト用のアプリケーションでは、スプライトではなく円を塗りつぶしたものを移動させています。

そんなに大きくないマップですが、スクロールすると広く感じたり探検気分がでてきた気がします。
スクロールってわくわくするね₍₍ (ง `・ω・´ )ว ⁾⁾

スクロールの処理の概要


赤線の枠は、フレームと呼んでいます。
フレームはスクロール機能の設定値で、この枠からはみ出す場合にスクロールします。
追跡対象が枠の中で移動している間はスクロールはしません。
ただし、スクロールの範囲はマップ画像の範囲内です。

描画処理は前回書いたとおり、背景、キャラ、前景の順番で描いています。

描画のあとで、キー入力に応じて、キャラの移動先を決めます。
障害物があれば移動はしません。

障害物の判定


障害物の判定は、次のような当たり判定用の画像の色情報で決めています。
移動先の座標の色を取得して、色が黒でなければ移動します。
HSP には pget という色を取得する関数がありますが、
それより高速に行う方法が紹介されていたので、そちらを試してみました。
参照:buffer上の特定の1色の座標(1点)の高速検索方法は? - HSPTV!掲示板

mref bufVram, 66
で、変数に操作中のウィンドウの画像が割り当てられます。
あとは、 peek を使って bufVram の色情報へアクセスします。


idxVram = ((heightBuffer - y - 1) * widthBuffer + x) * 3
_b = peek(bufVram, idxVram + 0)
_g = peek(bufVram, idxVram + 1)
_r = peek(bufVram, idxVram + 2)

widthBuffer, heightBuffer はウィンドウのサイズです。
VRAM はボトムアップの 24bit ビットマップ形式になっています。
 参照:VRAMデータについて - HSPTV!掲示板

当たり判定用の画像は、だいぶ雑なので壁に少しのめりこんでしまいました。
このあたりは、今後微調整していこうと思います。

スプライトの描画順の改善


そういえば、スプライトの機能のテストをしていて、あれからひとつ改良しました。

キャラが複数重なる場合、手前にいるキャラをあとで描画する必要があります。
そのために、キャラの Y 軸の座標の値でキャラをソートする処理を実装しました。
これについては、 HSP の wiki で提供されているヒープソートの処理を参考にしました。
 参照:Module/ヒープソート - HSP開発wiki

Y軸の座標の値が小さいものから昇順で描画することで、違和感なくキャラを重ねられるようになりました。

予定


次回は、スプライトの機能と今回のスクロールの機能をあわせて、複数のキャラが移動しているマップをスクロールしながら移動したいと思います。
キャラももうちょっと種類を増やしたり、かわいくしたりしたいです。

2015年10月7日水曜日

HSPで作っているゲームでキャラが動くようになったよ!

ノーベル賞すごいね!
昨日と今日と続けて日本人がノーベル賞に選ばれていて、ニュースが楽しい。
世界の多くの人類や家畜を救う研究とか知らなかっただけですごい人が日本にいるんだなぁ。
ニュートリノに重さがあったとか、その分野の人にとっては大ニュースなんだろうなぁ。
ヒッグス粒子が重さの粒子とか聞いた気がするけど、それと関係あるのかな?

科学番組は好きだけど、
結局なんとなくしかわからない SakuraCrowd です。₍₍ (ง ˘ω˘ )ว ⁾⁾

進捗報告


先月下旬から作っているゲームなんですが、
マップの上をちょこまかとキャラが移動する仮組みを作ることができました!
ヽ( ´¬`)ノ ワ~イ !!


やしの木とかの前景にはキャラが隠れるようにしました。
あと、おおざっぱですが当たり判定をいれて、障害物がある場所は通れないようにしています。
移動は上下左右にななめを加えて8方向に対応しました。

パソコンもソフトウェアも進化しているらしく、高速化を意識していない処理でもさくさく動きます。ヽ( ´¬`)ノ ワ~イ !!
とはいっても、あからさまに無駄な処理はしないように注意しながら作りました。

おおざっぱな流れをいうと、

  1. 背景画像を描く
  2. キャラクタを描く
  3. 前景画像を描く
  4. 矢印キーの入力を調べて、キャラクタの向きと位置を変えたりする。
  5. 一定間隔でキャラクタのアニメーションのフレームを切り替える

この繰り返しです。

キャラクタは先日のブログに書いた方法で、パーツを重ねて描いています。
前景画像もキャラクタと基本的な処理は同じです。

入力処理


入力処理についてだけ、新しく追加したのでコードを抜粋します。

// 矢印キーにより移動させる
stick key, 15
dx = 0: dy = 0
if key&1 : dx -= 8
if key&4 : dx += 8
if key&2 : dy -= 8
if key&8 : dy += 8
if (dx != 0 or dy != 0) {
ScSpriteMoveBy IDX_SPRITE0, dx, dy, 1, idxPartAtariMap
}
await 33

stick という標準命令で矢印キーの入力状態を取得して、上下左右ごとに押されていたら移動量を変化させています。

ScSpriteMoveBy は自作の命令です。
当たり判定をして、障害物がない場合は指示されたとおりに移動します。


移動のときに進行方向を向くようにしています。

stick の第2引数


stick の 15 という引数は、押しっぱなしを入力として受け取るかを決めるマスク値です。
stick key, 15 だと矢印キーを押しっぱなしで、キャラクタが移動します。
stick key, 0 だと矢印キーを連打して1歩ずつ移動させないといけません。

stick では、ビット単位で入力の有無を表しています。
下位1ビットが左、2ビットが上、3ビットが右、4ビットが下です。

15 はバイナリだと 00001111 となり下位4ビットが全て 1 の状態です。
つまり、上下左右の矢印キーについては、押しっぱなしのときに入力を受け取る設定です。

stick は通常は押された瞬間しかビットを1にしません。
押しっぱなしだと、押された瞬間以外はビットは 0 です。
これが、マスクを指定すると、それに対応したビットは、押しっぱなしの間でもずっとビットが 1 になり、押されていることがわかります。

そういえば stick のほかにも2つほど便利な命令を見つけました。

便利な命令 await


入力処理にもでてきている await という命令は、 wait と似ていて指定した時間だけ待機します。

便利な点は、前回の await 終了時点からの経過時間を計測することです。
wait では wait 33 とすると呼び出しから 330 ミリ秒待ちます。

1回目の await が終わった後、処理に 15 ミリ秒かかったとします。
その後 2 回目の await 33 とすると 33 - 15 = 18 ミリ秒だけその場で待機します。
これにより FPS を簡単に管理することができます。
それと await は wait より 10 倍精度が高く指定でき、 1 ミリ秒単位で指定できます。

便利な命令 redraw


もうひとつの便利な命令は redraw です。
たくさんの描画処理を直接スクリーンにすると、画面がちらついて表示されます。
そのため、バッファに描いてから、完成したバッファの画像をスクリーンに転送するダブルバッファリングなどがあります。
しかし、 redraw を使うことでダブルバッファリングをしなくてもちらつきを防ぐことができます。

具体的には、
  1. redraw 0 // スクリーンに描画処理を反映しない
  2. 任意の描画処理
  3. redraw 1 // スクリーンに描画処理を反映する
というふうに、ちらついてしまう描画処理の間に redraw をはさみます。
redraw は gsel で選択しているスクリーンのみが対象になるので、 redraw の前に gsel でスクリーンの番号を指定したほうがよいです。

予定


次はマップをオートスクロールしたいと思います。

ハロウィン期間中にリリースしたいけど
絵も実装もまだぜんぜん足りないよおおお。。゚(゚´Д`゚)゚。
なるようになるか₍₍ (ง ˘ω˘ )ว ⁾⁾

2015年9月29日火曜日

HSPでスプライトの試作

昨日書いて、今日もかくという異例の更新頻度を達成したぞ!ヽ( ´¬`)ノ ワ~イ !!
動機などは昨日のブログに書いたが、便利な hspdx を使わずにスプライトを動かしてみたいと思う。
今日はスプライトの細かな仕様を決める前に、実際に処理速度が十分出るかを検証してみた。

基本的には、昨日のプログラムと同じで、パーツ画像をバッファに読み込み、それを重ね合わせてコピーしていく。
昨日は、パーツ画像全体を重ねたが、今回は、キャラ1個分の 24x32 ピクセルだけを重ね合わせて、1個のスプライトを描画する。
そして、そのようなプロセスを繰り返して、スプライトを縦横に画面いっぱいに並べて配置した。


1フレームは 330 ミリ秒だ。
フレームごとに、一度、白い四角で塗りつぶしてからキャラを1つずつ書いている。
それだけだと、画面がちらつくので、ダブルバッファリングをしている。
具体的には一度バッファ(id=9)に書いてからそれをウィンドウ(id=0)にコピー転送した。

おおまかなプログラムはこんな感じだ。
この処理の前に昨日のパーツ画像の読み込みとバッファ(id=9)の初期化処理をしている。

*ScSpTest1
dim frameIdx, 4
frameIdx.0 = 0
frameIdx.1 = 1
frameIdx.2 = 2
frameIdx.3 = 1
for animeFrame, 0, 4, 1
gsel 9 // バッファにかく
color 255, 255, 255
boxf 24 * 0, 32 * 2, 320, 480
for spX, 24 * 0, 320 - 24, 24
for spY, 32 * 2, 480, 32
for partsIdx, 1, 9, 1
pos spX, spY
gmode 2, 24, 32
// 下向きの歩行アニメーション
gcopy partsIdx, frameIdx(animeFrame) * 24 + 0, 0
next
next
next
gsel 0 // バッファからウィンドウに転送
pos 0, 32 * 2
gcopy 9, 0, 32 * 2, 320, 480 - 32 * 2
wait 33
next
goto *SCSpTest1

frameIdx という配列では、 0, 1, 2, 1 をいれている。
これは、アニメーションのフレームの表示の順番だ。
歩行のアニメーションは3フレームだが、
一度真ん中のフレームに戻ったほうが自然にアニメーションするので、
このようにフレームの順番を指定している。

ループが一杯あるが、 animeFrame 変数のループが今いったアニメーションのフレーム番号のループだ。
このループの終わりのところで 330 ミリ秒待って繰り返している。

spX, spY 変数のループは、スプライトを縦横に並べるための描画位置を表すループだ。
24 とか 32 というマジックナンバーはスプライトの幅だ。

partsIdx 変数のループは昨日書いた、パーツ画像の組み合わせのループだ。

テクニックも何もなく素直に書いて実行してみたが、十分速度は足りているようだ。
これから音楽やキャラのAIや判定などを足していったら足りないかもしれないが、ひとまず安心した。

と思ったが、処理時間を計測していなかった。
見た感じはスムーズに見えるので問題なさそうだが、1フレームの描画にかかる時間を計測してみた。
上に出ているのが、1フレームの描画にかかった経過時間だ。単位はミリ秒だ。
330ミリ秒に1回の更新を目標にしているので 13x13=169個のスプライトを15ミリ秒で処理しているのだから、これでいいかもしれない。
30FPSとか60FPSを出すようなアクションゲームを作るならば描画で15ミリ秒はぎりぎりな感じかもしれないが、今回は十分な速さだ。

速度計測には GetTickCount を使った。

// GetTickCount を使うための準備
#uselib "Kernel32.dll"
#cfunc GetTickCount "GetTickCount"

tBegin = GetTickCount() // 計測開始

///// ここに計測する処理をかく。今回は gsel 9の前 ~ wait 33の前まで /////

// 経過時間の表示
tElapsed = GetTickCount() - tBegin
pos 0, 0
color 255, 255, 255
boxf 0, 0, 96, 16
color 0, 0, 0
mes(tElapsed)

tBegin で計測を始めたときの時刻(ミリ秒)を保持する。
処理が終わった時刻から tBegin を差し引いて経過時間 tElapsed を計算する。
timeGetTime のほうが精度は高まるが、手軽なほうを選んだ。

2015年9月28日月曜日

HSPで画像の重ね合わせをしてみた

あいにくの曇り空だったが、スーパームーンを少し見ることができた。
なんとなくだが、月明かりがいつもよりも強い気がする。
中秋の名月とほぼ同時に月が地球に
接近するのは稀らしいので何かありがたい(-人-)

先週ブログを書いていたときに、
ハロウィンにちなんだゲームを作りたいなー
と思っていて、ふわっとした企画を考えて、少し作り始めた。
まだできるかどうかわからないけど、初めてHSPで絵を出せたのがうれしいのでブログを書いてみる。

HSP自体はだいぶ前から知っていて、ちょっとしたGUIのツールを作ったりしていた。
GUIアプリケーションをここまで短く実装できる言語は自分の中ではこれが一番だと思う。
もっと短くできるかもしれないが、ビギナーな私でもこのくらい短くかける。

screen 0, 160, 64 // ウィンドウ作成
button "greet", *OnGreet // ボタン作成&イベント関連付け
stop
*OnGreet // イベント
dialog "Hello!"
stop

バージョンアップして今では WebGL  iOS Android でも実行できる。
そのときは HSP3Dish という環境を使うために #include "hsp3dish.as" でスクリプトを読み込む。
 参照:HSP3Dish プログラミングマニュアル・基本仕様ガイド
制限として、拡張プラグインやCOM/Variant型や外部DLL呼び出しやモジュール変数については未サポートのようだ。

ゲームでスプライトを用いるため es_set などのスプライト用の関数を使いたかったが、これは hspdx という拡張プラグインなので HSP3Dish には対応していないと思う。
そんな理由から、スプライト系の処理を自作しようと思う。
先週ちまちまとドット絵を描いたので、それを HSP のウィンドウに描画してみた。


なんかドット絵を作っている最中は、わりと良く思えたのに、
ウィンドウに出してみると何か微妙(´・ω・`)
ちなみに、キャラは4コマにも描いている大砲ゲーム「お団子キャノン」に出てくるキャラクターだ。
キャラの並び方は、Wolf RPG Editor に同梱されているグラフィック合成器のフォーマットにあわせている。
寄らば大樹の陰。仕様に悩むこともなく説明もしやすい。助かります。


キャラの描画手順

さきほどの画像は1枚の絵ではなく、帽子、頭、肌、服上、服下、靴のパーツにわけて作成している。
作成は有名なドット絵のエディタ Edge を使っている。
これもレイヤーごとに描画ができて、重ね合わせ・アニメーションの確認も簡単にできてとても便利だ。
作ったパーツ画像を複数のバッファに読み込み、それを重ねて表示するプログラムをHSPで作成した。

パーツ画像の読み込み

まずは、パーツ画像をバッファに読み込む。
for i, 0, 8, 1
buffer i + 1
picload imagePath(i)
next

今回は8つのパーツ画像を読み込むため8回処理を繰り返している。
buffer 命令で直後の picload の画像読込先をスクリーンではなくバッファに切り替えている。
引数の番号がバッファの番号だ。

パーツ画像の重ね合わせ描画

読み込んだパーツ画像を、バッファからスクリーンに繰り返しコピー転送する。
gsel 0
for i, 0, 8, 1
pos 0, 0
gmode 2, 320, 480//24, 32
gcopy i + 1, 0, 0
next

gsel 命令で 0 番目のバッファを gcopy の転送先に指定している。
0 番目は screen 命令で作られたウィンドウのバッファだ。
buffer 命令だとウィンドウのないメモリ上だけのバッファになるが、 screen ではウィンドウに表示する画像データを扱うバッファになる。
gmode でコピー転送の方法を指定する。
今回は重ね合わせの際に黒(0, 0, 0)の色を透明色として扱って転送するために、第1引数に 2 を指定した。
これは黒から変えられないようで、 edge で最初白を透明色にしていたのを黒に変更して対応した。
edge のイメージのメニューに特定の色を置き換える項目があってすごく助かった。

今後の予定

単純な処理かもしれないが、右往左往したのできちんと重ねて表示されたときはすごいうれしかった。
作りたいゲームのイメージでは、もっとたくさんのキャラを動かす予定だ。
しかし、1つのキャラでさえも8つのパーツを組み合わせて作り、それを333ミリ秒ごとにアニメーションさせるとなると、実際に処理時間が足りなくなるかもしれない。
次は、アニメーションを手動でやってみる。

こんな出だしで、ハロウィンのころまで間に合うのかわからないが、だめもとでやってみよう。
あと、口調を意図的に変えてみたのだが、これもいつまで続くかわからない。



2015年9月22日火曜日

Unityの出力ファイルの容量を減らす&万歩計4コマ

Unity の出力ファイルの容量を減らす


Unity の出力ファイルの容量を減らしました
というか、今までのファイルの容量が異常に大きかったので普通にしました。

対象は WebPlayer と Google Play 用の apk です。
特に apk については容量がシビアなスマホやタブレットで利用している人が多いので、
こちらをメインにしてやりました。

Google Play で公開している3作品についてサイズを減らしました。
特に最初にリリースした「お団子キャノン」などは
ミニゲームらしからぬけしからんサイズを半分以下にすることができました。

apk      : 39MB → 16MB
WebPlayer : 21MB → 7MB

これでローディングの待ち時間も少しは短くなったと思います。

ダウンロードして、インストールしている方は世界で10人くらいのようなので
かなり需要の少ない対応だけどがんばったよ
世界のインストールしてくれてる10人くらいの人ありがとう!

やったことは主に3つです。
apk の容量のうちわけは apk を作成した直後に、
Unity のコンソール画面右上のメニューから Open Editor Log を開くと見ることができます。
見て驚くのは画像ファイルが無圧縮なのか1ファイルで3MBもくっていたことです。

・使わないフォントファイルの削除

フリーのフォントをまとめていれていたのですが、結局1つしか使っていなかったので他のフォントファイルは削除しました。これで4MB減らすことができました。

・Texture の Max Size の変更

Texture の Max Size プロパティは既定では 1024 でしたが、これを段階的に下げていきます。
下げると画像が荒くなるのですが、わりと 512 くらいまでは問題ありませんでした。
これで1つの画像ファイルが3MBから200KBくらいまでぐぐっとさがりました。
これを複数ファイルに適用するとかなりサイズが減ります。
ここまでサイズが減るとやっていて楽しいです。

・Android の Device Filter の変更

これは apk だけに影響しますが、 10MBくらい軽くなりました。
Player Settings>Android>Other Settings>Device Filter の項目が ARMv7 + x86 となっている値を ARMv7 に変更します。
x86 を外すので対応できなくなる環境があるらしいのですが、かなりレアらしいのでやりました。
その環境の人がいたら残念なのですが、かなりレアらしいので、10MB軽くなる恩恵を選びました。
こないとは思いますが、もしもクレームがきたら android の x86 版を対応するか、 WebPlayer 版などで我慢してもらう形になると思います。

久々に4コマ漫画を描いてみた

4コマ漫画をひさびさに描きました。
最近、活動量計という万歩計に似た商品をプレゼントしたのですが、
そのときに4コマの展開が思い浮かんで夜中までかけて描きました。
Drawing タブでも見ることができます。

最近、迷走気味なのですが4コマ漫画を久々に描いたらちょっとリフレッシュできた気がします。
時期的にハロウィンネタのゲームを作りたいなー。それではまた(´・ω・`)ノシ

2015年9月13日日曜日

CodeIQ のコンテストやったよ。あとQTableViewの続き書いたよ。

有言実行はできないとかっこ悪いので、なるべく無言実行(事後報告)の SakuraCrowd です。
こんばんわ(´#)・ω・`)

今日は CodeIQ の第1回コンテストの締め切りなので、朝からやってました。

どうせやるなら100位以内に自分の名前をいれたいです!(`・ω・´)シャキーン
そこで昨日、挑戦前の説明を呼んだり、ランキングを見て作戦をたてました。

今回のランキングのソート順は、達成率>挑戦回数>作業時間になっています。
処理時間は、遅すぎれば失敗になるかもしれませんが、ランキングには影響しないようです。
あまり時間は意識せず失敗回数を抑えることが重要です。

設問は4つあります。
ランキングを見ると達成率は ALL 100 が当たり前でした。
そして挑戦回数も、ノーミスの4回から1回ミスした5回までの人たちでしめられています。

絶対にミスれない戦いがそこにある!!!(; ・`д・´)…ゴクリ…(`・д´・ ;)
そんな感じです。

ミスれない戦いの結果(; ・`д・´)

結果として19時ころの暫定ランクは


あなたのランキング/得点
ランキング: 現在150位( 628人中)
総合得点: 400
総挑戦回数: 6
合計解答時間: 4:16:58

こんな感じになりました。(´#)・ω・`)2カイミスッタゼ

犬ときじはノーミスでいけたのですが、サルと鬼の問題で1回ずつミスりました。

サルの問題では、複数のネストなのに break を1回しかしていないせいで、ループを脱出失敗してました。
break じゃなくて goto でどーんと exit: ラベルまで飛んでればこのミスは防げたと思います。
はからずも、最近ツイッターで goto もいいよねという話に混ぜさせてもらったばかりだったことを思い出しました。

鬼の問題では、最大値をきちんと確認しないせいで失敗しました。a と b の2変数のループをそれぞれ大きな値からやっていったら最初に見つかった値が最大値だろうと思っていましたが、必ずしもそうはなりません。
例題2個がOKだったので、大丈夫かもと思ってしまいました。(´・ω・`)

このどちらも、例題ではクリアしていて、テストケースの後半で失敗という形でした。
#もっと例題がほしかったよ。゚(゚´Д`゚)゚。

サルの問題については自分で例題を作れるので、
テストケースを増やせばよかったと思います。

鬼の問題は、テストケースを作る方法がわからないのですが、処理速度を気にしすぎ、演算回数を減らしすぎたのがいけなかったと思います。
せっかく CodeIQ 実行くんという実行環境が提供されているので、
遅くてもより確実なものから試していけばよいと思いました。

ランキングには入れませんでしたが
Python 中級と C++ 上級のスキルピースというものがもらえたのでよかったと思います。(´・ω・`)v
なんか、こういう認定証ってうれしいですよね。

競技プログラミングは難しそうなので敬遠していましたが、もっと上達してランキングに入れるようになりたいです。

QTableView の列と行の追加と削除


先週ブログで QTableView の使い方の続きをかくと言ってしまったので、ちょろっと書いておきます。
QTableView の見た目は、
セットしたモデルのデータを変更しただけでは更新されません。

モデルのデータを追加・削除し、
QTableView の beginResetModel() と endResetModel() 
を呼び出すことで行と列の表示が更新されます。

よし、これで有言実行したぞ╭( ・ㅂ・)و ̑̑ グッ


2015年9月6日日曜日

QTableView で表を表示してみる

タイトルは駄洒落を狙っているわけではありません。
こんばんわ SakuraCrowd です。

今回は今作っているソフトの経過報告です。
最近のブログのパターンは、
「XXX作ったよ。これがスクリーンショットね。あとこんなこと思ったよ。」
という流れですが、
今日はできていないソフトの部分的な話なので、
いつもよりもプログラムちっくな話になると思います。(´Ծ_Ծ´)メガネノトキハマジメブッテル

QTableView GUIライブラリ Qt のクラスです。
それを Python で使うための PySide というライブラリを使っています。
某表計算ソフト っぽい表の GUI です。

このデータの日付が 09/01 なのでおそらくその日に
  QTableView 使うぞ!(`・ω・´)
とサンプルデータを作ったのでしょう。

Qt Designer という GUI エディタを使うとポトペタでウィンドウを設計できます。
選択できる GUI の中に QTableView QTableWidget があります。
どちらも上のような表の GUI です。

QTableWidget簡単に値をいれたりできます。
Qt Designer 上で直接編集することができるので、
サンプルの表を簡単に作ることができます。
それに対して、 QTableView は Qt Designer 上では値を編集できません。たぶん。

QTableView の強みは MVC の構造を使えることです。
名前のとおり QTableView は View です。
これにデータを管理している Model オブジェクトを設定して使います。
Model クラスを作る手間がかかりますが、 GUI の細かな操作をしなくても Model に応じた表を表示してくれます。

Model は QAbstractTableModel継承して作ります。
コンストラクタで基底クラスの処理を呼び出し、いくつかの純粋仮想関数をオーバーライドします。

def __init__(self, parent=None, *args):
    QtCore.QAbstractTableModel.__init__(self, parent, *args)
    #自前の処理

def rowCount(self, parent):
    return 行数

def columnCount(self, parent):
    return 列数

def data(self, index, role):
    return index の指すデータの値

rowCount と columnCount はすぐにわかると思いますが、表の行数と列数を返します。

data 関数はちょっと面倒でした。
index はただの要素番号ではなく QModelIndex というクラスのオブジェクトです。
2 次元の座標を表したり、いろいろとメソッドがあります。
行番号と列番号を得るだけならば index.row() と index.column() で取得できます。
role はまだ QtCore.Qt.DisplayRole しか使っていないのですが、要するに表示用のデータとか編集用のデータとか同じセルでもほしいデータの種類がいくつかあるみたいです。
それに応じてそのセルの値を返します。


さらに data メンバ関数は返す値も少しとまどいました。
古い資料などでは QVariant オブジェクトを返すようになっていますが、
そんなクラスはないとエラーになります。
現在は廃止されたようです。
#なんか封印されし古(いにしえ)のクラスってかっこいいかも。
現在は python のプリミティブ型を返したい型に応じて返します。
文字列が返したければ文字列型、無効ならば None を返します。

こんな感じでデータを管理するモデルを作って、 QTableView の setModel でモデルを設定すればデータを上の画像のように表示してくれます。

本当は行の追加と削除も書きたかったのですが、説明が下手で長くなってきたのでとりあえずここまでにします。
ちょっとしたツールを作るつもりが、それで1ヶ月経過とか普通にあるよね?普通だよね?それじゃーまた(´;ω;`)ノシ

2015年8月29日土曜日

コロッケ・オン・ザ・キャベツを公開してます。あと何かだらけてます。

2ヵ月半も何も投稿していませんでした。
もうだいぶあいてしまったので誰も見にきていないだろうと思いました。
しかし、予想に反して毎日1~3人くらい見に来てくれていました。
それを見て目頭が熱くなりそうになった SakuraCrowd です。
こんにちわ。₍₍ (ง ˘ω˘ )ว ⁾⁾

コロッケ・オン・ザ・キャベツをリリース!


先月はあほげーに参加して「コロッケ・オン・ザ・キャベツ Croquette On The Cabbage | モゲラ」をプレイしてもらいました。

3回目なのにいつもどおりの遅刻組みです。
しかも、モゲラさんの投稿者専用のテストページの URL でエントリーしてしまい、終わった後もどたばたしてました。
運営の方にフォローしてもらい何とかプレイしてもらえてよかったです。
リンク先も直してもらいました。あほげー運営さんありがとう!

それに、数人ですがプレイ結果をツイートしていただけました。
せっかくのツイートなのに最初の数件はプログラムのミスで URL のことなるツイートになってしまって、モゲラさんのゲームのページのツイートの共有カウントになってなかったorz
そんなこともありましたが、とても励まされました。
ツイートしてくれた人たちにも感謝します。勇気をありがとう!

このゲームのキャベツはいろいろなパターンで自主的に動きます。
そのいきのいいキャベツにコロッケをのっけるゲームです。
ステージは4つの固定面と1つのランダムな面があり、ランダムは無制限にできます。
固定面では、ステージ1~4で難易度を変えて、1面はチュートリアル、2面3面はちょっとひやっとするけどわりとすぐにクリア、4面は「今集中してるから話しかけないで(`・ω´・)」という感じでプレイしないとクリアできないようにしたつもりです。

私自身がライトゲーマーであんまりうまくないので、全体的に簡単と思われるプレイヤーもいると思いますが、さくっと3分くらい遊んでもらえたらよいと思います。
実際、 #CroquetteOnTheCabbage でツイッターを検索すると、ステージ5(ランダム面)で80オーバーを出されているツワモノたちがいて驚きました。
俺のハイスコアの倍以上。。。(´・ω・`)スゴスギ

このゲームのプログラミングのワンポイントをかきたくなったのでちょっとかきます。
キャベツがいろんな動きをしているのは iTween 様を使ってわりと簡単にできました。
動きの速度やパターンをメンバで持たせて Unity の inspector で調整してプレハブにしています。
パターンの数だけキャベツのプレハブがあり、それをステージ上に配置しています。
それと、手作りでがんばったのは背景のベルトです。
板1個1個が移動していて、画面の端の見切れる位置に移動したら、右側にテレポートさせています。
キャベツにコロッケをのっける当たり判定は少し大きくして、ユーザがプレイしやすくしています。

そういえばスマホ対応をしていなかった。
今までもDL数が1(自分)だけという悲惨なことが多かったのでやる気がなくなってきたという感じもあります。
多かったというかほとんどが1(´;ω;`)

しかしそれよりも、もっと品質をあげないといくらスマホ対応しても見向きされないんだと思いました。
広告をうつとかいろいろとあるようですが、今はそんな段階ではないと思っています。
特に最初のころは、いらないフォントまでつみこんだせいで容量があほみたいに大きくなっていました。
しかもまだ直していません。そこらへんもきれいにしていきたいと思っています。
他にも未熟なことはたくさんあるし、音楽も作ってみたいです。

なので、しばらくはアクセスのよい(当社比)モゲラさんだけにおかせていただき、修行をしようと思っています。

最近のセンチメンタルなこと


最近はHDDレコーダーが壊れたり、スマホのMNPについて調べたりしていて、あまり開発できない日が続いてま・・・。

嘘!そんなの言い訳だ!m9っ`Д´) ビシッ!!
本当は、仕様がふわふわタイムでなかなか進まない日が続いているのです。

たしかに、雑用でゲ製の時間が減っているのは確かですが、それでも2ヶ月もあれば何か形になるはず。
それが、作りかけでふわふわしている。
そんな日々です。

もしかしたらブログをかいたら、何か気分を切り替えられるかと思いかいてみました。
ニコニコゲームフェス2016の募集も始まったし、あんまり大風呂敷を広げないでちっちゃなことからこつこつとやりたいと思う涼しい夏の日です。

あと好きな漫画をまねたりして絵の練習してるけど上達しない。これも何とかしたいです。
ブログもせめて1ヶ月に1度くらいはネタがなくても書こうと思います。
見に来てくれる数人と自分のために。それではまた(`・ω・´)ノシ

2015年6月11日木曜日

人生で初めて4コマ漫画を描いてみた

あ…ありのまま 今 起こった事を話すぜ!(`・ω´・) 

LevitationGirl の新しいステージマップを作っていたと思ったら
お団子キャノン4コマ漫画を作っていた

 な… 何を言っているのか わからねーと思うが
 おれも 何をされたのか わからなかった…

どうもこんばんわ SakuraCrowd です。
これって真夏のミステリーってやつですかね。<違う

そんなこんなで、タイトルどおり人生初の4コマ漫画を描いてみました。
クリックで拡大できます。
あれなんですよ。
順番に話すと、何でこんなことをしてしまったかの動機も納得してもらえると思うんですよね。

動機1 LevitationGirl のストーリーモードを作りたい


先月、なんとかニコニコ自作ゲームフェス5に投稿させていただいた LevitationGirl ですが、
ブログに書いたように、いろいろと手直しをしたい状況でした。
そこで、投稿してから10日くらいで、動作を快適にして見栄えも改善したバージョンをあげました。

そのバージョンアップでおしまいにしても良いのかもしれないのですが、
当初描いていたストーリーのあるアクションRPGにしたいという思いがあり
ふりーむ!クエスト用の2作品を作成して投稿したあとから、
また LevitationGirl を作り始めていました。

動機2 ステージがうまく作れない


ゲームフェスのときは締め切りを意識してあまり多くのステージは作る余裕がありませんでした。
今回は、サイドストーリーもいれてステージもたくさん作ろう!
うはあああああ、夢が広がりんぐwwwww(死語?)
っていう感じで盛り上がったんですが、ステージがかけない('∀`)

どこぞの巨匠でもないのに、
だめだだめだだめだあああああヽ(`Д´)ノびりびりー←何かを破る音
みたいに、いつまでも納得のいくステージができない。

そこで、前回「デスチェリー農場へようこそ!」を公開した際のブログの言葉をうっすらと思い出しました。

作りたいゲームがはっきりイメージできない状態では、
いくら優秀なエディタを使っても何も作れない。

ステージを作れないのは、イメージができていないからだと思いました。
そこで、ラフなイメージ図を描いてみようと、ひさびさにペンタブを引っ張り出してきました。

動機3 ペンタブをうまく使いたい


ペンタブは何度か挑戦しているのですが、なんかしっくりこない感じでした。
そこで、ペンタブと絵の練習のために4コマ漫画を描いてみようと思いました。

ここらへんからステージ作りと関係なくなってきますが、
ラフなイメージ図を作るためには絵をペンタブですらすらかけなきゃいけないんだ!
といった謎の使命感がありました。

出来がひどくても、ひとつの作品として作ることができたら経験値が増えそうな気がしました。
最初は LevitationGirl のキャラで書き始めたのですが、 このゲームのキャラはドット絵しか作っていないので、うまく書けませんでした。

ドット絵の4コマがあっても面白いかもと思ったのですが、当初の目的を逸脱してしまうので、やめました。

そこで、以前にフリーハンドでキャラを描いたお団子キャノンをテーマにした4コマ漫画を描いてみようと思いました。
あんまり細かいことは気にせず、とにかく1作品を作るぞという気持ちでがんばりました。
でもできる範囲で気を使って描いたつもりです。
プロの方がみたらぶっとばされそうな出来でしたが、なんとか作ることが出来ました。

最初に下絵をちょこちょこっと書いて、その上のレイヤーに本番用の絵を描いていきました。
いきなり全部ではなく、おおざっぱな絵を描いてから段階的に本番用の絵にしていきました。

これが本番?まだ下絵じゃねーか

とかいうつっこみもあるとは思いますが、これからも絵の練習をかねて描いていけたらと思います。

タブの追加

動機が納得していただけたかは自信を持てませんが、そんな感じの経緯でお絵かきもがんばろうと思いました。
ちなみに上のタブに Drawing という項目を増やしました。
そのページにお絵かきしたものを掲載していきたいと思います。
下手な絵ですが、楽しく描けたらいいと思いますので、温かい目で見てあげてください。

2015年6月3日水曜日

ふりーむ!クエスト1に WOLF RPG エディタと Unity を使って2作品出してみた。

春の雨は好きだけど蒸し暑いのは嫌いな SakuraCrowd です。ι(´Д`υ)アツィー
でも、嫌いなことじゃなくて好きなことで自分を語りたいと書いてて思いました。(`・ω・´)

先月あたりから始まったふりーむ!フリーゲームクエストクエストNo1「好物を奪われたゴードン」に投稿しました。
さくらんぼをテーマにした作品を投稿して、紹介文に「フリーゲームクエスト1参加中」というキーワードをいれたらOKのようです。

デスチェリー農場へようこそ!~ Welcome To Death-Cherry Farm ~:無料ゲーム配信中! [ふりーむ!]

轟け!爆音機!~Cherry Defence~:無料ゲーム配信中! [ふりーむ!]
轟け!爆音機!~Cherry Defence~ - Google Play の Android アプリ
轟け!爆音機!~Cherry Defense~ | モゲラ




デスチェリー農場へようこそ!~ Welcome To Death-Cherry Farm ~

ふりーむ!は前から気になっていましたが、ツクール系が多いイメージで、あまり作ったことのないジャンルだったので、結局作らずにいました。
今回は、クエストというゲームっぽい形で、コンテスト?というか大喜利のようなものが始まったと聞いて、いい機会だと思い作ってみました。

WOLF RPGエディターを使うのは初めてのような、そうでないようなそんな感じです。
前もなんとなく使ってみようと思ったのですが、サンプルのゲームを起動して遊んで、なんとなくマップを触ってみて、終了していました。
今思うと、結局作りたいもののイメージもないのに、いくらエディタを使っても作品ができるわけないよねということだったと思います。

今回は、最初に作りたいもののイメージがあったので、それを作るにはどうしたらいいかを調べていくとひょいひょいとできた感じです。

さくらんぼがテーマなので、さくらんぼ狩りをゲームでしたら面白いかなーと思って作りました。

敵と戦うとほとんどの場合は負けます。これは仕様です。
レベルあげなんてさせません。
敵と遭遇して戦闘シーンになったら、消化試合の気分でたたかうを押してください。

しかし、ある条件を満たすと回避できることも多々あります。
こんなうじゃうじゃいたら無理だよ!。・゚・(ノД`)・゚・。 と思うところは回避方法を用意しています。
本当に逃げないといけない敵もいますが、アクションが苦手な作者でもなんとかなるスピードや個体数にしています。

WOLF RPG エディターの初心者ですが、とにかくマップを書いて、イベントをはる
それだけで、RPGっぽく仕上げてしまうのがこのエディタのすごいところだと思います。
敵のデータなども最初から設定がある程度されているので、それを流用したり、一部変更するだけでよいようになっていました。
戦闘シーンももっとオリジナルのも作れるみたいですが、それっぽいものは最初からコモンイベントとして用意されています。
この作品では、戦闘中に会話するシーンがあるのですが、これも用意されているコモンイベントの戦闘のターン開始みたいなコモンイベントを一部書き換えるだけで簡単にできました。

NPCなどはすべてイベントという形ではりつけ、そのイベントの中の変数を書き換えることでセリフや行動パターンを変更することができます。
歴史と実績のある WOLF RPG エディターなので、有志の人たちの説明サイトがたくさんあるのも強みだと思います。

Plicy [プリシー]というサイトでは、 WOLF RPG エディタなどのさまざまなゲームをブラウザ上でプレイできるようにしてくれます。
この作品も登録しています。
デスチェリー農場へようこそ!をブラウザで遊ぶ!

しかし、サイトの説明に書いてあるとおり、若干動作が異なるため、この作品も少しプレイしづらい状態になることがありました。

・少し動きが遅い(池のあるマップに移動したあと激重になりますがなんとか動かせました。ほかは若干遅いですがあまり気になりません)
・隠し通路でキャラが浮き出る。見た目は変ですが操作性に問題はありません。
・畑の歩くだけでとれるはずのさくらんぼがキャラが下にいるととれないので、ぶつかる必要がある。

そのため、ふりーむ!からのダウンロード版をおすすめします。
今回は少し残念でしたが、ゲームによっては十分遊べるようです。
ブラウザでできるという手軽さ、プラットフォームの拡大はとても魅力的なので、 plicy にはとても期待しています。(偉そうですみません)

轟け!爆音機!~Cherry Defence~

デスチェリー農場を作っている途中、登場人物の設定とかマップを考えるので空転することがたまにありました。
RPGを作るのは、システムを作ればいいだけじゃなくて、話とかマップも楽しめるようにしないといけないので、今までミニゲームを作ってきてシステムができれば、もうだいたいOKみたいなものとは違う難しさがありました。
しかも、フラグを管理して、このときはこの場所にこれがないとおかしいとか、そういう矛盾点のチェックなども大変でした。

そんな息抜きをかねて、他のアイデアを考えているときに出たのが、鳥を追い払いさくらんぼを守るゲームです。
タワーディフェンスを意識して、チェリーディフェンスという名称をつけました。

さくらんぼの木に葉っぱをぺたぺたはる作業などは、デスチェリー農場の仕上げの時期に、なんとなくだらけたときに気分転換でやってました。
あと、ムクドリも google 先生が検索してくれた写真画像を参考にして絵を書いて結構まじめに作りました。
追い払う際に使うものが爆音機というものであることなども wikipedia 先生に教わりました。

そんな感じでゲームシステムや画像はデスチェリー農場の作成の息抜きにちまちま作り、ゲームとしての作成は土日でいっきにやりました。
なんとなくあほげーを作っている気分でした。

爆音機をドラッグ&ドロップするとばこーんと爆発音がしてその近くのムクドリが逃げていくのですが、汗マークをつけたりするだけで、「お、逃げてく逃げてく」とわかりやすくなりました。

そんな感じで、作成して、その後2日間くらいちょこっとずつ手直しして、 android の Google Play 版も公開しました。
もしよろしければダウンロードしてみてください。
マウスで操作するのとタップで操作するのとで、割引狩は明らかにタップのほうが楽しかったのですが、今回はどっちも同じくらい楽しかったです。
最後に、いつものように素晴らしい素材を提供していただいたフリー音楽素材/魔王魂様とフリー写真素材 Futta.NET様に感謝します。

轟け!爆音機!~Cherry Defence~ - Google Play の Android アプリ
モゲラからも簡単に2分でできるのでよろしければプレイしてみてください。
轟け!爆音機!~Cherry Defense~ | モゲラ

2015年5月21日木曜日

Levitation Girl ver1.1 を公開したよ|・ω・`)

壁|ω・`)<こんにちわ。アンニュイな気分の SakuraCrowd です。
なんか、だるい。やっぱり夜中まで作業しちゃだめだー。次の日が超だるい。
首とかもむとすごい気持ちよいくらいだるい。
リポ○タンがあったら1箱まるまるのんでしまいたいくらいだるい。

だるさの説明はここらへんにしといて
昨日、というか日付をまたいだ直後の今日、 Levitation Girl ver1.1をリリースして、動画をニコニコ動画にアップしました。


なんかもうちょっとだから頑張ろうとかやってたら夜中になったんだよね。
前回なんとかニコニコ自作ゲームフェス5Levitation Girl を投稿しましたが、ブログに書いたとおり、いろいろとまだ修正したかったり追加したい点がありました。
それをなんとか実装して、前よりも見栄えがするようになったと思ったので ver1.1 として公開しました。
エントリーした初期バージョンも変わらずプレイできます。
お暇な方は、何が変わったか間違い探し的な遊び方をしてもらってもぜんぜんオッケーです。壁|ω・`)v

そんなこんなで間違い探しの結果発表。

変化1 ちゃっぴーが移動できるようになった

ちゃっぴーというのはもぐりんが飼っている犬で、ステージ2に出てくるんですが、よく見るともぐりんは移動しているのに、ちゃっぴーは向きを変えるだけで移動していません。
これでは、どっちが散歩にきたのかわかりませんね。
これは、もともとちゃっぴーは別のイベントで移動してはだめな状態で使う予定だったのをそのまま配置しちゃってました。

変化2 背景画像とキャラのノイズを除去

背景はステージ1からすぐにわかりますが、移動していると一定間隔で縦線のノイズが走ります。
締め切り前にわかっていたのですが、なかなか原因がわかりませんでした。
それで、エントリーをしたあと、じっくり調べようとしたらあっさり答えがでてきました。

表示しているマップチップの隣のマップチップの画素がたまに拡大率の関係で出ていました。
その隣の列というのがたまたま全部同じ緑色のために緑の線が表示されていたようです。
最初は、 Unity の Collider の範囲などをあらわしている緑の線がなぜかでていると思ったりしたのですが、ぜんぜん違いました。
自分で書いた緑のドットがでていたのでした。(ゝω・)v

解決策としては、結局1ドット分ずれた場所が出るのは仕方ないので、そこに余分なスペースをつくることにしました。
この作品では 16x16 のドット絵を使っているので上下左右にそれぞれ 1 ドットのスペースをつけて 18x18 に修正しました。
Sprite Editor で Multiple の設定をするときは、  Offset 1 Padding 2 で Slice しました。

キャラも、ステージ4の左上にいる鳥なんかがなぜか緑色の線が上に出ています。
それもコライダーの範囲をあらわす線の緑ではなく、鳥の上に緑のスライムが書いてあり、そのスライムの緑の線が、微妙な拡大率の変化ではみでて現れたようです。

#なんか久しぶりにためになることを書いた気がする。

変化3 もぐじろうと名乗ったな?あれは嘘だ。


ステージ4に武者修行をしているちょうちんもぐらが出てくるのですが、名前がステージ1に出てくるもぐじろうになっていました。
コピペしたのを直し忘れていました。
しかも、何度もテストでメッセージを表示していたり、動画もとっていたのに気づきませんでした。
正しい名前はせっかくなので実際にプレイしてみてください
だいたいの人の想像通りの名前だと思います。

この間違いにどこで気づいたかというと、メッセージウィンドウを新しいものに変更したときです。
そのときに、セリフの文字列を新しい関数にコピーしていたところで、もぐじろう2度目の出演に気づき修正しました。


変化4 僧侶が本気出すようになった

ステージ3で仲間になる僧侶ですが、実は今までは何もパーティに貢献していませんでした
Ω ΩΩ< な、なんだってー!!
きらきらしているものを出しまくっていたのですが、実はまったく効果がありませんでした
Ω ΩΩ< な、なんだってー!!
#働き蟻の社会だって2割だか何割だかは実はさぼってるらしいし、そういうことですね。<違う

でも、根がまじめな僧侶は ver1.1 からは本気を出すようになりました。
きらきらをたくさん出す見た目重視ではなく、1個がくるくるまわって味方を守ってくれるようになりました。
敵の攻撃がタイミングよくきらきらにあたると、その攻撃を打ち消してくれます。
そのときに、 Guard とでて音が出るんですが、なんとなくうれしい気分になります。

そういえば、他の攻撃をした際も、ダメージカウントが表示されるようになりました。
効果音だけでもかなり攻撃してる感がありますが、
ダメージカウントや Guard と出ることで、より明確に効果がわかるようになりました。

まとめ

そんなこんなで、変化した Levitation Girl ver1.1 の説明でした。
他にもポーションの表示を消したり、HPを数値で表示したり、音量調節の機能をつけたり、PTが壁で分断されてひっかかって動けなくなるバグを直したり、内部的にはもっと大胆な変更もあるのですが、うまく書くことができなそうなので割愛します。

それと、バランス調整で敵が瞬殺されるようなことがなくなり、少しははらはらしていただける設定になったと思います。
プレイ時間は動画を見るとわかるとおり5分くらいです。
もしよろしければ遊んでみてください。→Levitation Girl ver1.1

2015年5月12日火曜日

ゲームフェス5の締切1分前に Levitation Girl をエントリー

こんばんわ。ゲームフェスに投稿した次の日から眠気がすごい SakuraCrowd です。
泥のように眠い。成長期なのかな( ˘ω˘)

タイトル通り3作目をニコニコ自作ゲームフェス5へと投稿することができました。ヾ(〃^∇^)ノわぁい♪

この3作目は、最初大風呂敷過ぎて、本当にぎりぎりになってしまいました。
浮遊少女と仲間が冒険するアクションゲーム Levitation Girlです。

上のアニメーション画像やタイトルはゲームの紹介ページにリンクしています。
もしよろしければ遊んでみてください。

夏休み最後の日の気持ち再び


実は締切日の 5/10 の夕食前まではぜんぜんまとまっていませんでした。
もっとストーリーをいれたアクションRPGゲームを作ろうと思っていて、ストーリーもできていました。
しかし、実装に手間取り本当に最初のほうのステージしかできていなかったんです。
やっと、ゲームシステムの基本ができたような状態でした。

「もう体験版みたいな感じで、この部分までで出しちゃおうかなーたはー」
とか思っていたのですが、応募要項に体験版もウェルカムみたいな文言がなかったから、やっぱり一通り作らなきゃだめかなと小心者の僕はどうすればいいか悩みました。

身を捨ててこそ浮かぶ瀬もあれ(ちょっと意味違うかも)


イベント処理を今から作るのは無理そうです。
そこで、ストーリーは今回は外そうと決めました。
せっかく考えたストーリーだったのですが、なんとしてもゲームフェスで自分の作った作品を触れてもらいたいと思って決めました。
ストーリーを外しても、世界観やゲームシステムを遊んでもらいたいと思いました。

#なんか、今日のブログって熱いかも。書いてて思った。修造じゃないよ?

そう思ってから、5時間くらい大河ドラマもビデオにとって、ノンストップでがんばりました。
最初は、ステージのモンスターを全部倒す必要はなくて、軽いアクションとストーリーを楽しんでもらえる形にしようと思っていました。
しかし、ストーリーを外した今、
「なんかちょろちょろ動いてたらすぐ終わった」みたいな
カルピスを10倍薄めたような微妙なものになってしまいます。

そこで、今回はステージごとのモンスターを全部倒すことをゲームの目標にしました。
今までは「いつでもウェルカム」だったワープ用のポータルを少し直してステージのモンスターが 0 になったら出てくるようにしました。
そのあとも、細かい修正はありましたが、なんとか23時にはひととおりプレイして、即興で作ったゲームクリアの画面にまでいけるようになりました。

動画撮影&投稿


その後も、数回に1度固まってしまう再現方法が謎なバグに悩まされましたが、奇跡的に30分くらいで直しました。
もう気づいたら23時40分でした。
いつもは、動画をとるときは、こんな感じでプレイしようという段取りを決めてやるのですが、
「段取り?そんなもの作ったあとでいいよ!」
みたいな意味不明なテンションで、すぐにプレイしてとって投稿しました。

しかし、案の定「容量もビットレートも無課金の貴様には大きすぎるわ」と突っ返されました。
このときたぶん23時50分くらいでした。

課金しようかなとも思いましたが、その手続きで10分過ぎてどうせアウトだわと思い
AviUtil 先生にすがりつきました。
前回やっていたおかげで、すぐに動画ファイルをくわせて、ビットレートを設定して変換しました。
このエンコードの時間が超長く感じました。

「それでも AviUtil なら… AviUtil ならきっと何とかしてくれる…」(2回目)


いい感じでじらしプレイをされて「ああああああああ」という気持ちになりましたが、
さすが AviUtil 先生、残り2分というカップラーメンも作れないシビアな残り時間(ブ○メンは大丈夫b)で、何とか出力してくれました。

あとはこれを投稿して、タイトルと簡単な説明を入力して、投稿完了!
このとき23時59分
しかし、まだタグを固定していない。(´・ω・`)
タグを入力してるけど、まだ固定していない。(´・ω・`)
俺が投稿のプロなら、投稿の入力画面でタグ固定する方法もわかっていたのかもしれないけど、
まだ固定していない。(´・ω・`)

なんか、投稿してもすぐにはページが反映されなくて、
「課金しているユーザ様から優先して処理します。10人待ちです♪」
みたいなのがでて、また「うわああああああああああ」と思いながら見てました。
処理が数十秒で終わり、ニコニコの時報が鳴る前のメッセージを聞きながら、タグをロック!(`・ω・´)

なんとか、ぎりぎりでエントリーできたみたいでした。
最初に書かれたのが「ぎりぎりwww」みたいなコメントでしたが、
それがすごいうれしかったです。
ぎりぎりはアウトではなくセーフという意味だから。

しかも、自分のあとに3件くらいさらに投稿されていました。
どの世界にも上には上がいるんだなーと思いました。

そのあと冷静になってみると、
表示している操作ガイドが古くて、
  z キーなんて1mmも使わないのに説明が書いてあったり
ポーションとか1滴もでてこないのに表示欄があったり
といろいろとミステリアスな感じになってしまいました。

いろいろとそのような不備もありますが、
仲間をつれて飛び回り、オートバトルで敵を倒して進んでいくゲームシステムと、
ちょうちんもぐらたちと共存するほのぼのとした世界観は出すことができたと思っています。


そんなこんなでラスト5時間くらいで、今あるプログラムと画像を使ってエントリーできました。
なんか、急な来客で冷蔵庫にあるものでささっと料理作りましたみたいになってますが、そうじゃないと思いたいです。





動画を投稿してから気づいたこと


この動画、お気づきの方も多いかもしれませんが、画面の比率が横にのびています。
aviutil 先生の初期設定の画面サイズが指定されていたのでのびたようです。
それでも最初みたときは、「お、このほうが画面いっぱいで表示されていいじゃん!」と結果オーライだと思っていたのですが、今見るとちょっと疑問です。
あと、さっきも書いた1mmも使わないzキーの操作説明が書いてある部分は取り込まなくてもよかったじゃん!と気づきました。

秒単位ではらはらしたエントリーでした。
今度はもっと余裕を持ってエントリーして、もっと見やすい動画を投稿したいと思います。

今までたくさんプレイして楽しませていただいたゲームを作ってきた超大御所の方たちが審査員と聞いて、
もっとちゃんとしたものを作らなきゃと思っていたのに
結果的に間に合わせるのが精一杯のものになってしまいました。
そういう意味で、とても申し訳ない気持ちがあります。
でも、このような機会はもうないかもしれないと思うと、どうしてもエントリーしたかったです。
わがままですが、よろしくお願いします。

#こんなブログは見てないと思いますが、そんな気持ちもログに残しておきます。

今後の予定

あんまり予定を書くと、義務感みたいのが出ていやなんですが、
このままじゃ終わらないよ!という決意表明をしておきます。

Levitation Girl を修正したものを再びリリースしたいと思います。
もうエントリーしたものは変更しませんが、それとは別につくり投稿したいです。

そして、当初作る予定だったストーリーのあるバージョンもその後、作りたいです。

上のほうのリンクからゲームをプレイしていただくとわかりますが、主人公の攻撃が強すぎて、PTがにぎやかし程度の扱いになっています。
これは、バランス調整に時間を使えなかったため、ぼろぼろに負けるよりは、普通にプレイしていればクリアできるつくりのほうがいいだろうと判断して、強めにしています。
バランス調整、ウィンドウの字が小さいことや音量調節などのUIの改善、タイトル画面やOP、タイム計測などを追加したいです。

謝辞


超あほげーにエントリーした割引狩 WaribikiHunterを、プレイしていただきそのエントリー代行までしていただいたあほげー様に改めて御礼を申し上げます。
たくさんのエントリーの代行、本当にお疲れ様です。

音楽素材を使わせていただきました全曲無料・フリー音楽素材/魔王魂様にも御礼を申し上げます。
やっぱり、音楽が入るとグレードがあがってゲームの雰囲気が強くなりました。

そして、ニコニコでコメントを書いてくださった方たちにも御礼を申し上げます。

2015年4月29日水曜日

ニコニコ自作ゲームフェス5へエントリー

ゲームフェスにエントリーしたことを書こうと思っていたら、便利ツールの紹介になっていた。。。
そんな今日のブログです。

エントリーのため動画をアップロード


ニコニコ自作ゲームフェス5へは、超あほげーさんに「割引狩 WaribikiHunter」のエントリー代行をお願いしています。
冷静に考えると、その前に作った「お団子キャノン」もエントリーできるんじゃね?といまさら気づいて、がんばってエントリーしてみました。
エントリーするには動画をアップロードしないと始まらないようです。

動画を作るのは、前に GooglePlay の宣伝用の動画などを YouTube にアップロードしていたので、簡単にできました。
ニコニコ動画の作品をみると BandiCam を使用している人が多かったのでアマレコではなくそちらを使いました。

mp4 でとってみると 91 MB もあって、ニコニコの無料会員の制限 40 MB を軽く超えていました。
でも、負けない(`・ω・´)シャキーン
俺には AviUtil さんがいるからな!(`・ω・´)

「それでも AviUtil なら… AviUtil ならきっと何とかしてくれる…」


動画の編集やエンコードなら AviUtil


何も考えずにでかい mp4 を AviUtil にくわせてプラグインの X264 で出力すると 20MB にまで圧縮されました。
AviUtil さん万能すぎー。ヽ( ´¬`)ノ ワ~イ !!

それで、早速ニコニコ動画の投稿に 20MB の mp4 をアップロードしたのですが、
「ビットレートが無料会員の限度を超えているから出直せ(・∀・)カエレ!!」
みたいに、突っ返されました。映像と音声のビットレートの合計 600KBps が制限らしいです。

調べてみたら、すでにいれているプラグインの X264 の出力の設定をいじることで対応できるようです。
保存ダイアログの動画の圧縮のボタンを押すと出てくる設定画面。
細かくいっぱい設定がいっぱいあって、「あ、俺には無理かも」と思ったんですが、親切なQ&Aなどをみて設定しました。



上のように設定して、出力すると、無料会員のビットレート制限の 600Kbps に抑えて出力できました。
まじで、 AviUtil さんかっけーっす。

スクリーンショットをお手軽にできる FastStone Capture


あと、スクリーンショットで使っている FastStone Capture も素敵な発見がありました。
PrtScr キーでパシャコっと撮影した後、ドローというボタンで、上のような図形を簡単に追加できます。
最後にOKを押すんだけど、そのときに上のアンチエイリアスのチェックをはずさないと処理がかえってこなくなりました
それさえ注意すればかなり楽にSSを作ることができます。

blogger とかにニコニコ動画を埋め込む方法


そんなこんなで動画がアップロードできました。
ちなみに blogger でニコニコ動画を貼り付けるには、ニコニコ動画のページの共有ボタンから、外部プレーヤーのコードをコピペすればよかったです。プレビューだと表示されませんが、勇気を出して公開してみると表示されました。

【ニコニコ動画】【大砲ゲーム】お団子キャノン OdangoCannon【Unity 2D】

ニコニコ動画初投稿&エントリーした感想


エントリーは簡単で、「ニコニコ自作ゲームフェス5参加作品」というタグを設定してロックするだけでした。
あとはゲームの簡単な紹介と、プレイするためのURLを動画の説明文に書くだけでOKのようです。

ニコニコは見てコメント書くことは数年前からしていましたが、投稿者となるのは今回が初めてなので、使い勝手がまだよくわかりません。
早速「なんかかわいいなw」というコメントがもらえてうれしかったです。
YouTube でもコメント欄はありますが、画面に直接流れるのをみると「あー、このタイミングでそう思ったんだな」とわかって楽しいです。

せっかく募集期間が延長されたのでもう一作品、できたら作りたいと思います。
余裕ができたら過去に YouTube にあげておいた作品の紹介動画もニコニコにも転載したいです。


2015年4月22日水曜日

超あほげーに「割引狩 WaribikiHunter」をエントリー!そして google play 版も!

寒いのもいやだけど暑いのもいや(`・ω・´) <挨拶

先週開かれた超あほげーにエントリーすることができました。
前回に続いて2回目なので、サーバの用意とかエントリーの段取りはスムーズにできましたが、
なんだかんだで20分遅刻してのエントリーでした。(ゝω・)v

このゆるさがいいと思うんですよね。ふところが広いというか。
実際、自分のあとに30人近く遅れてエントリーしてたみたいでほっとしました。
でも、間に合わせようという気持ちはあったんです。本当です。遅れてごめんなさい

21時になる直前は、久々に夏休みの終わりの日の気持ちを思い出してセンチメンタルでした。
動悸、いやな汗、泣き出しそうな気持ち。プライスレス。<(´・ω・`)いらんわ


お題発表の金曜日


21時過ぎの放送でお題がスーパーマーケットと聞いて、いろいろとネタを出して、
最初にまとまったのが、もぐらたたき風の割引商品の争奪戦でした。

もう眠かったのでプログラミングをする気分にはなりませんでしたが、
絶対使うだろうと思える、
卵とかキャベツとかお魚とかステーキ肉とかの商品を InkScape で描いてみました。
キャベツとか、変形させた円を数個組み合わせただけですが、
それなりになって描くのが面白かったです。

MP全開の土曜日


もう夜には主要な絵はかけていたので、
明日の午前中にはできちゃうかもなーたはーとか、
よーし今回は2作品出しちゃうぞーとか、
思ってたけど、昼、夕方と時間が経過するたびに
1作品すら難しく焦燥感で胸がどきどきでした。

そんなこんなでモゲラさんにゲームを登録させていただいて
それを超あほげーにエントリーさせていただきました。

割引狩 WaribikiHunter | モゲラ



いっぱい商品がおかれるとそれだけで楽しそうな気分になりませんか?
実装の初期は、キャベツ1個をぽつんと置いて、クリックしたらぴこーんてなる確認とか、
割引シールと合体する処理のテストをやっていました。

それをいくつも配置して上の絵のような感じで動かしたときは、
できてもいないのに「キタ――(゚∀゚)――!!
というテンションになりました。

それと、BGMとかが入るとまた雰囲気がいっそうあがりますね。
今回も前回と同じ魔王魂さんのサイトのフリー素材を使わせていただきました。
ありがとうございます。


超あほげー生放送の日曜日


エントリーを終えた翌日の日曜日は、土曜日にMPを使い切った感じだったので
他の作品をプレイして遊んだり、ちょっと gif をとって紹介画像を作るだけにしました。

そして、生放送開始。ニコニコ動画とコラボとかあほげーすごいね!
ちょうど大河ドラマが終わったころに自分の作品が放送されました。
100%OFF のシールは、受けを狙っていたわけではないのですが
少し和んだみたいでよかったです。
まわりの客の群れにも気づいてもらえたし、しっかり遊んでもらえて感謝です。
#後日、ランクAを達成されたことがツイートされて、さらにうれしかったです。

改良の月~火曜日


その後、 Google Play に向けて、いくつか気づいた(+間に合わなかった)不備を直しました。


どうしてもしたかったのが、値引き額のポップアップです。
タイムアタックということもあり、
プレイ中に画面下のスコアを見る余裕はあまりありません
クリックした場所に表示するならば、
今のクリックで自分がどのくらい得をしたのかがわかりやすいと思いました。
実装してみると、実際どのくらい得したかを数値でみることでモチベーションがあがりました

あと、右下のがま口の財布の絵が、3点による顔認識のせいか
自分の中で人格化されつつあったので、吹き出しで感情表現することにしました。

やりこみ要素として、ハイスコアを表示したいと思ったので、
前回のお団子キャノンのように
タイトルとプレイ画面の2画面の構成にしました。
タイトルでは、スーパーのちらし風の価格の表を作ってみました。

あと、音量調節も前は、プレイ画面でやってましたが、
プレイが始まってから音量調節できるわけねーだろ
という気持ちがあったのでタイトルにもつけました。
まー、プレイ画面でも勝負をすてて調節して Retry ボタン押せばいいじゃんと思いますがタイトル画面になぜつけないの?という突っ込みはまぬがれないし、コストも低かったので実装しました。

アプリ公開の水曜日


そんなこんなで、金曜日の夜から作り始めて、水曜日の夜に Google Play で公開できました!
6日でアプリ作ったよー!
あほげーはなんか知らないけどすごいと思う。まじで。

お団子キャノンはマウスのほうがやりやすい気がしたけど
割引狩 WaribikiHunter はタブレットのほうがやりやすい気がする。
なんかぺたぺた直接触ったほうが楽しい気がする。
これはアプリをインストールしてほしいからというわけではなく
まじめにやってて思いました。まじで。


割引狩 WaribikiHunter - Google Play の Android アプリ






外国の人もウェルカムなので、もぐらたたきの英語を調べて Whac-A-Mole も宣伝画像にいれたよ!
Please DownLoad & Play WaribikiHunter!! 
This is Free Whac-A-Mole Game on Google Play!
HAHAHA! good-bye!
#↑ネットを使わずに即興でできる限界の英会話。たぶんカタコト。