- うごりぜいめんと

【ゲーム】Slip Beats

Slip Beats:無料ゲーム配信中! [ふりーむ!]

半年前から作っていた音ゲーがついに公開されました。
デレ○テに感銘を受け、音ゲーを作ろうと決心してから、苦難は多くありながら何とか実現できたことうれしく思います。
やっぱりスマホとは違ってPCには操作に限りがあるので、遊びづらいゲームになってしまったかもしれません…

プレイデモを兼ねた紹介動画投稿したのでよかったらご覧ください







実は最近精神が大分擦り減っていて学校にあまり行けてなかったりします。
今のところ創作続けるのも難しくなるかもしれないという状況です…
もし、復帰できた時にはよろしくお願いします。

【ゲーム】カクレんぼ(リメイク版)

カクレんぼ:無料ゲーム配信中! [ふりーむ!]

一年ぶりのゲーム公開。そして大がかりなプログラムを書いて作った初めてのゲームになるかと思います。
去年の春休みごろから本などを参考にしながらプログラミングの勉強をして、途中曲作り等の期間を挟んでようやく完成しました。
背景描くのが意外と難しく絵の方にもだいぶ時間がかかってしまいました…

このゲームは一応中一のころに作ったゲームのリメイク版になります。
昔に比べるとシステムもグラフィックも向上したでしょうか…
シナリオや雰囲気は維持し、音楽も原作の曲をアレンジしたりそのまま使ったものを収録しています。

地元の友達には結構プレイしてもらえたのですが、相変わらず仕掛けやギミックがわかりづらいとのご指摘を受けました。
次回作は絵や音楽ともに改善できるよう精進いたします…

ちょっと難しいかと思うので、ここを見に来てくれた方へ少しヒントを…
・棒はかなり万能
・教室の机の中にアイテム
・看板はある遊具の色に合わせる
・ハーモニカは看板の色を合わせた後譜面を使って吹く
・日記の絵はある作家を表していて、その代表作がパスワードになります

攻略を兼ねたプレイ動画を公開しました。よかったらご参考にしてください。

cocos2d-xというゲームエンジンを導入したので、次回作はスマホにも対応したゲームを作りたいかと思います。
本当は技術を身に着けるためにもがっちがちにプログラム組もうかなと思っていたのですが、そんなこと言ったら画像表示するだけでもすごく長いコードを書かなきゃいけなくなりそうなので…
まあ、ゲームエンジンと言っても何でもカバーしてくれるわけではないと思うので、工夫できるところでコーディングの力も身に着けられるといいなと思います。いつか自分でライブラリを作る!とかなったときにも参考になりますし。
次は「理不尽ごっこ。」の魔界王国での世界のお話にしたいと思います。
昔みたいな柔軟な発想ができるかどうか不安なんですが、いい加減完全新作のゲームを頑張って作りたいです…

アプリケーションの下にある特定のファイル名のファイルを検索したい(C++)

普段は淡々と新曲報告している奴が急にどうしたかと思う方も多いかと思いますが…

最近、何を思ったかデレ○テにインスパイアされて作曲の方を少しお休みしてプログラミングで音ゲーを作ろうとしているところなのです。

製作はおなじみVisualStudio(C++) + DxLibで行っています。

そんなところで、B○S等のようなフリーの音ゲーのように追加で曲のファイルをどんどん入れられるようにしたいなと思い、それに伴い譜面ファイルを検索するプログラムを作ろうとしたのですが、これがなかなか難しくて…
他のゲームでもよくつかわれる機能だと思うのですが、自分が探した限りピンポイントでそういう機能の作り方の説明をしているところが見つからなかったので初心者なりに方法を書いておこうかと思います。実はすでにあったという場合は見なかったことにしてください。

ファイルを検索する際は、windows.hをインクルードして使えるFindFirstFile,FindNextFile,FindCloseという関数を使います。
早速FindFirstFileの関数を調べてみると、引数にWIN32_FIND_DATA戻り値にHANDLEという見慣れない型のようなものが出てきます。
WIN32_FIND_DATAは構造体型で、そこにファイルのデータを与えることができます
HANDLEは検索ハンドルと呼ばれるもので、これが有効な間は検索を続けます。

プログラムの大体の流れは
①FindFirstFileで最初に検索に該当するファイルのデータをデータ構造体に入れる
②①で戻り値として取得した検索ハンドルでFindNextFileを呼び出し、他に該当するものがないか探す。見つかったらデータ構造体に代入。
③②を見つからなくなるまで繰り返し、終わったらFindCloseで検索ハンドルを閉じる
というような感じです。

今回はフォルダの下のファイルを探すので、まずアプリ下に存在するファイルとディレクトリをすべて検索してから、ファイルの場合該当するファイルか、フォルダの場合はその下に該当するファイルがないかを再帰で調べることにします。

とりあえず、アプリ下にあるファイルとフォルダをすべて表示するコードを載せます。


#include
#include

void FindFile(HANDLE hFind, WIN32_FIND_DATA FindFileData, char* direc) {
if (hFind == INVALID_HANDLE_VALUE) return; //関数が失敗したら終了

do {
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { //ファイル属性がディレクトリの場合
if (strcmp(FindFileData.cFileName, "..") && strcmp(FindFileData.cFileName, ".")) { //下の階層だけ見る
printf("%s (DIR)\n", FindFileData.cFileName);
char s[CHAR_MAX] = "", s2[CHAR_MAX] = "";
sprintf_s(s, CHAR_MAX, "%s%s\\", direc, FindFileData.cFileName); //現在のディレクトリ\次のディレクトリ
sprintf_s(s2, CHAR_MAX, "%s\\*.*", s); //現在のディレクトリ\次のディレクトリ\*.*
HANDLE hFind2 = FindFirstFile(s2, &FindFileData); //そのディレクトリについて検索
FindFile(hFind2, FindFileData, s); //再帰
FindClose(hFind2);
}
}
else {
printf("%s%s\n", direc, FindFileData.cFileName);
}
} while (FindNextFile(hFind, &FindFileData)); //ファイルが見つからなくなるまで検索

}

int main()
{
HANDLE hFind; //検索ハンドル
WIN32_FIND_DATA FindFileData; //ファイルデータ

hFind = FindFirstFile("*.*", &FindFileData); //全てのファイル・ディレクトリについて検索
FindFile(hFind, FindFileData, ""); //アプリケーション下について関数を実行
FindClose(hFind); //検索ハンドルを閉じる

system("pause"); //一時停止

return 0;
}


プログラムの解説を少しします。

FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
:dwFileAttributesはデータ構造体のファイル属性を表すメンバです。これがディレクトリであるかどうか調べています。

strcmp(FindFileData.cFileName, "..") && strcmp(FindFileData.cFileName, ".")
:cFileNameはファイル名を表すメンバです。最初に検索してみたらなぜか上の階層を表す相対パスが引っかかってPC上のすべてのフォルダとファイルが表示されるという事態が起きてしまいました…とりあえず応急処置として相対パス的なものはぬかすようにしました。

そのほかはコード中のコメントを参照してください。

実際にこのコードを実行してみます。

ファイル階層はこんな感じです
dir.png
dir2.png
ここの一つ一つのフォルダにhumen.txtが入っています。

実行結果です。
result.png



これをsongsフォルダ下から検索しhumen.txtだけ出力するようにしてみます。


#include
#include


void FindFile(HANDLE hFind,WIN32_FIND_DATA FindFileData, char* direc, char* search){
if (hFind == INVALID_HANDLE_VALUE) return; //関数が失敗したら終了

do {
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { //ファイル属性がディレクトリの場合
if (strcmp(FindFileData.cFileName, "..") && strcmp(FindFileData.cFileName, ".")) { //下の階層だけ見る
//printf("%s (DIR)\n", FindFileData.cFileName);
char s[CHAR_MAX] = "", s2[CHAR_MAX] = "";
sprintf_s(s, CHAR_MAX, "%s%s\\", direc, FindFileData.cFileName); //現在のディレクトリ\次のディレクトリ
sprintf_s(s2, CHAR_MAX, "%s\\*.*", s); //現在のディレクトリ\次のディレクトリ\*.*
HANDLE hFind2 = FindFirstFile(s2, &FindFileData); //そのディレクトリについて検索
FindFile(hFind2, FindFileData, s, search); //再帰
FindClose(hFind2);
}
}
else {
//printf("%s%s\n", direc, FindFileData.cFileName);
if (!strcmp(FindFileData.cFileName, search)) { //探したいファイル名と一致していたら
printf("%s%s\n", direc, FindFileData.cFileName);//ファイルパスを表示
}
}
} while (FindNextFile(hFind, &FindFileData)); //ファイルが見つからなくなるまで検索

}

int main()
{
HANDLE hFind; //検索ハンドル
WIN32_FIND_DATA FindFileData; //ファイルデータ

hFind = FindFirstFile("songs\\*.*", &FindFileData); //song下の全てのファイル・ディレクトリについて検索
FindFile(hFind, FindFileData, "songs\\", "humen.txt"); //songs下についてhumen.txtを探す
FindClose(hFind); //検索ハンドルを閉じる

system("pause"); //一時停止

return 0;
}



printf("%s%s\n", direc, FindFileData.cFileName);
の部分を配列やらvectorやらにファイルパスを書き込むように改変すれば、立派にゲームに応用できる関数として使えます。

実行結果です
result2.png


以上でだいぶガバガバでしたが解説を終わりにします。
ブログの仕様でソースコードが見づらいと思うのでファイルの方もこちらに用意しました。ご活用ください。
(ファイルを消してしまいました…すみません…)

今回解説にあたってこちらのブログ様を参考にさせていただきました。ありがとうございます。

ここ間違ってるとか、もっといい方法があるとか、上手くいかないとかあったらどんどんコメントおねがいします。。。


とりあえず、これで私の方もゲーム製作が進みそうでよかったです。
あ、その前に中間試験が…

【音楽】おもひでひとり&魔法みたいな恋がしたいっ





動画は上げてたものの、忙しくて全然ブログにできなかったので今回は二つまとめてやっちゃいます!

動画説明文にあるように、「おもひでひとり」は昨年の文化祭「魔法みたいな恋がしたいっ」は今年の文発に描いた曲です!

どちらの動画も絵はほとんど自分で描きました!昨年のクリスマスにペンタブを買ったばっかりなのでまだまだ練習段階って感じですが、上手く描けてますでしょうか!?

*:..。o○☆゚・:,。*:..。o○☆

「おもひでひとり」歌詞

ふらり歩けば 桃色が香る
澄み渡る空 黄金に染まる
少し迷って 遠回りをして
過ぎ去った日の 足跡辿る

独り歩く 寂れた小道
通り抜けた風が 冷たい
並んだ影を じっと見つめて
空に写し笑いあった
途切れた日々は もう戻らなくて

あなたにまた会えるのなら
素敵なリボンで歓迎しよう
言葉にいつかできたのなら
そよ風がきっと届けてくれる
でも寂しくて ただ切なく想う
夢にみた日を
小さく歌声にそっと乗せた
白い羽 ふわり舞った

あなたにまた会いたいな
あなたにまた会いたいな
同じ空の下 描いた景色
いつまでもずっと忘れない

後戻りを繰り返し今日も
行き交う声に 心を埋めた
夕闇の中 光を探して
行き場無くして 途方に暮れる

前だけ向いて 歩いて行ければ
今より綺麗な未来があるのかな
月日が過ぎて 大人になって
思い出して笑えるような
そんな記憶に僕はいるのかな

あなたがまた好きになる
あなたをまた好きになれる
そしたらあの日の続きをしよう
ねえ また日が暮れるまで

あなたにまた会えたのなら
素敵な笑顔を絶やさぬように

この空に夢を託そう
どんなに離れても 忘れぬように
消えないように もう泣かないように
永久を願おう
思い出奏でて今日もひとり
白い羽 空に消えた


あなたにまた会いたいな
あなたにまた会いたいな

*:..。o○☆゚・:,。*:..。o○☆

「魔法みたいな恋がしたいっ」歌詞

(にゃーにゃーにゃにゃ?にゃーにゃにゃにゃにゃにゃにゃにゃ!
 にゃーにゃーにゃにゃ?にゃーにゃにゃにゃにゃにゃにゃにゃ!)×2

「もっきゅー☆私は華の十七歳みんな大好きJKだょ♥だけど彼氏も出会いもない!もぉー!私どうなっちゃうの~!!!」
(さあ歌うたうよ聞いててね)×2

朝日眩しいな布団被っちゃおう ( ˘ω˘ )スヤァ…
遅刻だよ!いそげスタートダッシュだ!!
鞄抱えて全力疾走 「急げ~!!」
曲がり角 誰かとぶつかり転倒 あーいたたた…

遂に登場運命の王子様?!
「あ、あ゛~!!!私、パジャマのままだ~~!!!!」
どんなときでも笑顔魅せる魔法 お・し・え・て

何でもかんでもできなくていいから!もっともっとおドジでいいから!
だってだって窮屈なんだもん!ずっとずっと自由でいたいんだもん!
私だって可愛くなるから!だからねもっとね期待していいから!
髪にシュシュ似合うといいな 背伸びしてマスカラつけちゃおうかな?
もうわかんない!

「走る走る!春歌選手!おーっと電柱にぶつかりそうだ!!辛うじて避けたー!しかし時間がない!果たして学校にたどり着けるのか!」
(歌うよ聞いててね)×2

飛び起きた 8時いつものベッドで 「ゆ、夢…?」
遅刻しちゃう! またもやスタートダッシュだ!! もうへとへと…

駅のホームにて王子様と再開?!
だけど、何も言えずに別れちゃった…
恋のタメ息 切なく燃える想い つ・た・え・て

にっちもさっちもどうにもならない!私の妄想本当にならない!
待って!わかって卑屈にならないで いつかきっと素敵な出会いが…
諦めるなんて私じゃないわ 乙女はいつでも夢見て育つの
fashion senseで今日もキメるわ ずっとずっと私らしく生きて見せるわ
もう止まんない!

元気出してほらjumping!
あまーいあまーいみるくを塗って
できたてトーストくわえたら
今日も元気に行ってきまーす!!!
いえーーーい!!!!

みんな幸せ元気になれる魔法
お・し・え・て
お・し・え・て?
お・し・え・て(迫真)
お・し・え・て♡

「べ、別にあんたのことなんかどうだって… す、好きとかそんなんじゃ無いんだから~~!!!」
そんなそんなの憧れてたの こんなこんな私でもいいかな
毎日毎日何時でもマイペース だけども時にはあざとく攻めるわ!
なんで?だって?で心くすぐらせて ちょっと涙で気持ち惑わせてあげるわ
もうわかんない!

(もーいっちょ!)

何でもかんでもできなくていいから!もっともっとおドジでいいから!
だってだって窮屈なんだもん!ずっとずっと自由でいたいんだもん!
私だって可愛くなるから!だからねもっとね期待していいから!
髪にシュシュ似合うといいな 背伸びしてマスカラつけちゃおうかな?
もうわかんない!

(にゃーにゃーにゃにゃ?にゃーにゃにゃにゃにゃにゃにゃにゃ!
 にゃーにゃーにゃにゃ?にゃーにゃにゃにゃにゃにゃにゃにゃ!)×4

「い、いつもありがとう・・・だいだい~だーいすきーー!!!!」

*:..。o○☆゚・:,。*:..。o○☆

「おもひでひとり」はシンセサイザー「MX49」を購入し、それに付属してきたCubase LE AI Elements(下位中の下位のグレード(苦笑))で書いた初めての曲になります。

MX49の感想としては、楽器系の音源は種類でよかったのですがシンセ系の音源がちょっと物足りないかなと感じました(シンセサイザーなのにw)
曲に音源を取り込むのにいちいち録音しなきゃならなかったので、ほんとに音源が必要な時以外はあまり音源が使いませんでした。
キーボードとしては大いに活用できたので音の確認やリアルタイム入力などができるようになったのはすごくよかったです。
YAMAHA シンセサイザー MX49/ヤマハ(YAMAHA)

¥価格不明
Amazon.co.jp

この曲は自校の文化祭で配布する部活のCDに収録された曲なのですが、このCD製作が修羅場ってて、その上に自分がまとめ役として製作してるCD(みんUTAで配布するかのこん2)の製作も修羅場ってて、さらにいろいろな悩みを抱えていたので、精神的に文化祭には出れませんでした。。。

曲の歌詞にはほんの少しこの時の気持ちも書いてます。すれ違い、傷ついて心が離れ離れになっても、思い出の中だけでも素直に会えればいいな。みたいな歌です。

文化祭の方が意外と大盛り上がりだったようで、自分のクラスの出し物(チェロとスムージーだったかな?)がものすごい売り上げを出して、二回もクラスで打ち上げに行きましたw
やっぱり無理してでも行きたかったなーと少しもったいない気持ちになりました。


「魔法みたいな恋がしたいっ」は久しぶりにシンセ中心の曲にしてみました。

動画には「あんずもじ」「美咲ゴシック」を使用させていただきました。
あんずもじはとても可愛くて気に入ったのでサクラエディタとメモ帳のフォントに設定してます。すごく…読みづらいです。

この曲は中学二年生の時、何かの集会で全校生徒の前で作文を読んだ(めっちゃ噛み噛みだった記憶がある)後に、頭の中が真っ白になって浮かんできた曲です。ポップで自分の中ではかなり気に入っていた曲だったので温存していたのですが、今回自分が在籍する学校が主催の大きなイベントということで思い切って出してみました。

電波ソングしたいなーと思い作曲したものの、なかなかいい歌詞が思いつかなくて序盤の1,2フレーズを同好会のメンバーに考えてもらいました。
そこから先輩にストーリーやHANASU部分のアイディアをいただき、後は深夜テンションで押し切ってこのような代物に至りました。後で聞き直して死にたくなるタイプの曲になりました。
そのため、歌詞にはそれといった意味はない曲になりましたが、あえてあるとすればサビの「なんでもかんでもできなくていいから」の部分は切羽詰まってても気楽に楽しむことができればそれでいいよーっていうメッセージが少しあったくらいですかね。三年生なので必然的に文発の運営には同級生が多く駆り出されていたので。

文発は一波乱二波乱あったみたいですが、結果的に楽しかったという方が大多数だったので成功だったなのかな?まあ、文発は毎年そんな感じのノリですが…
主催校学生ながら、びっくりするくらい自分何もやらなかったな感が…
終わってみると喪失感がすごくて、ああ、これで学校生活も一区切りついたんだな…と感じました。部活の方も引き継ぎの時期にはいっていくのでしょうか…高専生活の思い出を振り返ってみると複雑なものです。


今年になったから勉強の方が大変危うい状況に陥ってしまいまして、去年なんかクラス順位3位とかだったんですが今は下から数えた方が早いというレベルまで落ちました(白目)
毎日電車で片道二時間近くかけて学校に通い、徹夜でレポートをやり、それだけで精一杯な毎日で、テスト勉強なんて前日に一教科二三時間レベル…
初(?)再試が4教科も引っかかってしまい、しかも寝坊&バスを乗り間違えるという失敗を犯して一教科再試受けられなったり、どの教科も手ごたえが微妙だったり…
後期には学力試験みたいなものもあって、普通の高校なら受験シーズン真っ盛りな時期なのに不安で不安でしょうがないです。
これからは、同人的な企画の参加は控えて細々と活動していきましょうか…ともあれ、卒業までに悔いのないように自分が出せる限界まで製作も続けていきたいです。

【音楽】宵闇prologue



またまた半年近く公開開いてしまいまいましたが!!新曲です!!

動画説明文にもあるように、例のアイドルユニットに書き下ろした曲になります><
使用音源の緋惺さんは仮歌として使用させていただいてたので、思い切って誕生祭のタイミングで投稿してみました!

プロデューサーさんから落ちついた感じの曲が欲しい!とのことだったので、頑張って和風な曲を書いてみました。自分もアイドルに歌ってもらったバージョンを聞いてみたいです…

因みに曲自体は中一の頃、宿泊学習の時に思いついたものです。
新しい出逢いに期待を寄せていたあの頃を思い出しながら作りました。

曲のイメージとしては夏の終わりごろ、虫の鳴き声に引き寄せられて二人が出会う感じです(ほんとかよ)
下田に旅行に行ったときに撮った夜桜の河津桜の写真がきれいだったので、動画に使ってしまいました。夏の曲なのに(汗)


*:..。o○☆゚・:,。*:..。o○☆


歌詞:
青い過去から来た赤い夢
私を未来へと連れていく
時の中に散った影法師
今宵に光を運ぶ

仮初めの夢がいつか覚めたなら
孤独は幾重の華を染めるでしょう
波に浚われ散った星の屑
何処へ思い馳せる

嗚呼 吹き行く風の中で
何時も黄昏ていた
泡沫に消え行く日々の中で
「ここで待つ」と契りを交わした

ふたり出逢ったら 重なる二つのメロディ
この空に光を授け輝くときに
旅に出よう

見初めた季節がまた訪れて
想いの種はまた芽吹くでせう
捧げた時は刹那の如し
由々しさ心を埋める

嗚呼星注ぐあの場所で
再び貴方に逢えた
濡れた頬がゆっくりと綻びて
「泣いてないよ」
小指絡んだこと

願いが叶うならあの人のもとへ行こう
月明かり闇夜を照らすなら
私の恋も灯してください


眠れない夜の夢で聞いたあの歌声を
泣き叫ぶ虫の命の声止むまで
聴かせて


夢から覚めたなら まだ見ぬ扉開こう
その場所にあなたがいるなら また始めよう
宵闇の出会いを

ふたり出逢ったら 重なる二つのメロディ
この空に光を授け輝くときに
旅に出よう

旅に出よう



*:..。o○☆゚・:,。*:..。o○☆




色々忘れるために、と家庭の事情で寮を出て、今の自分自身も新たな始まりの位置に立っているような気がします。
通学も電車で一時間ちょいかかって、平日は帰ってちょっと休んだらもう寝なきゃって感じで結構大変です。
勉強する時間もあんまり取れてないので、曲作ったりする時間も取れなくてつらいです…

でも、地元の友達はみんな大学受験でもっと大変なんだなーとか感じたり…

あ、そういえばこの前地元のメンバーでバンド組んでみたいなーっていう話が上がりました。
中学の時からの夢だったのでとっても嬉しくて、慣れてきたら自分が作った曲をみんなで演奏してみたり…なんて夢見て今日も頑張ってます。

部活の方も、自分たちが先輩学年となってるので部活つぶさないように頑張んなきゃって感じです。
今年は新入部員が10人近く集まってくれたのでほんと頑張んなきゃです。
もうそろそろ先輩らしい曲作れるようになりたいです…ミックスとかもまだまだな感じですし。

あと、春休みからちまちまゲームみたいの作ってるのでお楽しみに

カレンダー

10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

最新トラックバック

マイリスト

理不尽ごっこ。Official site

GitHub

SoundCloud

検索フォーム

ブロとも申請フォーム

QRコード

QR