【宴】チュートリアルのまとめ

UnityでADVゲームを作るを導入した。

まず、使い方を覚えるためにサンプルプロジェクトいじってみたが、テキストの表示、キャラ立ち絵/背景/イベントCGの表示、BGM/SE/Voiceの再生、シナリオジャンプ/選択肢の表示、ゲーム内パラメータの管理など、ノベルゲームを作る上で必要な基本機能は一通り揃っている印象だった。

また、Auto/Skip/バックログ機能、Save/Load機能、コンフィグ機能など、システム面もサポートされているのがGood!

以下、チュートリアルよりよく使いそうな機能を抜粋。

テキスト周り

  • テキストの表示
    • StartシートのH列「Text」に文字を入力する
  • テキストの文字色の変更
    • タグを使用する
    • 例: <color=red>テキスト

スプライト周り (キャラ画像)

  • キャラ画像の表示 (単体)
    • Characterシートにキャラ名と表情を定義する
    • Arg1=キャラ名と指定することで、立ち絵を表示する また、Arg2=表情を追加することで、指定した表情の立ち絵を表示できる
  • キャラ画像の表示 (複数)
    • LayerシートにType=Characterを指定してレイヤーを定義する
    • Arg3=レイヤー名を指定すると、指定した位置に立ち絵を表示できる

スプライト周り (背景)

  • 背景の表示
    • TextureシートにType=Bgを指定して背景を定義する
    • Command=BgArg1=背景の名前を指定すると背景を表示できる - 背景の非表示
    • Command=BgOffと指定することで背景を非表示にする

スプライト周り (イベントCG)

  • イベントCGの表示
    • TextureシートにType=Eventを指定してイベントCGを定義する
    • Command=BgEventArg1=イベントCGの名前を指定するとイベントCGを表示できる
    • ※イベントCGの表示中は立ち絵が表示されない
  • イベントCGの非表示
    • Command=BgEventOffを指定することでイベントCGを非表示にする

サウンド周り (BGM)

  • BGMの再生
    • SoundシートにType=BgmでBGMを定義する
    • Command=BgmArg1=Bgmの名前を指定するとBGMを再生する
  • BGMの停止
    • Command=StopBgmを指定することでBGMを停止する

サウンド周り (SE)

  • SEの再生
    • SoundシートにType=SeでSEを定義する
    • Command=SeArg1=Seの名前を指定するとSEを再生する

パラメーター周り

  • パラメーターの定義
    • Paramシートにラベル名、Type、初期値を指定して定義する
    • TypeにはInt, Float, Bool, Stringを指定できる
    • ※セーブデータ毎のパラメータか、ゲーム全体(クリア回数など)のパラメータかで FileTypeを使い分ける。
  • パラメータの操作
    • Command=Param、Arg1に演算式を指定することでパラメータを操作できる

シナリオ分岐周り (ジャンプ)

  • ジャンプ先の定義 (シナリオラベル)
    • Commandに*から始まる名前を記述することで、シナリオラベルを定義する
  • シナリオジャンプ
    • Command=JumpArg1=シナリオラベルを指定するとシナリオがジャンプできる また、Arg2=条件式を指定すると条件に一致したときだけシナリオをジャンプする

シナリオ分岐周り (選択肢)

  • 選択肢の表示
    • Command=SelectionArg1=シナリオラベルを指定すると選択肢を表示する また、Arg2=条件式を指定すると条件に一致したときだけ選択肢を表示する

ゲーム開発を通じて学んだ開発と経営の共通点について

任天堂製品好きな crist18 です。

個人的な話をしよう。

それは11年くらい前、PS2GCが全盛期だった時代。

僕は、なぜだか分からないがGC派だった。 もちろんPS2も遊ぶ。RPGが大好きだったから。

でも、GameBoy AdvanceGameCubeも手放せなかった。 なぜ、どうして僕の心を惹きつけて止まなかったのか。 それは今でも分からない。

ファイアーエムブレム烈火の剣タクティクスオウガ外伝黄金の太陽カービィのエアライドテイルズオブシンフォニアピクミン2メイドインワリオスマブラDXバテン・カイトスパックマンVS ゼルダの伝説 4つの剣ポケットモンスター ルビー・サファイア、 RUNEⅡ、逆転裁判Ⅱ、新約聖剣伝説ZERO ONE SP…

夢中になって、貪るようにして遊んだ。

そして、このゲームにはどんな想いが詰まっているんだろう? どんな風に発想したらこんなゲームが出来るんだろう?

…と疑問を持つようになり、結局ゲーム開発者を目指すことになった。

意識的にゲームを作りたいと自覚したのが高校三年生の夏。 「受からんかったら任天堂デバッグ行くわ」と背水の陣で受験に望んだ冬。 そして、大学一回生の春、一度だけ岩田社長のお話を聞く機会を得た。

その時の話をしたい。


ゲーム開発を通じて学んだ開発と経営の共通点について

岩田 聡

1976. 高校時代コンピュータに興味を持つ。電卓でゲームを作る
  自分の作ったもので他の人に喜んでもらうことがエネルギーに
  情報がないので自分で試行錯誤するしかない
  → 仮説思考が身についた! 未知の問題に対応する経験 (これが今後重要になる)

1982. HAL研に入社

1983. ファミコン登場。任天堂の人に「6502のプログラムがかけるからファミコンのプログラムをやらせてくれ」と掛け合ったところ開発機材までもらう
  どんどん商品開発を行う
  先輩がいなかったのでトップランナーになる
  2, 3人で2, 3ヶ月でつくったものが数百万本売れる
  → 1人の若い社員が全体を見渡せる! 

1985. スーパーマリオブラザーズ登場。
  開発環境が良くなる → 市場が大きくなり、商品の規模も大きくなる
  チームが大きくなると、人の意識を揃えることが困難に
  開発者は個性が豊か。そもそも「クリエーションはエゴの表現」
  → 組織マネジメントの問題が浮上

  技術的な制約がゆるくなると、やりたいことの実現可能性は上がる
  でも、開発資源(人材、時間、予算)は有限
  → 「やりたいこと」と「やれること」のバランスが崩れ「やるべきこと」が正しく判断できなくなっている

  ゲームは娯楽。何が楽しいのか…?
  ビデオゲームは実用品でないため事前に完全な設計ができない
  良い意味で人に驚いてもらう仕事
  → 有限の開発資源を活かすため、優先度を調整していくことに挑戦

1988. 宮本さん vs 岩田さん
  プログラマの視点からデザインを観察してみた
  チームにより強みと弱みが違う。宮本さんはそれを見ていた。
  宮本さんはチームが何ができるのかを見つめていた
    → 宮本さんはチームの強みを活かすことを軸にしていた

  商品に対する目線の違い
  何も知らない人にゲームをしてもらい、肩口の視線が生み出す客観的な評価に基づき、判断する方法論
    → 宮本さんはユーザービリティをずっとまえから実践していた

ハル研の経営危機
  バブルの影響もあり、ハル研も悪いサイクルに陥っていた
  経営のことを知らない岩田さんの取り組み
  面談の価値
    今まで面談に時間を割けなかった
    一人一人と話をしていろんな発見
    → 個人面談を軸にする方法の確立
  山内さんとの面会
    「ソフト主導の娯楽ビジネス」の特殊性
      ハードは仕方なく買うもの
      娯楽品は我慢して使わない
      どんな商品も必ず飽きられる
      驚きが最も大切
      市場調査は無意味 (おどろくことは何ですか? と客に聞いてどうする!)
  独自性の重要性
    同じ軸で勝負 → すぐに価格競争になる
    だから人と違うことが重要
  フォーカスの重要性
    大切なことはめっちゃ大切に、いろんなものを追うことはやめる
  → 判断の方法: 独創、フォーカス視点 がコアな考え方に

開発者として話を聞いたが、それが経営判断にそのまま応用できることに気付く (42歳で社長!)

有限の資源
  資源とは人材、予算、時間
  → 多い方がいいが有限の中で最高のモノを作ることが大切

優先度を明確に
  「やりたいこと」から「やるべきこと」を見る
  → 「やるべきこと」明確な優先度が大切

強みを活かす
  チームの強み弱みを的確に理解して強みが生かせるように弱みが表面化しないように優先度を決めることが大切

マネージメント
  自分たちの強み弱みを理解した上でやるべきことをしぼりこむ

組織とは
  1人ではできない大きな目的を持ち味の違う様々な人が集まって、
  それぞれの強みを出し合って協力し合う仕組み
  昔: 自分がもう2, 3人いればなあ…
  今: 面談をふまえて、特性を大切に

人材のマネジメント
  個々に価値観や適性が異なる。どうやって尊重していくのか
  → 得意なことをすると苦労の割に周囲が高く評価してくれる それで元気になることが多い!
  → そこにご褒美を貰ったらもっとやる気出る! 得意!

  チームの中のほとんどの人は自分で仕事が選べない
  → ゴールが明確で、自分たちが今どこにいるのか、なぜ自分がその仕事を担当しているのか、それが分かると元気になる!

  面談で発見することの多さに驚いた
  → 面談の継続が多面的視点や訊く力の養成につながる

全体最適と部分最適
  プログラムの性能はごく一部の「ボトルネック」で決まる
  それは組織も同じ。
  → 部分最適しつつ全体も見渡す。どう解決していくか…? プログラムと似ている

独創性・柔軟性
  娯楽産業だからこそ世の中の環境の変化への対応がより必要に
  → 「よそと違うことをやれ!」 山内からの「任天堂のDNA」
  → ブルーオーシャン戦略を実践していた

  どんなものも飽きられる
  同じアプローチ・・・成功は保証できない
  → 柔軟に対応できなければ、たちどころに没落。常識をうたがえ!

アイデアとは
  開発はトレードオフの問題に直面する。あちらを立てればこちらが立てない
  「アイデアとは複数の問題を一度に解決するもの」 (宮本さん)
  視点を動かす、一度に複数の問題が解決できる視点を探し出す

岩田さんのアプローチ
  常識:「ゲームは子供、男性向き」
  アプローチ:「どうして? もっとやってこうよ!」
  → 任天堂の戦略、常識を疑え!

以上が、その当時のお話の内容である。

7年前は頷くばかりしか出来なかったけれど、社会人になった今見返してみると、 すごく大切で本質的なことに触れられていたことがわかる。

雑誌で読んだ沢山の記事も忘れられない。

「TVってすごいなと思うんです。一家に一台置いてあって一日一回チャンネルをつける。  ゲームもそんな風に生活に密着したものに出来ればいいなと。TVを付けるくらい自然なハードを」

その記事を読んだ数年後、Wiiは世界中に広まっていた。

苦境でも怯まず独創の道をゆく姿は、間違いなく業界を引っ張るリーダーだった。

岩田さんのご冥福を心よりお祈りします。

【Unity】ハッカソンで使えそうな技術まとめ

【Unity】ハッカソンで使えそうな技術まとめ

みなさんこんばんは!

ハッカソン漬けの一ヶ月を送ってきた crist18 です。

僕はハッカソンでも Unity を使いアプリを実装しているのですが、 今回 spajam の予選に向けて調査した事前情報などを紹介したいと思います。

枯れた技術の水平思考

タイトルは故・横井軍平さんのお言葉より。

個人的なリサーチでは「新しい技術」を取り入れた作品、もしくは 「既存の技術+新しい視点」を提示した作品が評価される傾向にあるように感じています。

新しい技術を用いる場合だと、例えば「◯◯APIを使用したアプリ」みたいに 新しい技術そのものを使うことを目的としたハッカソンもありますね。

でも、ハッカソンの種類によっては必ずしも新技術を使わなければいけない訳ではありません。

既存の技術でも、テーマに即して新しい視点を取り入れたら、それは立派なアイデアとして評価されると思います。

Unityで使える面白そうな技術

カメラ、ジャイロ、顔認識、加速度センサー、音声認識・・

Unityでも3Dゲーム/2Dゲームの枠に囚われる必要はなく、これらの技術を組み込むことで ひと味ちがう体験を提供できる可能性が出てきます。

技術的な制約を設けていると、思いつくアイデアにも制限がかかるもの。

もし参加する機会があれば、ハッカソンに向けて発想脳を刺激しておきましょう!

【Unity】WebCamTexture+ScreenShotで擬似カメラ

【Unity】デバイスの傾きを取ってみる | naichilab - Android iOSアプリ開発メモ

WEBカメラで利用できる顔認識技術まとめ(2015年4月)-その4 - littlewing

Unity スマートフォンの加速度センサーを使う - Three.jsを使って、作ってみた

RIFTWORLD • Unity初心者がJuliusで音声認識してみた! Ver1.4

東京インディーフェス2015 ワークショップのメモ(5月8日)

目次

  1. Global Marketing: Mobile Advertising and the art of Successful User Acquisition
  2. グローバルパートナーとの強力タッグにより 全世界のゲームファンに作品をお届けします
  3. Worldwide Opportunities for Japanese Independent Developers
  4. PCゲーム・スマホゲーム・ブラウザゲームなど、オールマイティに展開可能なCocosについて紹介します

Summary

  • このようなフェスはユーザー獲得より海外ローカライズの人脈作りに役立てるべき
  • 海外では企業がインディーズを支援する取り組みが増えてきている
  • Windows10とID@XBOXはインディーズが家庭用据え置きプラットフォームに参入する鍵になる
  • Cocos2d-xはバージョンアップの変更点が大きかったが最近安定してきている。3Dも強化している

※ もし内容について誤りがあれば、お手数ですが筆者までご連絡ください


Global Marketing: Mobile Advertising and the art of Successful User Acquisition

ローカライゼーション

  • わからないことがない ことが重要
  • 気をつけている点
  • ブレインウォーズ
    • 世界に向けてつくりました (世界のスマホユーザー30億人に向けて)
    • 小さな会社は戦い方を変えないといけない
    • ワンプロダクトで世界の誰もが使えるものを作る
  • ユーザー獲得のコストパフォーマンスの対策は?
    • 枠を踏み越えたマーケティングをしました TV番組とタイアップ
    • 自分のターゲット層がよく見ている番組はリサーチしました
  • 2つ方法
    • ノンバーバルかつバイラル効果があるもの
    • 対象とする国のパートナーを見つける

オンラインマーケット

  • 日本で効果が高いのは、ランキング施策やアドネットワーク、CPC

モバイルマーケティングについて(BrainWars

  • 特にマーケティングは行わなかった
  • ユーザーがアプリを知るチャネルは沢山ある
  • ユーザー自身が広めたいと思うアプリを作る。それが最大のマーケティング

マーケティングの考え方

  1. ブランドを築く
  2. 購入の一段階までの誘導を取る (購入のすぐ横にボタンを置くなど)

Mobiの考え方

  • クリエイターが重要。

デベロッパーのマネタイズの重要性

  • めちゃくちゃお金を稼ぎまくる より 世界で認められるアプリ製作者 を目指す
  • 7割広告、3割課金というマネタイズをしています

デベロッパーの東京インディーフェスに出る意味は?

  • ユーザー獲得にはならない。
  • ただし、海外の方とコンタクト取りネットワークを築くことができるのは大きな利点

グローバルパートナーとの強力タッグにより全世界のゲームファンに作品をお届けします

ネクソン紹介動画

  • メイプル、マビノギSUDDEN ATTACKアラド戦記
  • 特徴
    • 内製開発しています
    • 息長く運用しています メイプルは韓国から数えて12年
    • PCだけじゃありません # PCは80%、Mobile20%
    • インターナショナルです # 日本17%韓国38%中国39%
  • 世界全体に向けたヒット
    • クイズクイズ、カードライダー
    • 投資しています
  • 戦略
    • 徹底的にゲームのクオリティに注力すること
    • 品質とは?
      • ゲームが面白いか
      • ゲームがユニークか
    • 5年10年たっても楽しめるものを作っていきたい

Q&A

  • パートナーシップの選定で重視している点とは
    • インディーと組む場合は、品質の高い(継続的に運用できる)ことが重要
    • チームワークも重視します
  • インディーに積極的なのか
    • ネクソン韓国法人の取り組み
    • 2010年 NPC(Nexon and Partner Center)設立しました
    • オフィスに入居できます 法務など
    • 技術もビジョンもあるけど
    • オフィススペースが足りていないのではないか
    • Nexonベンチャーだった。苦労は分かる
    • 事例はありますか? ムーンラビット
  • 日本
    • インブルーを買収。
    • gloopsを買収。モバゲーに提供するゲームの中ではトップクラス
  • 欧米
    • 小規模な株式を取得 (50%以下)
    • 開発資金の提供
    • Big Huge Games
    • Boss key
  • パートナーにアピールしたいネクソンの強み
    • 品質。数字ではない。
    • 長期的なヒットには運用ノウハウとリソースが必要です
    • 単に資金提供するわけではなく対等なパートナーシップを組みます
    • 大型IPとコラボできます (Revo、FF、メイプル、アラド)
    • グローバル展開 150カ国以上にゲームをサービスできます
  • そうすら
    • 日本ではアクションRPGが定着していない
    • 売り上げ的には30以内
    • 海外のゲームが日本でヒットする事例は殆どない中結果を出しました
    • ローカライゼーションが重要です
  • IPの共同開発
  • メッセージ
    • 日本はPCが多いけどモバイルはこれから
    • ヒットタイトルを作っていきましょう
  • 日本の取組みは?
  • ゲームの品質
    • 素晴らしい経歴はプラスにはなるがマストではない
    • 何より大事なのはゲームがどれだけ面白いか
    • 経営陣がゲーマー
    • すごい面白いけどマネタイズ微妙なゲームは?
      • 過去に積み重ねがある
      • 話すと解決策が見つかるかもしれない
  • 攻略本やフィギュアなどゲーム以外の分野の取り組み
    • 6、7年前に事例がある
    • ビジネスとして育てていくのは難しい
    • 画廊はありますがビジネスとして育てていくわけではない
  • 任天堂DeNA パートナーシップを組むことについて
    • 他社さんのアライアンスについてコメントするのは控えます
  • 伝統的なコンソールとそうでない会社とのパートナーシップは増えていくか
    • FF11のモバイル向けをNexonが行っている
    • 想像できる流れだと思います

[Q&A]パートナーシップの選定で重視している点とは

  • インディーと組む場合は、品質の高い(継続的に運用できる)ことが重要
  • チームワークも重視します

[Q&A]インディーデベロッパーへの支援とは

  • NPC(Nexon Partner Center)設立しました
  • オフィススペースを提供します
  • ネクソン韓国法人の取り組みです

パートナーにアピールしたいネクソンの強み

  • 長期的なヒットには運用ノウハウとリソースが必要です
  • 単に資金提供するわけではなく対等なパートナーシップを組みます
  • 大型IPとコラボできます (FF、メイプル、アラド)
  • グローバル展開 150カ国以上にゲームをサービスできます

Worldwide Opportunities for Japanese Independent Developers

MicroSoft むらやまさん、クリスさん

紹介

  • ID@XBOX
  • 日本から素晴らしいゲームが出てくると思っています
  • この十年間でゲームを作るのが容易になってきています
  • ただし、まだ課題があると思うので、デベロッパが開発に集中できるようにしたい
  • windows10は15億の人々にリーチを広げます
  • コンソール(XBOX)もインディーズのプラットフォームになります
  • xbox.com/dev # 開発に関する情報があります

OneWindows

  • windowsデバイス全てに起動する土台
  • ユニバーサルwindowsプラットフォーム
  • ID@XBOXのWindows10はどう意味を持つでしょう

ID@XBOXプログラム

  • Xbox OneのdevkitやUnityのライセンスを提供
  • 作品を世界中の市場にリリースすることが出来る

ゴールは

  • 製造が簡単になります
  • 流通が簡単になります

2015年

Universal Windows Platform

  • windows10があれば全てのマイクロソフトデバイスで内容を実行できる
  • 最低限のスペックは必要です
  • 我々がスペック要求を定義することが無くなり、開発者が判断するようになります
  • 開発したらSteamで配信できます # humble, desura, ich.io
  • 月一でアップデートしていきます フィードバックが重要になります
  • ID@xboxがwindows10で使えます
  • 48時間でストアに反映できます ライブ形式では少しかかるかもしれません
  • コンソールはユーザーからの期待値が高い

XBoxOne

  • ハード専門に最適化されている
  • どちらへの移行も可能
  • アイダーブ
  • 特化した開発と
  • windows10 uwp
  • 市販のXbox oneでUWPのテストが可能になります 2015年後半
  • UWPゲームのXboxOne上の販売は今後対応します
  • Universal

ロードマップ

ID@XBoxに参加してください

  • エコシステムを通してガイダンスできます

実績があります

  • 日本のID@Xboxチームとコンタクト取ってね

日本はモバイル、海外はコンソール

  • 世界にコンソールのユーザーは沢山いる
  • Xbox One は急速な速度で売れている
  • windows10を使えばモバイルからコンソールへの移植も可能です

どんなゲームを期待していますか?

  • 日本はすごい作品が出ている
  • このような、という指定は必要ないです
  • windowsプラットフォームの商業化

オマケ

ケーブル入れいただきました!

TIFでめっちゃ大活躍。ありがとうございます。


PCゲーム・スマホゲーム・ブラウザゲームなど、オールマイティに展開可能なCocosについて紹介します

[前半]cocos2d-xの紹介

利用のメリット

  • 使用に際して制限なし
  • gitHub
  • Chukong Techlogies

シェア

  • 中国55%
  • 日本32%
  • 韓国28%

cocos

  • ブレフロ、モンスト、ツムツム、ポコダン、ログレス、ドラクエ
  • まだまだ2D主流
  • 3D機能もいけます!

3Dロードマップ

v3.0 - 3.6

その他の強化

  • Android端末の互換性 99.37%
  • パッケージサイズ縮小 エンジンが小さく
  • FPS上がりました

Coscos v2.2

  • cocos2d-x
  • cocos studio
  • cocos (複合ver)

事例紹介

  • Magic Rush

Cocos2d-JS

Cocos Code IDE

  • いいかんじです

Facebookページ

  • いいねよろしく!

[後半] パネルディスカッション

グリー渡部さん

  • 消滅都市
  • cocosのバージョンは初期が2系、本開始から3系

サイバード松下さん

  • ゲーム事業の取りまとめ
  • イケメン王国/コナン
  • エンジンの検討

ポッピンゲームズジャパン小林さん

  • ドラゴンシャウト/ピーターラビットガーデン
  • リアルタイム通信してます
  • サムズアップと共同

なぜCocos2d-xを利用したのか

  • 消去法で決まった。開発期間短く規模も小さい。
  • 時期的にUnityが2Dが始めたくらい
  • ユニティのノウハウがありません
  • C++経験者が多かった
  • Cocos2d-xを採用しました(渡辺)
  • Unityは3Dに強い印象があった
  • 2DであればCocosでしょう
  • クロスプラットフォームで工数を削減しました(松下)
  • 元々iOSで開発していた
  • 開発にあまり影響がなくAndroidを出せる(小林)

開発中にどのような問題が発生しましたか

  • バージョンが変わると仕様が変わる点
  • 2から3、3のαからβ 構成が変わるとプロジェクトが止まってしまいました
  • 変化が早いのでついていくのが大変 (2Dは安定してきました)
  • 開発用のツールが充実していない印象がありました
  • AWFとPhotoshopからエクスポートする

ガレージスタジオ

  • 教育しながら作れる (webからネイティブに)
  • こちらはUnityを使うことが多い

スーパーアニメーションコンバーター

  • swfからawfに変換

Cocos2d-xは適していましたか?

  • 製品レベルにするのはどれでも大変
  • 2D系はまだまだいける
  • 音系はあまり強くない
  • 今後の3Dは期待

東京インディーフェス2015 Unity5関連

東京インディーフェス2015に参加してきた crist18 です。

Unity開発者向けセッションを聞いてきました。

内容は、Unity5の新機能の紹介が中心でした。

話題

Colud Build、Ads、Everyplay、GamePeformanceReport

注目

イシュートラッカーからバグ対応状況がわかるようになりました

  • バグレポートを送るとIssueに紐付けられステータスが分かるので便利です
  • Vote数の多いものは優先度を高く対応します
  • 最新版で直っている可能性もあるので、出来るだけ最新版からご報告お願いします

内容

以下、走り書きのメモになります。

  • 東京で初めてのインディーゲームイベント
  • 今回TIFの協賛になりました
  • Unity知っていますか? 5を公開しました 知っ得系のお話をします
  • Unity5でいろいろ変化がありました
  • クラウドビルド、Ads、Everyplay、Analytics、GamePeformanceReport
  • Unityエディタ改善しました
    • パッチリリース (バグFix、AndroidiOSの対応)
    • 毎週パッチが出ている! (5と4で交互に)
    • パッチのRSSあるので登録してね
    • ベータ版もDLできるようになりました (ただしProライセンス必要)
    • BugReporter、Public issue tracker
      • QAチームが再現を確認したら修正する
      • バグのStatusが確認できます (確認中、対応中など)
      • vote数が多いものから優先して直します
      • パッチリリースのBugIdとissueのidが紐付いている!
      • IL2CPP アプリサイズの計測方法が変わっています
      • バグレポートは最新のUnityから行いましょう
    • ナレッジベースの公開
    • 日本向けのサポート、Formかお問い合わせから質問してね
  • クラウドビルド便利です。ぜひ使ってください。
    • どの変更がビルド失敗に影響したかわかります
    • Pro版は12ヶ月無料です
    • Personal でも使えます 1GBとContributerひとりなど制限あるので注意してね
  • Unity Ads おもしろいです
    • 動画広告が有効だよ レベニュー大きいよ
    • クロッシロード遊んでみます、動画見るとコインGET
    • インストールしなくても動画見るだけでリワード発生します
    • 良い点
      • ゲーム画面にバナーを入れなくてもよい
      • 動画してインストールするユーザーは長く遊んでくれます
      • 北米では動画広告が伸び始めています (クロスキャンペーン!)
    • EasyUnityAds GitHubからDLできます 参考にしてください
    • Demo
      • SpaceAds unity-ads-demo
    • eCPM=978円 1000再生あたりの平均的な収益
  • Analytics 時間ないのでとばします
  • Game Perfomance Report
    • まだプレビュー版です
    • 変な挙動したときログを収集してくれる
    • どのバージョンの何で落ちているか
    • 簡単にインストール出来ます(4系も5系もOK)
      • アプリのKeyを発行
    • Angry Unity chan
      • ChrashReporting.Init(appid, version, username) // アプリ起動時に呼び出す
      • 例外を補足してwebでトラッキングできます

【Unity】Animationの最終フレームで処理を実行する

Unity勉強中の crist18 です。

アニメーションの最終フレームでCallbackを呼び出す処理を頻繁に使うので、 最終フレームでGameObjectを非表示にするコンポーネントを作ってみました。

使い方

  1. アニメーションのGameObjectにAnimationEndCallbackをアタッチする
  2. インスペクタよりCallback Typeを指定する

f:id:crist18:20150301223426p:plain

sampleでは最終フレームに達したとき、GameObjectのSetActiveをfalseにする処理を書いています。

仕組み

  • animation.clip.length でアニメーションの秒数を取得する
  • animationInfo.clip.AddEvent でキーフレームにイベントを登録する
  • イベントが登録されたフレームが再生されたときEndAnimationCallbackを呼び出す

AnimationEndCallback.cs

using UnityEngine;
using System.Collections;

public class AnimationEndCallback: MonoBehaviour
{
    [SerializeField] 
    private CallbackTypes callbackType = CallbackTypes.None;
    private bool isRegistered = false;

    public enum CallbackTypes
    {
        None,
        SetActiveFalse,
    }

    private Animator animator;
    public Animator Animator
    {
        get
        {
            if (animator == null)
            {
                animator = this.GetComponent<Animator>();
            }
            return animator;
        }
    }

    public bool HasAnimator
    {
        get { return Animator != null; }
    }
    
    void Update()
    {
        if (!this.isRegistered)
        {
            Register();
        }
    }
        
    public void Register()
    {
        if (!this.HasAnimator)
        {
            return;
        }
        if (!this.gameObject.activeInHierarchy)
        {
            return;
        }

        var currentAnimationState = this.Animator.GetCurrentAnimationClipState(0);
        foreach (var animationInfo in currentAnimationState)
        {
            var animEvent = new AnimationEvent();
            animEvent.functionName = "EndAnimationCallback";
            animEvent.time = animationInfo.clip.length;
            animEvent.intParameter = 0;
            animationInfo.clip.AddEvent(animEvent);
        }

        this.isRegistered = true;
    }

    public void EndAnimationCallback()
    {
        switch (this.callbackType)
        {
            case CallbackTypes.None:
                break;
            case CallbackTypes.SetActiveFalse:
                this.gameObject.SetActive(false);
                break;
            default:
                break;
        }
    }
}

Thanks your logs!

この記事を作成するにあたり下記のサイトを参考にさせていただきました。有難うございます!

Unity3D - アニメーションを強制的に最後のフレームにする - Qiita http://qiita.com/udzura/items/bf43048c680b3aaad44a

OnionGinger: Unity アニメーションイベント http://onionginger.blogspot.jp/2012/04/unity_21.html

MacでGo言語の開発環境を構築/WebサイトジェネレータHugoを試してみた

Go言語初心者ですこんにちは。

良いブログ作成ツールを探していたらHugoを知ったので試してみました。

前提

Macでgo言語開発環境を作る

Homebrew経由でgoを入れる

brew install go
go -h
go version

goはversionにハイフンいらないのかーと変なところで感心。

2015/2/22に試したときのバージョンはgo version go1.3 darwin/amd64になっていました。

go言語のワークスペースを作成する

go getを使うために環境変数を設定しておきます。

GOPATHの設定

cd ~/
mkdir go

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Hugoで新しくサイトを作る

インストール

https://github.com/spf13/hugo へアクセスしForkをクリック f:id:crist18:20150222231103p:plain

リポジトリをclone

git clone https://github.com/YOURNAME/hugo # YOURNAMEにGitHubのアカウント名を入れる
cd hugo
go get -u -v github.com/spf13/hugo

hugo version

バージョンはこんな感じでした。 Hugo Static Site Generator v0.14-DEV BuildDate: 2015-02-22T22:24:58+09:00

サイト作成

cd ~/go
hugo new site ~/go/mysite
cd mysite
hugo new post/start.md
git clone --recursive https://github.com/spf13/hugoThemes themes
hugo server --buildDrafts --theme=nofancy

確認

http://localhost:1313/ へアクセス

f:id:crist18:20150222235739p:plain

動きました!

デザインかわいい。--themeオプションで色々変えられるのだろうか。

確認が終わったらctr + Cでwebサーバーを停止する。

オマケ

Mercurielが入っていない場合は次からzipをダウンロードしてインストールする。 http://mercurial.selenic.com/

雑感

Go言語の開発環境の導入にもってこいではないでしょうか。 静的サイトジェネレーターは初めて使いましたが、MacとHomebrewがあれば手軽に試せます。 あと、公式サイトがスタイリッシュ!

Thanks your logs!

本記事は下記の記事を参考にさせていただきました。有難うございます!

Macでgo言語開発環境を作る - Qiita

OctopressからHugoへ移行した | SOTA

Goコードの書き方 - The Go Programming Language