7日でゲームを作ろう!4

こんにちは、インターンシップ生の松本です。

前回はソケットの機能を使って武器を持たせることに成功しました。今回は武器を振るモーションをどうするか、とステージの作成をやっていこうと思います。

まず初めに武器を振るモーションですが、このキャラクターのアニメーションにこういった近接武器を振るアニメーションが無く、自分で作ろうともしたのですが、なかなかうまくいかず前回はそのことがあったため、後半は行き詰ってしまいました。ですので今回は振ること専用のアニメーションをつけず、歩行アニメーションで腕を振っていることを使って、そのままスイカに触れればクリアということにしようと思います。

次にステージですが、ただ単純にスイカに向かっていって終わりでは面白くありません。なのでこちらに向かってくる障害物を作ります。触れると爆発しダメージを受けるといった感じのものを作っていきます。

初めに障害物の設定をしていきます。コンテンツブラウザというところで右クリックし、ブループリントを選びます。親クラスはアクタにします。コンポーネントの追加でSphereを追加し、さらにCollisionのSphereも追加します。

次はイベントグラフと書かれたところを押し、どう動くかや爆発してダメージを与える設定をしていきます。こちらに向かってくる動きはプレイヤーを動かすときにやったこととほぼ同じです。爆発は、先程追加したCollisionを超えたら爆発のエフェクトを生成し、障害物自身を破壊します。先程のビューポートという画面でColisionのSphereを選択して左側の詳細の下の方にイベントというところがあり、その中のOn Conpornent Begin Overlapと書かれたところの横にある+をクリックします。するとイベントグラフに同じように書かれたイベントのノードが現れます。これがCollisionを超えたら、というイベントです。そこから適当なところまで伸ばして離すと、次につなげるノードを検索して出せます。ですが今回はただ触れると爆発するだけでなく一定時間で消えるようにするので、接触判定というBool型の変数を作り、セットします。この場合は真にします。これを使って別の場所で触れたらエフェクト出して消滅、振れなかったらSet Life Span時使って時間で消滅するようにしていきます。

Overlapで接触判定にセットした後に、ダメージを与えるところを作っていきます。Apply DamageとAny Damageを使って、Apply Damageで設定したダメージ値をプレイヤー側でAny Damageを使うことでダメージとして与えることができます。プレイヤー側ではあらかじHPになる変数を用意しておきます。そこから先程設定したダメージ値を引くことでダメージを与えたことになります。

大まかな作業はこのような感じです。より細かいところはこちらの画像を見てください。

次回も引き続きステージ作成と、クリア画面やタイトル画面を作っていこうと思います。

興味を持たれた方はお気軽にお問い合わせください

アプリの内容と構成決め(RADWIMPS少々)

初めまして!エム・ビー・エーインターナショナル株式会社インターン生の岡田優太です。

今回はインターン初日です。なので、5日間で作るアプリの構成案を考えようと思います。私は大学でHTMLを学んでいるので、今作品はHTMLで作っていこうと思います。ですがそこで第一の課題があります。アプリを作ろうにもどんなアプリを作るのか決めていません。そこで、ここに書き出していこうと思います。

・9月に関する謎解きゲーム

・RPGゲーム

・ブロック崩し

・プログラミングゲーム

この4つが今浮かんでいる内容です。私のインターンシップの成果物が9月がテーマのアプリなので、現段階でよさそうなものは謎解きゲームか、ブロック崩し、プログラミングゲームとかでしょうか。RPGゲームは9月をテーマにしてもあまりうまくできない気がします。そこで、3択まで絞り込めました!あとはやりやすいゲームを選ぶだけですが、サンプルコードなどを調べていると、ブロック崩しとプログラミングゲームが出てきました。(URL:http://phinajs.com/)そこでサンプルコードを見ながらできる2択に絞りました。ブロック崩しは背景に、9月に関連した画像を貼ったり、ある一定得点を獲得するとサイトや画像が表示されるという設定にすれば、5日間でつくることができると思います。

プログラミングゲームでは打った文字列が9月に関連することだったり、ブロック崩しのように一定得点で画像表示とかはできると思います。散々悩んだ結果、誰もが一度はやったことがあるブロック崩しにしようという結論に至りました。後決めるものは、ブロック崩しと9月をどんな関係で結ばせようという課題があります。関連させる内容は十五夜、音楽の2種類にしようと考えています。9月と聞いて音楽を連想する人はなかなかいないと思いますが、私は9月にはいったら、「セプテンバーさん」という曲を必ず聞きます。そうです、私はRADWIMPSが大好きです。RADWIMPSは「君の名は」や「天気の子」などの主題歌を歌っており、知らない人は少ないはずです。RADWIMPSは2001年に野田洋次郎がバンド活動をしている友人からギターを聞きたいと言われ、ギターを弾いて聞かせたところ、友人はそれを携帯電話で録音しており、こっそりバンドメンバーにも聞かせていたらしいのです。その中のメンバーであった桑原が野田に惚れ込み、野田をバンドに誘いRADWIMPSが結成されたとウィキペディアにありました。そこで、RADWIMPSを背景にゲームを作るというのも良いと考えます。そこで、初日はブロック崩しに決めて、背景をどういう設定にするかと十五夜カラーのブロック崩しも作るということを決めました。

興味を持たれた方はお気軽にお問い合わせください。

引用元:https://www.sejuku.net/blog/3960

    https://ja.wikipedia.org/wiki/RADWIMPS

オープンデータ活用サービス開発日誌~01~

 皆さん初めまして。本記事にごアクセスいただきありがとうございます、MBAインターナショナル インターン生の岩岬と申します。

 この記事はインターン初日に書いております。当初はゲームプログラマとしてインターンに参加しようと考えておりましたが、オープンデータの活用に興味をひかれたため急遽webプログラマとして10日間のインターンに参加します。この日を含めて10日間のインターンということで、不安も大きいですが、何か得られるものがあればという期待も抱いております。

 さて、これから10日のインターン参加期間中、オープンデータを活用したWEBサービスの開発に挑戦するとともに、毎日記事を作成する予定です。各日の作業中に調べたデータや先行事例、これから作りたいサービスやその進展が主な内容になります。

 さて、初日の活動としては、そもそもオープンデータとは何か、という問題を解決しなくてはなりません。総務省はオープンデータを以下のように定義しています。

以下、総務省の「地方公共団体のオープンデータの推進」より引用

国、地方公共団体及び事業者が保有する官民データのうち、国民誰もがインターネット等を通じて容易に利用(加工、編集、再配布等)できるよう、次のいずれの項目にも該当する形で公開されたデータをオープンデータと定義する。

1. 営利目的、非営利目的を問わず二次利用可能なルールが適用されたもの
2. 機械判読に適したもの
3. 無償で利用できるもの
〈参照:オープンデータ基本指針(平成29年5月30日高度情報通信ネットワーク社会推進戦略本部・官民データ活用推進戦略会議決定)〉

引用ここまで

 オープンデータとはなんぞや、という疑問も晴れたところで、今回利用したデータカタログサイトについて紹介します。データカタログサイトは、総務省行政管理局によって運用されている、オープンデータのポータルサイトです。このサイトからは中央省庁が公開しているオープンデータにアクセスすることができます。例えば、1899年から2017年までの年次、性別ごとの日本の人口のデータや、動植物の分類ごとに分かれたレッドリストのデータなどをダウンロードできます。下のリンクから、データカタログサイトにアクセスできます。

データの前処理、活用サービスの立案、サービスの実装など不安なことは多いですが、これから10日間頑張っていこうと思います。

興味を持たれた方はお気軽にお問い合わせください。

参考資料:
総務省 地方公共団体のオープンデータの推進 http://www.soumu.go.jp/menu_seisaku/ictseisaku/ictriyou/opendata/
(2019/8/19 アクセス)

総務省行政管理局 データカタログサイト
https://www.data.go.jp/
(2019/8/19 アクセス)

10日間でAndroidゲームネイティブ制作に挑戦(画面切り替え編)

 皆さんこんにちは。星野耀司です。

 さて今回もゲーム作りの過程を記事にしたいと思います。画像のサイズについては小さくても中央に置いておくことにより見栄えがよくなりました。

 今回の記事のテーマは画面切り替えなのです。
まずAndroidstudioで画面切り替えってどうやってやるんだろうと思い調べてみました。

引用元URL:https://akira-watson.com/android/activity-1.html

引用始め

「Activityを変えて画面遷移」をしたい場合には、Intent を使います。

引用終わり

なるほど,Intentを使えばよいのですね。
では早速…と思いましたが画面切り替えのきっかけを作っていませんでしたね。
そのためのボタンを作成することにしました。

 ボタンはxmlファイルに直接記入するか、Designファイルの中にパーツを入れるだけで入れられました。
ボタンの中にはButtonという文章が入っていましたが、わかりづらいので変更することにしました。
文章変更は簡単で、そのボタンが入っているxmlファイルのそのボタンの部分のButtonを探し、その中のAndroid:textの=の右側に””で囲って自分のボタンにつけたい文字を入れるだけでした。
ただし二つ以上のButtonを入れた場合は混在するので一個一個作った後につけたほうが良いです。
あとはjavaファイルに変数定義やクリック処理の継承を行うなどして準備が完了しました。

後は先ほどのサイトを参考にIntentを使用して処理すれば、ゲームプレイ画面に移行できます。
これを応用して使わせていただいた素材のクレジット表記画面も作ってしまいたいですね。
ただ、この時点でかなりエラー等を発生させてしまい時間がかかってしまったため、ゲーム画面に移行することができませんでした。
時間迫ってきているのでそろそろゲーム内容にも触れていかなければいけませんね。
 というわけで次回以降はゲーム画面の制作過程を記事にしようと思っています。
現状アイテムのスポーンの方法などわからないことだらけですが頑張ろうと思います。
気がかりは主人公や海の波等の素材が納得できるものが見つかっていないことですね…。サンプルを作ってる暇もありませんので見つけないとゲーム内容に中々触れることができません。そこも次回以降の記事でご報告できればと思っています。
前回でもそうなのですが、xlmファイルを扱うことになるとは思ってませんでしたのでとてもいい経験になったと思いますね。

ではまた次回

興味を持たれた方はお気軽にお問い合わせください。

Cocos2d-x 環境構築その2

 

こんにちは、インターン生の宮本です。

前回に引き続きCocos2d-xの環境構築をしていきます。
参考:https://takachan.hatenablog.com/entry/2017/10/29/185550

と言っても残っている作業は、プロジェクトの実行を確認するのみです。
早速ビルドしたいと思います。

無事HelloWorledが表示されました。

これで環境構築が終了しました。やっと、Cocos2dの勉強ができます。日本語のマニュアルはありませんが公式ドキュメントを日本語訳してくださっているサイトがありました。

http://westplain.sakuraweb.com/translate/cocos/Installation/Android%2520Command-line%2520Setup.cgi

また、自動生成されるHelloWorldクラスのコード解説もありました。
http://marupeke296.com/IKDADV_CC_2D.html

これらのサイトを参考に勉強していこうと思います。

まずはスプライトです。
これはUnityのスプライトと同じように画像を扱うオブジェクトです。
画像の一部分を抜き出して作成することも可能で、プロパティにはrotation,position,scale,colorなど基本的なものがあるようです。

次に、アクションです。
これはNodeのプロパティの変更を行オブジェクトで、移動・回転などのアクションを指定した秒数で行います。
スプライトはNodeを継承しているためスプライトにも適用することができます。また、複数のアクションを逐次または同時に行うようオブジェクトも使用可能です。注意点として、内部ステータスを持つため同じオブジェクトを複数適用したいときは複製しなければなりません。

この2つを使用して実際にHelloWorld中央の画像を動かしてみました。実行してみて初めて分かることも多かったため。次回は、実際に動作を確認しながら進めていきます。

興味を持たれた方はお気軽にお問い合わせください。

7日でゲームを作ろう!3

こんにちは、インターンシップ生の松本です。前回はキャラクターの移動のプログラムを作っていきました。

今回はこのキャラクターにスイカを割るための武器を持たせるところを作っていこうと思います。

まず、武器は何を使うかを決めます。Unreal Engine4を開発したEpic Games公式から無料で配布されているInfinityBlade:Weaponsというアセットを使っていきます。

次に武器をしっかり持たせるために、このキャラクターの右手にソケットと呼ばれるものを作ります。ソケットを作ることでその場所からエフェクトを出したり、これからやるように武器を持たせることができます。コンテンツの中のMannequinというファイルの中にCharacterというファイルがあり、さらにその中のMeshの中にSK_Mannequinというこのキャラクターのスケルタルメッシュと呼ばれるものがあります。これを開き、右上のスケルトンと書かれているところをクリックするとスケルトンツリーが出てきます。そこにはキャラクターの体のさまざまな場所が表示されていて、そこから今回は右手にあたる部分を選びます。そこで右クリックをすると出てくる項目の中の”ソケットを追加”をクリックすると、先程右クリックした場所にソケットができます。あとは位置を調節して、次は実際に武器を持たせます。

ソケットに持たせたい武器をアタッチすると持たせることができるが、アタッチする方法はいくつかあり、スナッピングと呼ばれる機能を使った方法やメインのエディタのコンテキストメニューからアタッチする方法、ブループリントを使用した方法などがあります。それぞれ試してみたのですが、成功したのはブループリントを使った方法だったのでこちらを使っていきます。

まずはアタッチしたい武器のメッシュを”Add Static Mesh Component”と”Set Static Mesh”を使って追加し、”Attach To Component”を使ってアタッチします。

”Attach To Component”のTargetにはアタッチするコンポーネント(武器)を指定し、Parentには持たせる側のコンポーネント(キャラクター)を指定します。そしてSocket Nameにアタッチしたいソケット名を指定することで、無事持つことができました。

参考元http://api.unrealengine.com/JPN/Engine/Content/Types/SkeletalMeshes/Sockets/

http://kagring.blog.fc2.com/blog-entry-375.html

↑今回の作業結果です。次回は武器を振るアニメーションに関してとステージの作成をやっていこうと思います。

興味を持たれた方はお気軽にお問い合わせください。

10日間でAndroidゲームネイティブ制作に挑戦(取り掛かり編)

 皆さんこんにちは。星野耀司です。

 今回はAndroidのゲームを作り始めてみたので、現在までで行ったことと、使ったツールを紹介します。

 そもそもどのソフトを使って作ればいいのかわからなかったので調べてみました。どうやらAndroid Studioというアプリがいいようです。

 というわけで早速使ってみました。しかし問題が発生。

 まず画面を見ただけで訳が分かりません

 というわけで以下のサイトで使い方を見てみました。
 

【Android Studio】 ゲームアプリ開発入門 第1回 「プロジェクトの作成」  https://codeforfun.jp/android-studio-catch-the-ball-1/

ミニマムSDKは一番低いものにすることにしました。そんなに機能もいらないはずですし、どうせ遊ぶならみんな遊べたほうがいいですからね。

ActivityはEmpty Activityにしました。色々入ってても扱える気がしませんし、そもそもマップ機能なんてものは邪魔でした。

大枠のものを設定したところでようやく制作に入りました。
おそらくここだけで1時間以上使っています。

まず何をしようかと思い再び先ほどのサイトを見たところ手っ取り早くできることがありました。

引用始め
まずは、ゲームに必要ないアクションバーを非表示にします。
引用終わり

大体のアプリで消えているのであまり意識したことはありませんでしたが確かにそんなものがあった気がします。
消し方はというと

引用始め
style name=”AppTheme” parent=”Theme.AppCompat.Light.DarkActionBar”

style name=”AppTheme” parent=”Theme.AppCompat.Light.NoActionBar”

にします。
引用終わり

DarkがNoに変わっただけでした。
比較的簡単にアクションゲージを消すことができたはずです。

あとは素材などを探して入れることが必要ですね。

試しに貝の素材を手に入れてみて、どのように実装するかを調べたところ
drawableフォルダというものを発見しました。

今後、ゲーム内で使う画像はここに入れておけばよいのかなと思います。

そしてゲーム内に画像を取り入れる行為をしようとしましたがここでまた問題が。

適切なサイズの画像が見つからない…

タイトル画面の背景に海を取り入れようと考えていたのですがそもそもスマホに合わせることのできる画像が見つからないのです。
次回記事を書く時までに見つけておかないといけませんね。

正直言ってあまり進んでないです。エラーも多く出てるので、今までやっていることで間違っていることもあると思います。とりあえずまずはゲームを完成させることを目的に頑張ろうと思います。

それではまた次回。

興味を持たれた方はお気軽にお問い合わせください。

Cocos2d-x 環境構築 Ninjaがない!

こんにちは、インターン生の宮本です。

今回は、環境構築をします。

VisualStudioからイントールできると見かけたのでとりあえずやってみましたが駄目でした。

新しいプロジェクトの作成でcocosテンプレートを選択、次へを押し画面の指示に従ってインストール

しかし、インストールが終わり再び新しいプロジェクトの作成でcocosを検索しても何も出ません。

諦めて普通にインストールすることにします。

前回環境設定がインストールするものが多いと書きましたがCocos2d-xを使うだけならば必要なものは
・Cocos2d-x
・Python
だけです。

しかし、今回はAndroid、iOS向けの開発なのでさらに
・JDK(Javaの開発環境)
・Apache Ant
・Android SDK/NDK(Androidアプリの開発環境/Android SDKをC++に対応させる開発環境)

が必要です。

こちらのサイトを参考にインストールを進めます。
https://takachan.hatenablog.com/entry/2017/10/29/185550

Cocos2d-x,Python,JDK,Apache Antをダウンロードし、
Android SDK/NDKはAndroidStudioがインストールされていたのでAndroidStudioからダウンロードしました。

プロジェクトの作成まではスムーズに行けましたが、AndroidStudioでプロジェクトを読み込む段階でエラー。

AndroidStudioを使ったことがなかったためなかなかエラーメッセージを見つけられずGradleの同期が失敗しているということしかわかりませんでした。

何とかエラーメッセージを発見し読んでみると
”Ninja”がないから というようなことが書いてありました。
よくわかりません。

どうやら、AndroidSDKのbinフォルダにninja.exeがありそれを読み込むことができていないために出ているようでPathが通っている場所にninja.exeを置いたら解決しました。
参考:https://kazblog.hateblo.jp/entry/2018/09/26/011307,
  https://takachan.hatenablog.com/entry/2019/02/03/014844

ところが、今度は”そのAPIは廃止され2019年に使えなくなる”といった旨の警告が出てきました。これは無視して問題ないようです。
参考:https://codeday.me/jp/qa/20190511/802695.html,
  https://takachan.hatenablog.com/entry/2019/02/03/014844

中途半端ですが今回はここまでとさせていただきます。
次回こそは制作に取り掛借りたいと思っています。

興味を持たれた方はお気軽にお問い合わせください。

7日でゲームを作ろう!2

こんにちは、インターンシップ生の松本です。前回はUnreal Engine4の簡単な説明と作るゲームの大まかな概要と制作の流れについて、書きました。

二回目の今回は、キャラクターのシステムを作っていこうと思います。

まずプロジェクトを作ります。今回は三人称視点のゲームにするので、サードパーソンのテンプレートを使っていきます。

このキャラクターの操作は 前回述べた通り自動で動き続け、何かしらの入力によってその進む方向が変わります。

まずはキャラクターが自動で動けるようにします。

プロジェクトを作成したらプレイヤーとしてThirdPersonCharacterというものが置かれています。プレイしてみるとそのプレイヤーを操作することがすでにできるようになっていますが今回は直接細かな操作はしないので使いません。

コンテンツと書いてある下にいろいろなファイルがありますが、ThirdPersonBPと書かれたファイルを開きさらにその中のBluePrintsというファイルを開きます。その中のThirdPersonCharacterをクリックすると、ThirdPersonCharacterのブループリントが編集できるようになります。

最初にゲームをスタートした時に、ランダムで左右どちらかへ動くようにしていきます。

まず方向を決める変数を作り、それを方向判定という名前の変数にしました。その変数が真か、偽かでどちらに動くか決めます。そしてその方向判定に値をセットするノード(部品)を作り、BeginPlayというゲームをスタートした時に発生するイベントとつなげます。これだけではまだ”ランダムで”という部分ができていません。なのでRandom Boolというランダムで真か、偽かを返すノードを作り、方向判定の赤い丸のところにつなげます。これによってどちらの方向に行くかの判定をランダムで取得できるようになりました。

次は、その判定に応じた動きをするようにします。GetActorLocationでこのキャラクターの位置を取得しそこに判定に応じた値を足していきます。それをまたキャラクターの位置にセットすることで動くようになります。

これでスタートした時にどちらかの方向に進んでいくようになったので、今度はキーの入力によって方向を変えることができるようにします。今回はAとDを使ってDが入力されたら方向判定の値を真に、Aが入力されたら偽にすることで変えられるようにしました。

↑今回の作業結果です。次回はスイカを割るための武器を持たせ、振るというところを作っていこうと思います。

参考元:http://beginner-program.hatenablog.com/entry/2016/06/24/104418

興味を持たれた方はお気軽にお問い合わせください。

10日間でAndroidゲームネイティブ制作に挑戦(構想編)

 皆さんはじめまして。インターンシップ生の星野耀司です。

 さて、私は今回の10日間のインターンシップでのゲーム制作についてのお話をしたいと思います。つたない文章ですが、最後まで見て頂けると幸いです。

 今回は、私がどんなゲームを作ろうと思ったかについて説明させていただきます。

 私はAndroidでのjavaを使用した貝を拾うゲームを作りたいと考えています。基本的に主人公を操作して、制限時間以内に夏の海で貝を集めてポイントを稼ぐアクションゲームにしたいと思っています。

 なぜこのようなゲームを作ろうと思ったかというと、テーマが夏なのですが、夏といえば海、海でゲームにできそうなものと思ったときに潮干狩りの映像が夏のニュース等で流れることを思い出した結果、貝を集めるゲームを作ることにしました。

 ですが、それだけでは面白くありませんよね。できれば敵となるものの存在を入れたいと思っています。現在最有力候補は波です。巻き込まれたら持っている貝が流されてポイントを失う仕組みにしたいと考えています。

 さらには、蟹を配置したいとも考えています。主人公はほぼ素手で貝を取っている状況です。間違えて蟹に手を出したりしたら…間違いなく挟まれてしまいますね。挟まれた結果、主人公はもがいて貝を落としてしまいポイントを失う仕様にしたいと思っています。

 時間的に難しいかもしれませんが、もう一つ取り入れたい要素があります。それは日差しです。主人公は夏の海で貝集めに夢中です。時々日陰に行き水分をとるなどして休まなければどうなるでしょうか。おそらく熱中症になるでしょう。それをゲームに取り入れ、日差しが強いところにいたら、熱中症ゲージが上がり、限界を超えると強制終了。日陰に入ればゲージは回復する。このように取りに行くか休むかの駆け引きを取り入れたいと思っています。制限時間とのジレンマも生まれるため、是非とも実装したいです。

 主人公を阻むものが沢山出てきました。しかし、主人公を助けるものがないため、やられっぱなしになってしまいます。なので、敵に対抗するための回復アイテムやパワーアップアイテムを実装したいと思っています。蟹に対抗するのであれば手袋ですね。丈夫な手袋を手に入れれば蟹の攻撃を防ぎ、逆に蟹をゲットしてポイントに変えられるでしょう。このように、一つ敵ができたら一つ以上の対抗するためのアイテムを作るという方法を取りたいと思っています。

 実現させたいことはたくさんあります。しかしネイティブでのゲーム開発自体初めてのことなので、全てを実現させることは不可能でしょう。もしかしたらインターンシップが終わるときには全く違うゲームが出来上がっているかもしれません。そもそもゲームですらないかもしれません。それでもできるだけ自分の納得できるようなものを作り上げたいと思います。

 今回はただの構想でしたが次回以降は制作過程や状況などを記事にする予定です。 

 それではまた次回。

興味を持たれた方はお気軽にお問い合わせください。