【輪講】Hansoftについて

プロジェクトのリーダーをする際、
必ずプロジェクトの管理や仕事の割り振り、スケジュールの管理が必要になってきます。

それらを可視化させるのが『Hansoft』です。

今回はこの『Hansoft』の導入から使い方を説明したいと思います。

まず、この『Hansoft』の優れている点について説明します。

『Hansoft』はゲーム開発者が自分達の開発を管理するために生み出されたツールです。
そのため、データベースの構造及びデータベースへのアクセス、
サーバーとクライアント間の通信について、速度とセキュリティを特に重視されています。

1.操作が軽い→ストレスフリー
『Hansoft』の操作は軽快で、かつCPUへの負荷も軽く、常時起動しても開発マシンへの目立った影響がない。

2.導入が速い→学習コストを考慮しなくてもよい
Windowsでも、OSXでも、Linuxでも、サーバーやクライアントのインストールはワンクリックで済みます。
直観的なインターフェースで、自分のやりたいことをすぐ開始出来ます。

3.複数の開発方法を併用する開発をサポート→1つのツールでプロジェクト全体を管理出来る
例えば、以下のような1つのプロジェクトに複数の開発手法が混在する場合であっても、
『Hansoft』だけでプロジェクト管理が出来ます。

・組み込み開発:ソフトウェア開発チームはアジャイル的に開発する一方、ハードウェア開発チームはガントチャートを利用している。
・ゲーム開発:ソフトウェア開発チームが反復で開発しつつ、デザインチームはカンバン方式で開発する。

『Hansoft』はアジャイル開発プロジェクト管理をサポートすることはもちろん、従来のガントチャートを用いたプロジェクト管理にも対応出来ます。

4.多言語対応→多国間の共同開発をサポートする
ユーザーは自分の好みによって、インターフェースを英語、日本語、中国語の中から選ぶ事が出来る。

以上がHansoftの基本的な機能と特長です。

実際に私が調べた使い方をご紹介します!

まずはHansoftのインストールと設定です。

今回の説明はWindowsOSにおいての説明となります。

まずは、

Downloads


でソフトをダウンロードします。

rinkou1

Hansoftは9名まで無料で使用出来ます。
作業をするパソコンをサーバーにする場合、サーバーとクライアントを一緒にダウンロードできる
「All-in-One Small Team Edition」の「Installer for Windows」をクリックしてダウンロードして下さい。

但し、この場合ホストの人のパソコンの電源を落としてしまうと他の人も使えなくなってしまうので微妙です。

常時起動出来るサーバー用パソコンをサーバーとして使用しましょう。
その場合、「Server」の「Installer for Windows」をクリックしてダウンロードして下さい。

その他ホストにならない方は、「Client」の「Installer for Windows」をクリックしてダウンロードして下さい。

今回は「All-in-One Small Team Edition」についての説明を行います。
ダウンロードした「Hansoft Trial 9.1047.exe」ファイルを起動します。

ドロップダウンを「日本語」→OK→次へ→同意する
→ホストとなるPCを使ってる方はドロップダウンを「すべて」
他の方は「クライアントのみ」にし次へ→次へ→インストール→インストール完了後自動的にHansoftが起動されます。

この自動的に起動されるソフトはクライアント側ですので、
まずはそっと閉じましょう。

スタートからすべてのプログラム→Hansoft→Hansoftサーバー管理を起動します。

無題2

サーバー管理のほうはサーバー管理者と書いてあります。

Hansoftサーバーにホストとなるコンピューター名を入れます。
(学校で使うならPCに貼ってあるシールの名前を入力して下さい。)

ポートに関しては最初から入力されている「50256」のままで大丈夫です。

接続→このサーバーを信頼しますをクリックします。
管理者パスワードを聞かれるので「hpmadm」を入力しサインインします。

無題

無事サインイン出来ると上の写真の画面が出てきます。
画面を見てもらうと分かりますが、新しいデータベースを作成出来たり、
データベースの削除を行えたりとサーバー関連の処理はここで行います。

次にクライアントを起動します。
スタートからすべてのプログラム→Hansoft→Hansoftクライアント

サーバーと同様にHansoftサーバーを入力し、ポートはそのままで接続します。

ユーザー名とパスワードを聞かれますが、
まだユーザーを作成していないので管理者としてサインインします。

ユーザー名「administrator」パスワード「hpmadm」と入力しサインインします。

無題1

サインイン出来ると上の写真の画面が出てきます。
まずは他の人がサインイン出来るようにユーザーを作成していきましょう。

ちなみにですが、先程説明した通り「All-in-One Small Team Edition」を使用すると、
9名までしかユーザーを作成出来ません。

さらに最初から3名作られていますので、必ず削除して下さい。

無題3

削除したら「新規ユーザーを作成」をクリックし、新しくユーザーを登録していきます。

無題4

「名前」は本人の名前を入力すると他の人が分かりやすくなります。
これがそのままサインインする際のユーザー名となります。

パスワードは全員まずは簡単なもので一緒にしておきます。
セキュリティ部分で「ユーザーは次回ログインの際にパスワードを変える必要があります」にチェックを入れましょう。

あとは各チームごとにルール決めをしてチェックを入れて下さい。

無題5

ユーザーグループは私達のチームではProjectSEEKER、プランナー、プログラマー、デザイナーで分けて各ユーザーに設定しています。

ユーザー登録が終わったらクライアントをダウンロードしたプロジェクトメンバーもサインイン出来るようになります。

ここからプロジェクトの管理の仕方になりますが、まだ使い方を全て把握出来ているわけではないので分かっている部分だけ説明します。

まずはプロジェクトの作成を行います。

無題ww

まずは上の写真の1番、先程はユーザータブでしたが今度はプロジェクトタブに変更します。
変更したら2番、新規プロジェクトの作成をクリックします。

無題aaa

まずはプロジェクト名を入れます。
Projectゲームタイトル みたいな名前にするといいと思います。

新規ユーザー向け標準モードを今回はアジャイルを使用にチェックします。

メソッドテンプレートをスクラム、スケジューリングメソッドを「固定期間」メソッドを使用(推奨)を選びます。

タスク完了メソッドは予定タスクの完了表示にステータスカラムのみを使用にチェックをします。

全て設定し終わったらOKをクリックします。

ユーザーを追加するか聞かれるのでプロジェクトメンバー全員を入れましょう。

ユーザーグループを追加すると手っ取り早いです。

無題222

プロジェクトが作成されるとメインマネージャー部分で「メインマネージャーが選択されていません」と出ていますので、
ウィンドウ下部分でメインマネージャーを設定しましょう。

他にもメンバーの閲覧制限やプロジェクト履歴へアクセス可能かどうかの設定も出来ます。

無題3333

上の写真のプロジェクト:プロジェクト名を選ぶと、プロダクトバックログ、品質保証(QA)、プランニングタブが出てきます。

無題22222

無題444444

最終的にはこんな感じになってくると思います。
まだ使い方の勉強中ですので勉強しながら分かった部分をブログにあげていきたいと思います!

[輪講]cocos-2d-xで制作したゲームにGoogle Analyticsを導入して利用統計情報を取得する

アプリのシーン滞在時間やアクションなどの統計情報を取るためのGoogle AnalyticsをSDKBOXを使ってcocosのプロジェクトに追加する手順を紹介します。

GoogleAnalyticsのアカウント登録の説明は省略します。

・SDKBOXのインストール

以下のコマンドを実行する。

python -c “import urllib; s = urllib.urlopen(‘https://raw.githubusercontent.com/sdkbox-doc/en/master/install/install.py’).read(); exec s”

・自分のcocosプロジェクトにGoogle Analytics Pluginを追加する

Google Analyticsを導入するプロジェクトのディレクトリに移動します

図14

以下のコマンドを実行して、プロジェクトにGoogle Analyticsを追加します
sdkbox import googleanalytics

図15

導入に成功した場合以下の表示になっています
最後の行が “Installation Successful :)” となっています

図16

・GoogleAnalyticsにアプリを登録する

[アナリティクス設定]-[プロパティ]-[新しいプロパティを作成]をクリック

図10

モバイルアプリ・Googleアナリティクス開発者サービス SDKを選択し、アプリ名を入力

図6

業種とタイムゾーンを選択し、[トラッキングIDを取得]をクリック

図7

アナリティクス設定のプロパティ項目、[トラッキングコード]をクリック

図2

トラッキングIDをコピー

図13

コピーしたIDをトラッキングするcocosプロジェクトのResources内にあるsdkbox_config.jsonにペーストします

図17

・Google Developer Console と Google Analyticsのリンク

アナリティクス設定のプロパティ項目[すべてのサービス]をクリック

図1

Google Playの[リンク設定の変更]をクリック

図4

[新しいPLAYリンク]をクリック

図9

リンクするアプリを選択し、[続行]をクリック

図8

[リンクを有効化]をクリック

図5

[完了]をクリック

図3

これでGoogle Developer Console と Google Analyticsの紐付けが完了します

・ソースコードにGoogle Analyticsのセッションを開始する記述とログを送信する記述を埋め込む

AppDelegate.cppで”PluginGoogleAnalytics.h”をインクルードする
(SDKBOX対象ターゲットでのみ読み込む為に#ifdef SDKBOX_ENABLEDしておくことをお勧めします)

図18

アプリ起動時に実行される関数applicationDidFinishLaunching()でGoogle Analyticsの初期化をします

図19

ログを送信したい箇所があるcppでも”PluginGoogleAnalytics.h”をインクルードする

図20

シーンの初期化関数でシーンのログを送信することで、どのシーンでユーザが離脱しているかなどの統計が取れます

図21

ゲームクリアや項目の達成でイベントのログを送信することで、どのような項目をクリアや達成しているかの統計を取ることができます

図22

シーンやイベントのログの統計を取ることで、ユーザがアプリをどのような使い方をしているか知ることができます。

[輪講]GUIでプロジェクトの作成が可能なcocosの紹介

GUIでプロジェクトを作成でき、Cocos Storeからアセットのダウンロードが可能なcocos(正式名称)を紹介します。

・インストール方法
Visual Studio 2015を起動して、新しいプロジェクトからcocosをインストールを選択

図1

このような表示が出たらインストールをクリックします。

図2

次へをクリックします。

図3

しばらくするとインストールが終了します。
インストールが終了したら、デスクトップからcocosを起動し、Cocos StoreからCocos Frameworkをダウンロードします。

図7

Cocos Frameworkのダウンロードが終了したら、DownloadsのDownloadedタブからCocos Frameworkのinstallをクリックしインストールします。

図8

Cocos Frameworkのインストールが終わったら、プロジェクトのnew Projectをクリックしてプロジェクトを作ります。

図5

デフォルトのプロジェクトとさまざまなデモのプロジェクトを作成することが出来ます。

図6

画面の向きや開発言語を選択し、Finishをクリックします。

図9

プロジェクトが作成されるとCocos Studioが起動します。(スクリーンショット撮り忘れました。。。)

画面構成がCocos Studio、その他のコーディングは従来通りIDEを使用することで、効率良く開発ができると思います。

Cocos Studioから実行したプロジェクトファイルは画面のキャプチャやスクリーンショットが撮れるので、PV制作の際には役に立つと思います。

図12

※この手順でインストールされるcocosはver2.3.3で最新β版のver3.10ではありません(2016年6月2日現在)
アップデート通知が表示されることがありますが、ver3.10βはCocos Storeなどがありませんので、アップデートしないことをお勧めします。

C++コードをUE4で書いてみる。

お久しぶりです!!

最近うっかり更新するのを忘れていました。

今回はUnreal Engine4でC++のコードが書けると聞いたので、そのことについて、
書いていきます。

Unreal EngineではC++を」書く場合、手順があります。

まずはプロジェクトを作成します。(今回はSide Scrollerを使用)

プロジェクトを作ったら、UnrealEditorのメニューから「New C++ Class…」
を選択します。

無題

すると親クラスの選択が来ます。 続きを読む

コンテンツブラウザとアセット管理

UE4のアセットが実のファイルとして存在しているとはいえ、一つ守らなければならないルールがあります。それは、アセットの移動、コピー、複製、名前変更、削除といった操作はエクスプローラ上で行ってはいけないという鉄の錠です。必ず、コンテンツブラウザ上で操作するようにしましょう

アセットの移動とコピー

アセットを移動もしくはコピーする場合は、コンテンツブラウザ上で対象のアセットを移動先のフォルダにドラッグ&ドロップすることで行います。ドロップを終えるとサブメニューが開き移動か、コピーかのどちらを実行するかを尋ねてくるんで、選択して、移動やコピーを実行する。

アセットの名前の変更

アセットを右クリックし、コンテキストメニューから「名前変更」を選択

名前の変更も自動的に参照元に連絡がいき、新しい名前への参照に変更してくれます。それ以外のケースでも、リダイレクタが適切に吸収してくれる。

アセットの削除

使わなくなったアセットを削除するには、コンテンツブラウザ上でアセットのサムネイルを右クリックし、コンテキストメニューから「削除」を選択するか、アセットを選択した状態で「Delete」キーを押します。

地道でいいから勉強しよう pt4

こんにちは、
前回の続きから書いていきたいと思います。

<制作するマップを計画する>
1.移動ツールを使って設置したスタートを
  「X=-400,Y=400,Z=102」に設定します。

2.「モード」から「BSP」>「ボックス」をドラック&ドロップします。
   ボックスには分かりやすい名前を付けましょう。

3.名前を付けたボックスのサイズを「X=800,Y=200,Z=200」に設定し、
  「X=-100,Y=200,Z=110」の位置へ配置する。

4.ボックスを複製移動(Altキーを押しながら移動する)するか、
  もしくは新しい「ボックス」ブラシを「モード」パネルからビューポートに
  追加し、名前を付けましょう。

5.追加したボックスのサイズを「X=600,Y=400,Z=200」に追加し、
  「X=0,Y=-100,Z=110」の位置へ配置します。

6.3つ目の「ボックス」ブラシを追加して、名前を「SlopeBrush」に
  変更します。サイズはX,Y,Zすべて「200」とし、
  「X=200,Y=-400,Z=110」の位置に設定します。

<空洞を作る>
ドラック&ドロップするブラシの中には、形状を空間に追加する
「加算ブラシ」や形状を任意の形状に削り取る「減算ブラシ」があります。

1.「モード」パネルより、「BSP」>「ボックス」をビューポートに
   ドラッグ&ドロップし、分かるように名前を付けましょう。

2.「詳細」から「BrushSetting」>「BrushType」を「Subtractive」に
   変更します。これで、ブラシは加算から減算に変更できます。

とりあえず今回はここまで。

【輪講】ブループリントクラスと変数/関数について

今回は輪講について私が研究した事を書いていきます。

C++を理解していてもこれがブループリントになるとわけわからん!って人多くないですか?
私もそうでした。

しかし理解してからはなるほど!って思う事が多いです。

UnrealEngine4でブループリントを使うにはどれがクラスでどれが関数なのか、
まず把握した方がいいと思います。

今回はみんなが使い慣れているcocos2d-xのプログラムと見比べながら解説していきます!

まずはブループリントクラスの作成!

Content内で右クリック→Blueprint Class→親クラスを選択

無題1無題2

ここで選択したクラスによって使用出来る関数(以下ノード)が変わります。
いわゆる継承です。

作成したブループリントを見てみましょう。
右上にParent Class 〇〇とあるはずです!

無題3

これをcocos2d-xで見ると、大体みんながよく使うのは『Layer』『Node』辺りでしょうか。

class ThirdPersonCharacter : public Character
{
  ~略~
}

こんな感じになります。

ある程度はUnrealEngine側で用意しているものを使っていけば出来ますが、
例えばデザインパターンを取り入れたい時には、ブループリントクラス作成時に自分の作成したクラスを選択するなどしましょう。

次に関数の作成です。

その前にまずは変数の説明をします。

無題4

Variablesの『+』マークをクリックして変数を作成します。

無題5

・Variable Name→変数名
・Variable Type→変数の型(左側のドロップダウンで型指定、右側にある9個に区切られた四角マークをクリックすると配列になる)
・Editable→インスタンス上で変数がパブリックで編集可能かどうか
・Tooltip→コメントみたいなもの
・Expose on Spawn→SpawnActorノードにピンが追加される
・Private→プライベートにする
・Expose to Matinee→マチネに公開する
・Category→ラベル毎に変数を設定する事が出来る
・Replication→ネットワーク上で複製するか否かを指定する

Default Valueでデフォルト値を設定出来ます。

例えばPrivateにチェックを入れてint型のScoreという変数を作成するとします。

cocos2d-xというかC++ではこうなります。

~略~
private:
    int Score;
~略~

次に関数の使い方を説明します。

無題6

Functionsの『+』マークをクリックします。

無題7

Description→関数の説明
Category→カテゴリ
Keywords→キーワード
Compact Node Title→演算子のオーバーロードのような使い方が出来る例『+=』といれる
Access Specifier→Public、Protected、Privateを設定する
Pure→チェックを付けると純粋関数になる
Const→チェックを付けるとconst関数になる

Inputsで引数、Outputsで戻り値の設定が出来ます。
Pass-by-Referenceにチェックを入れると参照渡しになります。

例としてスコアのGet関数を作ってみましょう!

無題8

cocos2d-xで書くと、

int GetScore2() const { return Score };

となります。

基本的な説明となりますが以上となります。

各親クラスを継承したクラスで何のノードが使えるかの説明は、
ノードの量が膨大すぎて説明出来ませんので各自で調べながらゲームを作ってみましょう!

UE4でのAIの活用について

UE4ではブループリントのほかにBehaviorTree(ビヘイビアツリー)というものがあります。
このビヘイビアーツリーはAIの開発に特化していて、プレイヤーを追う追跡のAIやプレイヤーを見つけるまではステージを回る巡回のAIなどがあります。
今回は単純にプレイヤーを追う追跡のAIの作りかたおよび解説をしていきたいと思います。

まずはUE4でThirdPersonで新規プロジェクトの作成を行います。

追跡のAIで作るもの
・AI_Character ・・・ AIを実装するキャラクター
・AI_BehaviorTree ・・・ AIを実装するビヘイビアツリー
・AI_Track・・・追跡を実装するタスク
・AI_Controller・・・AI用のコントローラー

1.ブループリントクラスからAI用のキャラクターを作成する
キャラクターのMesh、Animationを自分好みに設定する。

2.ビヘイビアツリーを作成する
素材03
コンテンツブラウザー上で右クリック、「Artificial Intelligence」から「Behavior Tree」を選択する。
わかりやすいように「AI_BehaviorTree」などに変更しておくとよい。

3.Taskを作成する
素材04
先ほど作った「AI_BehaviorTree」を開き、ウィンドウの左上の「New Task」を選択する。
Taskを「AI_Track」という名前に変更しておく。

4.追跡するTaskを作成する
素材05
画像のようにノード同士をつなげる。
ここではAIのコントローラーを取得し、「Get PlayerPawn」で取得したPlayerPawnの位置まで移動させるということをしています。

5.ビヘイビアツリーを編集する
素材06
「Selecter」と先ほど作った「AI_Track」を作り画像のようにつなぐ。

6.AIControllerを作成する
素材07
コンテンツブラウザー上で右クリック、「Blueprint Class」を選択する。
ウィンドウ上の検索バーで「AIController」で検索し作成する。
「AI_Controller」という名前に変更しておく。
素材11
キャラクターのMesh、Animationを設定した後、画像のPawn部分のAI Controller Classを先ほど作った「AI_Controller」に設定します。

7.AIControllerの編集
素材08
画像のように「Event Tick」と「Run Behavior Tree」を作成しつなげます。
「Run Behavior Tree」の「BTAsset」で作成した「AI_Behaviortree」を選択します。

8.フィールド上の編集
素材09
画像の左側のクラスの検索バーで「Nav Mesh Bounds Volume」を検索しフィールドに出す。
画面左上にある「Show」をクリックし、「Navigation」のチェックに入れると、先ほど作ったMeshに入っているボックスの上に緑のエリアが表示されます。
これはAIが歩くことのできる範囲で、この中に追跡対象のキャラクターがいれば常についていくことができる。

素材10
このようにフィールド全体を囲う。

実行すると操作キャラクターについていくようになる。

独自のアセットをインポートする part3

コリジョンをつける

スタティックメッシュにコリジョンをつけるには、mayaなど3Dツールでつけるコリジョン形状を一緒にインポートする方法と、アンリアルで自動生成を使って設定する方法があります。

スタティックメッシュエディタ

初めに、コリジョンを確認する方法を解説します。すでに何度も使用しましたが、コンテンツブラザ上でスタティックメッシュアセットをダブルクリックすると、スタティックメッシュエディタが開き、一つのアセットを詳細に閲覧編集することができます。

メニューバー:一般的なウィンドウアプリケーションのメニューバーです、コリジョンを設定したり、削除しする機能はここからアクセスすることができます。

ツールバー:ここは、ビューオプションの切り替えボタンがあります。有効になったボタンはオレンジ色、クリックすると有効/無効の切り替えができます。

ビューポート:プレビューのためのビューポートです、レベルエディタの3Dビューと同じ操作で使います。

詳細パネル:レベルエディタの「詳細」パネルと同く、スタティックメッシュの詳細設定をここで設定できる。

シンプルなコリジョンを追加

まずスタティックメッシュエディタを開き、ツールバーで「コリジョン」ボタンをクリックし、コリジョンの表示をまずオンにする。

次はメニューバーで「コリジョン」ー>「ボックス単純化コリジョンを追加」を選んで。

ビューポートのメッシュのまわりはワイヤーフレームが追加されるはずです。このワイヤーフレームがコリジョンの形状を表しています。

独自のアセットをインポートする part2

テクスチャからマテリアルを作成する

テクスチャは一部の例外を除き、そのままではゲームに使うことはできません。メッシュに貼り付けられるのは、材質を意味するアセットのマテリアルであり、テクスチャはマテリアルから使用される模様のデータのような位置づけになっています。

マテリアルの詳しい制作方法は今後やってきますので、今回は単純にインポートしたテクスチャからマテリアルを作成して、メッシュに貼りつける操作を紹介します。まずはインポートしたテクスチャを右クリックし、サブメニューから「マテリアルの作成」を選択します。

名前を付けます、作成されたアセットをとりあえず保存しましょう、右クリックし。サブメニューから「保存」を選択します。

スタティックメッシュにマテリアルを割り当てる

仕上げとして、ここまで作成したマテリアルをスタティックメッシュに割り当てていきます。まずはそのメッシュをダブルクリックし、スタティックメッシュエディタを開きます。

そこで、LOD0のどころで、さっき作ったマテリアルを選択します。これでメッシュにマテリアルの模様がつくはずです。

初めてのインポートはこれで完了です。ここまでの手順は画像ファイルからテクスチャをインポートし、次にFBXファイルをスタティックメッシュにインポートし、そして、テクスチャからマテリアルを作成、メッシュに適用する。