オープンデータ活用サービス開発日誌~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を使用した貝を拾うゲームを作りたいと考えています。基本的に主人公を操作して、制限時間以内に夏の海で貝を集めてポイントを稼ぐアクションゲームにしたいと思っています。

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

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

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

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

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

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

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

 それではまた次回。

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

はじめてのCocos2d-x

はじめまして、インターン生の宮本です。

私はCocos2dとC++を使いインターンをすることになりました。

初日は作業には入らないそうなので、Cocos2dについて紹介しようと思い調べました。

初めに、私はインターンに参加してCocos2dの簡単な説明を聞き「単体で使うものではない」「C言語・JavaScriptで使用できる」といったようなことから勝手にDXライブラリのようにファイルを解凍し少し操作するだけで使えるものを想像し、C言語はそれなりに経験があるから大丈夫だろうと勝手に思っていました。

ところで、C言語って派生言語多いですよねC++とかJavaとか。

Cocos2dを使用した開発で使われる言語はC++・JavaScript・Luaだそうです。

C言語じゃなくてC++です。

しかも、若干環境構築が面倒くさいようです。

私は、C++はDXライブラリを使用しちょっとしたゲームを作ったくらいしか経験がなく、他の二つの言語に至ってはほぼ皆無です。

Cocos2dについてわかったことをいくつかまとめてみます。

・使用する言語はC++・Lua・JavaScript

 C++はパッケージの容量が少なく、他2つはスクリプト言語であるためデバッグがしやすいようです。

・Unityのような感覚で操作できる CocosCreatorがある

 Unityとは違い検索しても使い方はあまり見つからず、公式からダウンロードできるサンプルを実行してみたほうがわかりやすいこともあるそう。

・CocosCreatorを使わない方法もあるが環境設定でインストールするものがやや多い

・フレームワークである

・2Dゲームに強い

などが印象に残りました。

特にフレームワークとライブラリの違いはなんだという疑問が出てきたので調べました。

最近では明確な境界線はないようですが、

・ライブラリは、”数学”や”入出力”などに多様な機能ごとに関数をまとめたもの

・フレームワークは、特定の機能を作る場合の設計

といった感じでしょうか。

参照:https://teratail.com/questions/107012

経験になりそうなため、とりあえずCreatorを使わないで頑張ります。右も左もわからないような状況からのスタートなので、どこまでできるかわかりませんが、簡単なゲームを作れるくらいまで身に着けることができたらと思っています。

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

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

初めまして、インターンシップ生の松本(まつもと)と申します。

今回から、このインターンシップ中にUnreal Engine4を使ってゲームを制作していく過程を1日ごとの成果を含めて記事にしていこうと思います。

まずUnreal Engine4というものについて少し説明します。

Unreal Engine4というゲームエンジンでは、「ブループリント」という他のプログラミング言語とは違う方法でプログラミングしていく言語が搭載されています。その方法は言語を記述するのではなく、マウスを使い部品と部品をつなげるだけです。部品は「ノード」と呼ばれ、メイン画面から直接呼び出すことができます。Unreal Engine4の本体と融合していて、特殊なツールなど無しでそのまま動作させることができます。

現在のUnreal Engine4になる以前までは、C++を使った開発が基本でしたが、このブループリントが出たことにより、最近ではブループリントがUnreal Engineでの開発の主流になってきています。
引用元
https://www.tuyano.com/index2?id=10476003

次にこのUnreal Engine4を使ってどういったゲームを作っていくか、概要を説明します。

条件として、

・インターンシップ中に完成(7日間)

・「夏」というテーマに沿ったもの

というものがあります。

まず「夏」というテーマに沿ったゲームにできるものとして、

・ホラー系

・花火

・海でやる遊び(ビーチフラッグス、ビーチバレー、スイカ割りなど)

・かき氷作り

・祭り系

などといったものが思いつき、この中からスイカ割りのゲームを作ろうと思いました。

ゲームの大まかなルールは、

・ゲーム上のキャラクターは自動で動き、手にはスイカを割る用の棒を持たせる。(最初は左右どちらかへ斜めに動く)

・左右へ動きを修正させることができるものを置く

・目標であるスイカにたどり着き、割ったらクリア

・ステージの範囲を決め、左右でその範囲を超えたらゲームオーバー

私たちプレイヤーはスイカ割りでいう周りで指示してくれる人としてゲームをプレイします。

次にこのゲームを7日間で完成させるための計画を立てます。

1,キャラクターの設定(2日)

2,そのキャラクターの動きを修正するシステムの設定(3日)

3,ゲームオーバーになる範囲の設定と全体の確認(2日)

暫定的ではありますが、このような流れでできることを目標にやっていこうと思います。

また作業の進行速度によって、ゲームの概要や作業の計画が変わることがあると思いますので、その場合は記述します。

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