ゲーム研究 エッグファーム グローバルギア

こんばんは。VyseArtのプログラム担当トナカイです。

 

私たちの目指すゲームというのが、グローバルギアさんやヒットポイントさんのゲームでして、ちょこちょここれらのゲームをプレイしています。

 

プレイするだけでは勿体無いので、所感や考察をブログに書き残そうと思いました。

 

今回やったゲームは、グローバルギアさんの「エッグファーム 」です。

 

f:id:odekakeneko:20190421231644p:image

たまごをドラッグして同じたまごをつなげていくと、たまごが進化して次の種類のたまごになる。それを繰り返して、希少なたまごを作っていくというゲームです。

 

このゲーム、レビューにもありましたが、暇つぶしとしてはかなり面白くハマりました。

 

主にプログラムの視点で考察していきたいと思います。

 

まず基本的に、ゲーム画面に広告はありません。たまごが進化して、新しい鶏が生まれた、などのイベントの後に、インタースティシャル広告が挿入されるくらいです。また、動画を視聴すると、マザーにわとりがたまごをわっとたくさん産んでくれるチケットを手に入れることができます。

 

このチケットですが、最初10枚あったのですが、もう残り1枚になりました。動画視聴必死、という感じで、良い利益率のゲームだなと思います。単価でいうと感覚50円程度/1DLという感じです。

 

==

 

 

 

評価は5段階中4.1で255件の評価とあって、グローバルギアさんの中では少ない評価数だと思います。

 

可愛いイラストとSE(ニワトリがたまごを産むポンッ)、放置ゲームなのにテンポよく出てくるたまご、ドラッグミスしても何もお咎めなしの気軽さ、たまごが繋がる楽しさなどユーザーを楽しませる点が高く、こんなシンプルなゲームでここまでユーザーを楽しませるのはすごいなと思いました。ちなみにオンラインプレイ要素はありません。

 

 

 

 

==

 

 

プログラムに関しては、和尚本の放置ゲームにかなり類似していると思います。それに加えてたまごが繋がり鶏になるという要素をちょっと加えた程度。大まかですがリリースが現在から二年前、つまり2017年頃なので、和尚本「Unityの寺子屋」が出た前後(もしかして読んだ?)と同じでした。

 

和尚本では「徳」というボールをpointerdownで触れれば得点がたまり、一定量の得点で背景の家がグレードアップするというものでした。

 

このエッグファームでは、一定時間にマザーにわとりがポンポン卵を産んでいくのですが、そのたまごをドラッグでつなげてたまごをタップ(3回)するとたまごが割れてにわとりが出て得点がたまります。たまごをつなげた時も得点がたまります。それらの得点が十分になれば、にわとりが次のレベルのたまごを生むようになり、家がグレードアップします。

 

にわとりがたまごを産むギミックですが、和尚本と同じくInstantiateですね。それが、random.rangeでランダムに出現する際にDoTweenでたまごの出所から軌跡を描いて着地します。

 

 

各卵には和尚本のorbmanagerなるeggmanagerがアタッチされていて、たまごの種類がenamで定義されていて変数eggkindがあると思われます。あと卵にはコライダも付いてますね。

また、たまごがフィールド上に出てきた時(ユーザーがタップorドラッグ前)はたまごが重なっても繋がらない(反応しない)ので、ドラッグ時にブール値で制御してると思われます。

 

インターフェイスでドラッグ操作を可能にして、たまごが衝突した時に、アニメーション(この辺詳しくわからない)と片方のたまごをdestroyして一つのたまごにしてスプライトをチェンジします。eggkindもチェンジするので、スプライトをチェンジするよりは二つのたまごどちらもdestroyして新しくInstantiateしてる?のでしょうか。どちらかといえば前者の方っぽい動きをしています。

 

 

 

 

==

 

 

 

同じ種類のたまごが近くに(ドラッグで)なると、ドラッグされた方のたまごがもう一方に近づいていって自動的につながります。

 

これは当たり判定を計算で行なっていると思います。北村愛実さんの猫本(Unityの教科書)にありました。弓矢と猫のゲームの章でvector2のtransform.positionと相手のそれの差をdir変数に格納して、dir.magnitudeが一定幅以下になるとたまごが相手のたまごへ動き出すようにしているようです。

 

 

何か色々と勉強になりました。アニメーションなどユーザーが楽しいと感じる工夫が散りばめられており、グローバルギアさんのゲームは是非とも真似していきたいと思っています。

 

本日は以上です。おやすみなさい。

トナカイ

 

3Dのプレイヤーをバーチャルパッドを出現させタップ&ドラッグで移動させる、そして、カメラがそれに追従して回り込む

こんばんわ。VyseArt(ヴィシェアート)のプログラム担当のトナカイです。

 

余談プラス手短にタイトルの件を紹介します。

 

play.google.com

まず余談から、「脱出ゲーム 御筆るいの都内某所しっそう記3」を出してから(上記)、次のゲーム制作に取り掛かっています。

 

次のゲームは、ノベルとシューティングミニゲームが合わさったゲームで、ノベルは創作ではなく原作があります(原作は著作権大丈夫のもの。配信時発表します)。

 

創作のノベルは世に溢れていて、レベルが高いものもありますし、私の構成力では台頭は難しいかなと思います。一方で、原作があるノベルの二次創作は長期的に人の目に触れる可能性があるかなと。

 

その原作に選んだノベルが、ライトノベルではなくて昔の小説なのでライバルも少ないんですよね。

 

ほんとうはゲーム要素(シューティングミニゲ)なしでもいいくらいの良い題材だと思っています。

 

余談は以上です。タイトルの件。

 

半年くらい前から、「バーチャルパッドを使って3Dのプレイヤーをスマホで動かしたい」と思っていました。ネットや書籍を買って実装しようとするのですが、パッドが出現しなかったり、出現してもカメラが希望通り追尾しなかったりとうまくいきませんでした。

 

本日、kanさんのサイトより、実装成功したのでメモをしておきます。

kan-kikuchi.hatenablog.com

このサイト通りに実装すると、サイトのタイトルの通り、タッチしたところからドラッグした分だけプレイヤーが動きます。

 

しかし、私はこの先、カメラが追従するようにしたかったのです。プレイヤーがJoystickに合わせて動き、カメラがそれに追従して回り込むようにするには、、

 

tech.pjin.jp

こちらのサイトを参考にしました。

 

何千円も何万円もかけてUnityの技術本を購入したりもしましたが、そちらよりも無料のサイトの情報のほうが現在役に立っている次第です。

 

Kanさんのコードに少し加えて、Teck.pjinさんのサイトをKanさんのJoystickの変数を使って記述しなおすと、

f:id:odekakeneko:20190417002930p:plain

カモメがタップで動く

 

かわいいカモメが動きます^^

 

本日は以上です。

コード詳細を載せようか迷ったのですが、解説もしなくてはいけないので載せないことにしました(笑)

 

トナカイ

Unityでアンドロイドのアプリを実機に落とせずにはまった話

こんばんは。VyseArtのトナカイです。

 

タイトルの話、手短にメモします。

 

3月31日 新作ゲームアプリ「御筆るいの都内某所しっそう記3」が完成、配布。

同日   広告を実装すると、「(アプリ名)が繰り返し停止しています」と実機(テスト用)に現れ、落ちる。ストアでの配布を停止。原因を探す。

 

4月3日 丸三日かかり問題を解決できた。

 

原因はAndoroidManifest.xmlにあった。

こちらのサイトより、SDKマニフェストを書き換え、

 

こちらのサイトを参考に、アドモブ広告のAndoroidManifest.xmlに自分のアプリのIDを記述するとビルドが通り、実機テストでも落ちなかった。

 

ポイントは、昨年から、アドモブのAndoroidManifest.xmlには、自分のアプリのIDを記述することが必要になったみたい。

 

以上。新ゲーム配信したので、ぜひ皆さんプレイしてみてください♪

 

ゲームはこちら

 

トナカイ

御筆るいの都内某所しっそう記3 プライバシーポリシー

プライバシーポリシー

(個人情報保護方針)

私たちは、個人の重要性を認識し、その保護の徹底をはかるため、このプライバシーポリシーを公開し、ユーザーのプライバシー保護に最大限の注意を払うことをお約束いたします。

 

1.個人情報の取得

御筆るいの都内某所しっそう記3(以下、当アプリ)は、広告表示のために通信を行いますが、個人の特定に使用するものではありません。

 

2.個人情報の第三者提供について

私たちは、お客様の個人情報を、第三者に開示、提供いたしません。

 

3.個人情報の管理について

当アプリは、ユーザー様の個人情報を特定することはありませんが、アプリのダウンロード、使用に関しましては自己責任でお願いいたします。

 

4.広告の配信について

当アプリは第三者配信の広告サービス「Google AdMob グーグルアドモブ」を利用しています。

 

5.免責事項

当サイト、当アプリで掲載している画像の著作権は各権利所有者様に帰属いたします。

権利を侵害する目的はございません。アプリの内容や使用画像等に問題がございましたら、各権利所有者様本人が直接メールでご連絡下さい。確認後、ご対応させていただきます。

 

当サイト、当アプリからリンクやバナーなどによって他のサイトに移動された場合、異動先サイトで提供される情報、サービス等についての一切の責任を負いません。

 

当アプリの使用によって生じた損害等の一切の責任を負いかねますのでご了承ください。

 

以上。

 

映画「女王陛下のお気に入り」を観ました♪

こんにちは。雑記として映画の感想をアップします♪

 

女王陛下のお気に入り

 

第91回アカデミー賞9部門10ノミネートで注目の作品、ということで観てきました^^

 

まだ観ていない方、ネタバレ注意です!

あらすじなどは他サイトをご参照ください。

 

 ==================================================================

 

 

考察

アビゲイルの変化

宮中の召使となったアビゲイル。ある出来事から、女王の側近であるサラに見初められ、サラの侍女となります。ある日、アビゲイルは女王とサラの重大な秘密を知ってしまいますが、敵対している人間にそそのかされても、口を割るようなことはしませんでした。アビゲイルはサラとカモの打ち合いをしていた時に、「秘密を知っても、私の誇りを捨てるようなことはしません」とサラに宣言します。そんなアビゲイルに、サラは空砲を打ちます。そして、厳しい顔をしてアビゲイルに忠告します。予想外のサラの反応に、忠誠心を砕かれてしまったアビゲイル。この出来事は、アビゲイルの変化の引き金になってしまったのではないかと思います。そして、二人の対立が決定的となってしまったのが、アビゲイルが女王に気に入られ、サラの怒りを買ってしまったこと。アビゲイルは闘争心をむき出しにし、サラを貶める手段を厭わず、野心に支配された魔物となります。

 

●女王陛下の一番のお気に入りはウサギ

女王がアビゲイルを気に入るきっかけとなったのが、女王が飼っているウサギに興味を示したことでした。アビゲイルは「可愛い」と言って一匹のウサギを抱きしめます。ウサギも懐いているようでした。そんな様子を見て女王は、徐々にアビゲイルに心を寄せます。しかし、後に変わり果てたアビゲイルは、女王の寝ている間に、靴を履いたままウサギを足置きにするような行動をします。ふと目を覚ました女王は、その様子を見てしまいます。そして、アビゲイルにすごい権幕で命令をします。「口を開くことも、私の命令がなければならない」と。そのような不穏なラストシーンは、アビゲイルの不安な未来をも予感させます。女王の一番の拠り所であったのは、サラでもアビゲイルでもなく、自分の子に重ねたウサギ達だと思います。良心を失い、保身に走り、権力や財産に目がくらんでしまったアビゲイルは、未来の宿敵に立場を脅かされてもおかしくはないです。自分がそうしてきたように。 

 

感想

インパクトのあるクラシック音楽

所々、大きな音量でクラシックが流れます。ストーリーに入り込めない序盤でも、音楽を聴いているだけで楽しめました。

●見ごたえのある宮中ドレス

ドレスは観る前から楽しみの一つとしていました。

 ==================================================================

 

以上、映画鑑賞の感想なども、時々発信していければと思います^^

ではまた♪

オンラインゲームを作りたい2

こんばんは。VyseArt(ヴィシェアート)のプログラム担当トナカイです。

 

Unityゲームジャムが終了しましたね。私達もゲームを作って参加して、2日~数日間でこしらえた割には、個人的にはよい評価をもらえたと思っています。

 

unityroom.com

 

今はPhotonのオンラインゲームを作る学習をしています。

その学習で圧倒的に役に立ったサイトがあります。うら干物書きさんのサイトです。

www.urablog.xyz

 

大変勉強になりました。本当にありがとうございます。

このサイトの#01~#05まで学習して、Photonのネットワーク接続からロビー入室、ルーム作成、入室まで進むことができました。

 

Photonを知りたければまずこのサイトを読むこと、わからなければ写経することもいいと思います(私は#05まで自分なりに写経しました)。

 

そして、私がやりたかったことは、まず『ルームに入室するまでにプレイヤーごとにタグをつけて役割を分けること』でした。

 

そもそもは(このブログでは)チャットゲームを作りたくて、話し手と聞き手、その他のオーディエンスという風に作りたいのですが、Photonで何をどうしたらいいかわかりませんでした。

 

それを、うら干物書きさんのサイトを読んで、オンラインの接続の仕方、ルームの作り方などを理解して、その後自分なりにルームを作成してみました。

f:id:odekakeneko:20190325222824p:plain

 

ボタンを押すと、話し手と聞き手、その他オーディエンスという風にタグ付けされて次のシーンへ進みます。

f:id:odekakeneko:20190325223733p:plain

できました!

ここで時間がかかった点は、『自身のプレイヤーと他人のプレイヤーを(タグ付けするため)特定して、タグをつけていくこと。』

 

この自身のプレイヤーに関してですが、

photonView.GetComponent<PhotonPlayer>().IsMasterClient

とGetComponentをやりがちなのですが、インターフェースを実装したものをGetComponentしていますと(怒られる)ので、違う方法で取得します。

 

Photonにおける自身のプレイヤーの取得方法は

PhotonNetwork.playerを用います。

 

また、他人のプレイヤーを特定する方法ですが、

foreach (PhotonPlayer p in PhotonNetwork.playerList)

などとして、PhotonNetwork.playerListで取得することができます。

 

そして、タグをつけていくこと、に関しては、

SetCustomPropertiesという、カスタムプロパティというものを使えばよいです。

 

JSでの書き方はこちら

C#での書き方はこちらに掲載されていました。

 

このようにして、部屋の入り方と、タグのつけ方を学んだ次第です。

Photonのドキュメントなども読むと、これからいろいろとできそうだなと思いました。

 

次回は、これからチャットゲームを作り進めていって、チュートリアルみたいなものを作りたいです。

また、現在「御筆るいの都内某所しっそう記3」という続き物のゲームを製作中でして、そちらの制作が優先されるかもしれません。

 

トナカイ

UnityのPhotonの勉強メモ~オンラインゲームを作りたい~

題名の通り、オンラインゲームが作りたいVyseArtのトナカイです。

 

どんなオンラインゲームかというと、ネタバレすると(技術が追い付かず)こちらが楽しくないので、ざっくりと、ゲーム要素のあるチャットのようなものを作りたいわけです。

 

そこで、Photonをこれから何回に分けて勉強していきます。

 

Photonでオンラインゲームを作るには

Unityには猫本というものがありまして、北村愛実さんの「Unityの教科書」です。その猫本の非オンラインのゲームをオンライン化してみたというサイトがあります。それを学習しました。

そのサイトはこちら です。

 

学んだこと

(PhotonのセットアップやUnityへインポートができた後のお話です。)

●オンライン化したいオブジェクトに、スクリプト「PhotonView」をアタッチする(これは必須)

●オンライン(して操作)するオブジェクトはプレファブ化する(これは普通に考えてそうですよね)(追記:JoinedLobbyなどロビーの概念があるとその後のプレファブのInstantiateが必要だと考えて、普通に考えてと書きました。)

Instantiate生成するプレファブはAssetフォルダ直下のResourcesフォルダに置くこと(必須)

●オンライン化したオブジェクト(自分のものは自分で)操作するには、スクリプトの内容に『if(photonView.isMine){ }』という形式で記述すること

 

以上が必要だということが分かりました。

 

======

 

 

 

 

 

 

学習

トナカイ(私個人)の学習では、二つのデバイス(アンドロイド実機とUnityエディタ)に、それぞれ二つのPlayerを表示させることができた。ただし、片方のデバイスで動かしても、もう片方にその動きが反映されなかった。

 

そこら辺の解説をしたサイトでとても分かりやすいものがあったので掲載します。

こちら

わかった限りで要約すると、PhotonViewをオブジェクトにつけるだけではなくて、動きを同期させる必要と、手順があること(PhotonViewのObservedComponentsにTransformをアタッチする)。ただし、自分のTransformを当該箇所にアタッチすると、かくかくとした動きになってしまう。

 

上記の問題を解消するために、PhotonTransformViewというコンポーネントが登場する。これを上記の当該箇所にアタッチすると、滑らかな動きで同期されるということだった。

 

この記事のまとめ

 

こんなレベルでブログを書いていくのですが、一歩一歩進んでいくために書きます。

 

Photonでオンラインゲームを作るには…

PhotonViewをアタッチする(必須)

オンライン化するオブジェクトをプレファブ化する

そのプレファブは、Assetフォルダ直下のResourcesフォルダに入れること

 

そして

 

自分のオブジェクトを操作するには、isMineプロパティを使い、記述する

バイス間の動機にはPhotonTransformViewコンポーネント利用が良い。(Transformだとカクカク)

 

以上です。

今後のPhotonの学習は、私のチーム(VyseArt)がチャットぽいオンラインゲームを作ろうかという話だったので(もっといろいろあるのですが)Photonのチュートリアルサイトを見て知識を深めるとともに、上記の知識で、案に出たチャットゲームっぽく作るにはどの知識を使えばよいかを予想を立てて考察していくことになります。

 

(ちなみにPhotonのチャット機能は使わないつもりです)

必要なもの(とキーワード)は、吹き出しが出てきて(Instantiate、IsMine、PhotonView)、ルームマスターともう一人役割があって(以後学習。OnJoinedLobbyから)、途中参加もできて(購入した書籍を参考に、ググる)、吹き出しが上にちょっとずつ移動していく感じ(これも購入した書籍を参考)

 

というような知識が必要だと思いました。

トナカイ