読者です 読者をやめる 読者になる 読者になる

虎尾春氷

ゲームとWebサイト制作の勉強記録

Unity5で作ったプログラムをiPhone実機で動かす備忘録

はじめに

ただいま『Unity5の教科書』という本を読んでUnityの使い方を勉強しています。

実機でプログラムを動かす部分を試しているのですが、エラーが出てきて何点か設定が必要なところがありました。

また出くわすエラーだと思うので、Unity5で作ったプログラムを自分のiPhoneで動かすためにやったことの備忘録をまとめます。

(本記事は、2016年2月時点で試したときの内容を書いています。)

自分の環境

iPhone実機で動かすまでのフロー

何も問題ない場合は以下手順で動かせるようです。Unity5とXcodeはインストール済みの前提です。

  • UnityからiOSプロジェクトの書き出しを行う
  • 生成された.xcodeprojファイルをダブルクリックしてXcodeを開く
  • XcodeからRunボタンを押す

手順詳細

私の場合そのままではうまくいかず、細かいエラーがいくつか出たので手順を詳しく書いてきます。

iOSプロジェクトの書き出し

まずはUnityから.xcodeprojファイルを書き出します。

UnityのツールバーからFile > Build Settingsを選択して、以下図の画面を出します。そしてBuildボタンを押して、ファイル名を入力してxcodeprojファイルを保存します。

生成された.xcodeprojファイルをダブルクリックするとXcodeが開きました。

f:id:twocolor2:20170205181436p:plain

XcodeでRunボタンを押す

自分のiPhone6SをMacにUSB接続した状態で、Runボタン右側のところを「Generic iOS Device」から「自分のiPhone名」に変更しました。

その後すぐ再生ボタンのような形のRunボタンを押してみました。

f:id:twocolor2:20170205182610p:plain

これで動くと思っていたのですが、早速以下のエラーが出てしまいまいた。

「自分のiPhone名」 is busy: Processing symbol files

f:id:twocolor2:20170205182952p:plain

このエラーは、上に書かれたProcessing symbol filesのところのバーが100%になったあとで再実行したら無くなりました。

Apple ID認証

Signing for “Unity-iPhone” requires a development team. Select a development team in the project editor.

Runボタンを押すと、次は上記エラーで動きません。エラーを調べたところ、今勉強している本の著者様サイトが出てきました。

(参考サイト:UnityでiOSビルドするとエラーが出る - おもちゃラボ

Teamというのを設定する必要があるらしく、Apple IDをXcodeで認証する必要があるようです。

この設定のためには、左側のファイル一覧のところでプロジェクト名を選択して、Generalというタブを開くようです。自分は途中で少しいじったせいかプロジェクト名を選択してもGeneralが出てなくて困りましたが、ターゲットを変更したらGeneralが表示されました。以下はターゲットを変更しているところの図です。

f:id:twocolor2:20170205183458p:plain

次にSigningからAdd Accountボタンを押してApple IDを認証します。

以下の画像ではすでに認証が終わった状態のものですが、最初に開いたときは矢印付近にAdd Accountボタンが出てました。

f:id:twocolor2:20170205184224p:plain

Add Accountボタンを押して自分の既に持っているApple IDでログインをするとエラーが解消しました。

ProductName変更

No profiles for ‘com.Company.ProductName’ were found: Xcode couldn’t find a provisioning profile matching ‘com.Company.ProductName’.

次はこのエラーが出ました。GeneralのBundle Identifier欄にあるcom.Company.ProductNameをユニークな名前に変更したら直りました。

デベロッパAPPの信頼

Cloud not launch “ProductName”

f:id:twocolor2:20170205185202p:plain

次はこのエラーです。iPhone側で認証する必要があるようでした。

iPhone側で、

設定 > 一般 > プロファイルとデバイス管理 から、デベロッパAPPを選んで信頼を選びました。

バイスの向き

これで動きましたが画面の向きを横向きにしたかったので、Signingの下にあるDevelopment InfoからDevice OrientationをLandscape Rightだけチェック入れた状態にしました。

f:id:twocolor2:20170206000330p:plain

アプリが動いた!

これまでの設定をしたあとでRunボタンを押してしばらく待っていると、iPhoneでアプリが動きした!

Apple ID認証のところ以外は簡単なエラーばかりでしたが、細かいエラーがたくさん出ていたので、なんとか解消して動くようになって嬉しいです。

また起きそうなので落ち着いて対応できるように備忘録として対処法を残しておきます。

「虎尾春氷」の意味と当ブログ名の由来

「虎尾春氷」の意味

「虎の尾を踏んで春の薄氷の上を歩くぐらい、とても危険なことをする」という意味らしいです。

(参考URL:「虎尾春氷」(こびしゅんぴょう)の意味

当ブログ名の由来

私は、AI技術を使って「概念間の関係を考慮した、今までに無いタイプの仕組みを導入したゲーム」を作りたいと考えています。

まだ制作物が無いのでイメージを伝えるのが難しいですが、例えばHUNTER×HUNTERの念能力のような複雑なものをゲーム中で再現したいです。

そういったシステムが世に普及したら良いと思っていますが、個人で作るので規模は小さいし、今までに無い新しい概念が広まる可能性は極めて低いです。

虎尾春氷の本来の意味とは異なりますが、「細々としたいつ潰えるか分からない微かな可能性を模索している」そんな意味合いを込めてこの四字熟語をブログ名にしました。

『成果を出し続けるための 王道SEO対策 実践講座』を読んだ感想

自分の読書背景

とある個人Webサイトのデザインを私が改修することにしました。

そのサイトは宣伝等全く考えられていなかったので、HTMLコードの中でSEO対策もやってみようと思い、勉強のために『王道SEO対策 実践講座』を購入しました。

SEOの知識はゼロの状態ですが、一通り最後まで通して読んでみたので初心者観点から本の感想を書いてみようと思います。

本の内容について

成果を出し続けるための 王道SEO対策 実践講座

特徴

  • 「成果を上げる」ことが第一目的で、知識無しでも読めば実行できることが書かれている
  • 閲覧者が利用しやすく検索エンジンが良いとするサイトを作るという「王道」を追求した内容
  • サイトのSEO設計について最初にすべきことから順に書いてる
  • 既にサイト運営している人向けに悩み別の逆引きもできる構成

が特徴と思います。書かれている内容について自分の言葉でまとめてみます。

主な内容

(1) SEOの背景

 SEO対策のメリットや基礎知識についての説明です。「内部対策」「外部対策」「環境対策」の位置づけなども分かります。

(2) キーワード選定

 世の中の検索ボリュームをGoogleアドワーズGoogleトレンドで調べたりして、どういったキーワードを狙うかの戦略を立てる話でした。

(3) クローラーに伝える

 サイトマップやSearch Consoleなどを使って検索エンジンクローラーを適切に呼び込む方法が書かれていました。

(4) HTMLの記述ポイント

 HTMLの記述の中で効果あるポイントが内部SEO対策として書かれています。

(5) ペナルティ

 検索エンジンを騙そうという意図がなくてもペナルティを受けて検索順位が下がることがあるので、その原因と注意点がまとめられています。

感想・考察

分かったこと

SEOというのが何なのかよくわかってなかったので『HTMLに何か書けば訪問数が増えるテクニック』と最初は思っていました。

でも実際は、世の中的に検索されている数が多いキーワードのニーズを調べたり、検索エンジンからサイトに流入したときにコンバージョンに繋がるキーワードかどうかということも考慮した設計がまずはじめにあって、それに合わせた形でHTMLにキーワードを盛り込んでいくものと分かりました。

疑問点

訪問数が多いサイトは検索上位に出ると思うのですが、そのことについては触れられていなかったため気になっています。別途調べてみようと思います。

自分の状況への応用

その1

私が改修するサイトはメインコンテンツがツール系のサービスなので、ちまちまアップデートしていても記事とかが無いので放置してると見られそうです。

本の内容によると、そういった場合でもWebサイトを更新していることを伝えるために、トップページに更新情報が表示されるようにすると良いようです。基本的なことですが、たしかに利用者にとっても分かりやすいと思います。

また、例えば商品サイトならオススメ商品情報の記事を書くなども良いと書かれていました。これらを参考にして、更新内容を説明するページを作ろうと思います。

その2

改修対象のサイトはドメイン名も適当だったので、リニューアルにあたりサイトのURL変更をしたいと相談されています。

URLが変わると検索エンジンからの評価が下がるのは避けられないようですが、301Redirect設定やSearch Console等で検索エンジンへの申請を適切に行うことで、なるべくURL変更の影響を減らすための方法についても書かれていたので、とても参考になりました。

Redirectやシステム的な面は想定していましたが、SEO的に何をすべきか全然分からなかったので体系的に理解できて安心しました。

最後に

他のSEO本を読んだことないので比較は出来ませんが、はじめて読むSEO本として非常に分かりやすかったです!

SEO初心者の感想なので間違ってるところもあるかもしれませんが、この本で学んだ内容を基礎として、あとはネットで枝葉の知識をつけていくイメージが出来ました。

iPhoneアプリ向けのゲームエンジンについて初心者が調べてみた

はじめに

最近iPhone向けゲームアプリを作りたい気持ちが高まってきたので『本でも買ってじっくり勉強しよう』と思い、軽い気持ちで本屋に行きました。

しかし、ゲーム開発の棚を見るとSpriteKitやらcocos2d-xやUnrealEngineにUnityと、よく分からないキーワードだらけで学ぶ前から早速躓きました。たぶん本にはゲームエンジンの特徴も書いてたのだと思いますが、右も左も分からない今の自分には頭に入ってきません…。まずは各ゲームエンジンがどんな立ち位置にあるのか比較した地図的なものを把握したいので、調べることにしました。

ちなみに私はObjective-Cを使ったiPhoneアプリ開発を数年前にちょっと齧ったことがあるのですが、今はもう殆ど覚えていません。

そんな初心者レベルの状態ではありますが、iPhoneアプリ向けのゲームエンジンについて全体像を自分なりにまとめてみます。

よく見かけるゲームエンジン

この記事では次のゲームエンジンについて記載します。

自分は2DのソシャゲRPG的なものを趣味で作りたいので、廉価で利用できる2Dゲームエンジンかどうかに重きをおいた説明になります。

ゲームエンジンの比較について整理された記事を見つけましたが、私がどのゲームエンジンを採用するか判断するには内容が難しかったです。なので、下記記事を参考にしつつ、各ゲームエンジンを調べて自分なりに理解したことを入門者視点でまとめます。

(全体的な比較の参考サイト:[CEDEC2015]「〇〇使いにはなっちゃだめ」ゲームエンジンメーカーが、ゲームエンジンを徹底比較

(全体的な比較の参考サイト:【CEDEC 2014】Cocos2d-xかUnityか・・・よりよい2Dゲーム開発のためのゲームエンジン選びと対策 | インサイド

Sprite Kit

Apple標準のiOS向け2Dゲームフレームワークです。Xcodeを使った普通のiOS環境でゲーム用の便利機能が使えるようになるみたいです。

Swiftだとどうなるか分かりませんが、少し古い記事だとObjective-CだとUIViewを継承したSKViewを使うと書かれていました。 既存のiOS開発した人にとっては延長上で使えそうです。また、後述するcocos2dよりもビギナーフレンドリーのようです。

(参考サイト:iOS SDKとSwiftで始めるゲーム作成入門(1):初心者でもiOS 9/tvOS向け2Dゲームが作れる標準フレームワークSpriteKitの基礎知識とチュートリアル (1/3) - @IT

(参考サイト:scratch - SpriteKit.jp

(参考サイト:なぜ Apple は Sprite Kit を作ったか、そして、Cocos2d にとって何を意味するか: cobalt blue and turquoise blue

cocos2d-x

2Dが得意なのと、オープンソースなので無料で利用できます。

クロスプラットフォーム対応で、iPhoneアプリAndroidアプリが1種類のソースコードで動くらしいです。

クロスプラットフォームフレームワークということなので、スマホアプリの場合はXcodeメインで作りながら、定期的にEclipseAndroidで確認が好ましいそうです。なんとなく開発のイメージができる感じがします。

モンストなど有名アプリでも使われていたり、実績が多いようです。

初心者的にはクロスプラットフォーム対応である点がSpriteKitとの分かりやすい差異ですね。

(参考サイト:Cocos2d-x超入門 そもそも何からはじめればいいの? - Qiita

(参考サイト:無料/国内実績多数のクロスプラットフォーム対応ゲームフレームワーク「Cocos2d-x」の概要と環境構築手順 (1/3):CodeZine(コードジン)

Unity

2Dも3Dもできて無料でも使えてクロスプラットフォーム対応、ゲーム素材も充実していてシェアも一番多いというなんかすごいゲームエンジンです。

開発環境はUnity独自のものとなるようです。

Unityですべてカバーできそうですが、

2Dでシューティングとかの速度が求められるならCocos2d-x

iPhoneアプリ開発の知識を生かしつつライトに作るならSpriteKitという棲み分けなのではと思います。

また、Unity内で扱える言語でJavascriptC#があるようですが、JavascriptはUnity独自仕様になっているようなのでC#でやるのが良いようです。

(参考サイト:【入門者必見】Unityとは?意味や特徴、特性、使い道を徹底解説 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

(開発環境の参考サイト:Unity入門(1)- 開発環境のインストール | Developers.IO

(cocos2d-xとの比較の参考サイト:Cocos2d-xかUnityか・・・ めいでる速報

(Unity内言語の参考サイト:【C#】Unity入門者に贈る超おすすめ本7選+α - はらぺこグリズリーの料理ブログ

Unreal Engine

こちらも無償で使えて(売上額によるけど)、3DでグラフィックにこだわるならUnreal Engineが良いようです。Unityよりも情報は少ないみたいです。今回は2Dを想定していたので詳しくは調べていません。

(参考サイト:Unityは神,Unrealは現実

自分の場合

詳細はまだまだ分かりませんが、大雑把な各ゲームエンジンの立ち位置が見えてきました。

自分の場合だと、

  • 基本は2Dゲームでたまに演出とかで3D入るかも
  • iPhoneだけでもいいけどクロスプラットフォーム化できるなら望ましい
  • シューティングのような重い処理は無さそう

という要件なので、UnityをC#で学習しようと思います。