VPSを契約してサーバを構築する環境を整えよう

・契約するVPSサーバを決めよう

サーバ仮想化の種類を確認

KVM
今現在のVPSで主流のLinuxカーネル仮想化基盤
とりあえずKVMのVPSを選んでおけばいいと思う
OpenVZ
一時期格安VPSで人気だったサーバ仮想化ソフト
ディストリビューションの最新版への対応が遅い。
Hyper-V
Microsoftが提供するWindowsサーバ向け仮想化システム

代表的なKVMのVPSサーバ

さくらのVPS
さくらVPS
サポートが手厚い

お名前.com VPS
お名前VPS
有名なVPS中では比較的安い料金
初期費用無料キャンペーンを常にやっている印象

代表的なOpenVZのVPSサーバ

ServerMans@VPS
ServerMans@VPS
初期費用が無料で、料金が安い
 
 

・利用するOSを決めよう

日本語での検索人気度の推移(2016/07/29日現在)

日本語圏トレンド

日本語ではcentOSのほうが検索されています。

英語での検索人気度の推移(2016/07/29日現在)

英語圏トレンド

英語圏ではUbuntuの圧勝です。

このデータを見れば、日本ではcentOS,英語圏ではUbuntuをサーバに利用する人が多い事がわかります。

利用者の多さ=公開されている情報の多さ
と考えると、centOSは日本語の情報、Ubuntuは英語の情報が多い事になります。

なので、日本語しか読めない人は、まずはCentOSから。
英語も読めるという方は、Ubuntuで初めてみる事をオススメします!
 
 

・SSHのセキュリティ設定(CentOS)

Rootアカウントでのリモートログインを禁止する

後からrootログインを禁止させるので、まず最初にsudoコマンドを利用できるユーザを作成しましょう

# useradd [ユーザ名]
# passwd [ユーザ名]

でユーザを作成します。

# usermod -G wheel [ユーザ名]

でsudoグループに作成ユーザを追加します。

~/usr/local/sbin/visudoのファイルの以下の部分を編集し、wheelユーザのみをsudo可能にします

#%wheel ALL=(ALL)   ALL
 ↓ 変更
%wheel ALL=(ALL)   ALL

~/etc/ssh/sshd_configのファイルの以下の部分を編集し、Rootでのリモートログインを禁止します

PermitRootLogin yes
 ↓ 変更
PermitRootLogin no

以下のコマンドを実行し、sshdを再起動します

# service sshd restart ← CentOS 5,6
# systemctl restart sshd ← CentOS 7

これでRootアカウントでのリモートログインが出来なくなりました。
今後は最初に作成したアカウントでログインして下さい。

リモート接続のポートをデフォルトの22番から変更する

sshのポートをデフォルトの22番のままにしておくとアタックされるので、
~/etc/ssh/sshd_configのファイルの以下の部分を編集し、接続ポートを変更します

Port 22
 ↓ 変更
Port ○○ ← ○○は1024以上の数字を入れる

Well-Knownポートを避ける為に1024番以降のポートを利用します。

sshdを再起動します

# service sshd restart ← CentOS 5,6
# systemctl restart sshd ← CentOS 7

これでssh接続ポートが変更されたので、アタックの数が減ると思います。

設定したポートでリモートアクセス出来るように、ファイアウォールでssh接続用ポートを解放します

[CentOS 7]
以下のコマンドでポートを解放します

# firewall-cmd –add-port=○○/tcp –zone=public –permanent ← ○○は先程変更した接続ポートの番号です

今まで利用していた22番ポートを塞ぐには以下のコマンドを実行します

# firewall-cmd –remove-service=ssh –zone=public –permanent

設定の再読み込みをして変更を反映させます

# firewall-cmd –reload

以下のコマンドで設定を確認し、servicesの行からsshが削除されていて、portsの行に変更した接続ポートの番号が表示されていれば、設定が成功しています

# firewall-cmd –list-all

[CentOS 5,6]
以下のコマンドでポートを解放します

# iptables -A INPUT -p tcp -m tcp –dport ○○ -j ACCEPT ← ○○は先程変更した接続ポートの番号

今まで利用していた22番ポートを塞ぐには以下のコマンドを実行します

# iptables -A INPUT -p tcp -m tcp –dport 22 -j DROP

変更を設定ファイルに保存します

# service iptables save

以下のコマンドで設定ファイルに変更が保存されているか確認します

# cat /etc/sysconfig/iptables

先程の2つのコマンドからiptablesを抜いた文字列が見つかれば、無事に変更が保存されています。

ファイアウォールを再起動します

# service iptables restart

以上でファイアウォールでのsshポート変更の設定は終了です!

 
その他にもログイン方式をパスワードから公開鍵認証に変更することなどで、より安全性を高めることができます。

手軽な料金のVPSを利用して、色々触って遊んでみましょう!

 
参考にさせていただいたサイト
UbuntuとCentOSどっちがいいの?正しいサーバOSの選び方 – lamichの日記 – 海外でイラスト制作を行う社長のブログ
VPS 借りたら、せめてこれくらいはやっとけというセキュリティ設定 | dogmap.jp

[輪講]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などがありませんので、アップデートしないことをお勧めします。

[UE4]プロトタイピングについてお勉強 Part7

今日からはUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトの第8章の「スタティックメッシュを配置する」の続き 「フォルダ機能を使う」から勉強していきます!

  • フォルダ機能を使う
     マップ上の何もないところをクリックして選択を解除したあと、[ワールドアウトライナ]パネルの右上にあるフォルダのアイコンをクリックし、サブフォルダを追加
     ※サブフォルダに共通するアクタを入れておくことで、可視/不可視や選択などを一括で行うことができ、作業の効率が上がります。

  • 壁を配置する
     ビューポートで配置するのが主な内容だったので省略します。

  • ブロッキングボリュームを直接配置する
     ビューポートで配置するのが主な内容だったので省略します。

  • 坂道のメッシング
     [ビューポート]か[ワールドアウトライナ]でスロープのアクタを選択
      ↓
     [詳細]パネルで[Actor]→[Convert Actor]をクリックして、サブメニューから[Blooking Volume]を選択
      ↓
     床のスタティックメッシュをスロープの根元あたりにドラッグ&ドロップし、スロープの向きに合わせる
      ↓
     ドラッグ&ドロップした床をスロープの傾斜にスロープの傾斜に合わせて傾ける
      ↓
     カメラタイプを[フロント]に変更、位置スナップをオフにする
      ↓
     Z位置をブロッキングボリュームのラインに合わせる
      ↓
     1枚分の床材の位置が決まったら、この傾きのままコピーしてスロープに敷き詰めていく
      

今日はここまでです。
次回は

8章「Zファイトを調整する」

から勉強していきます!!

  

[UE4]プロトタイピングについてお勉強 Part6

今日からはUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトの第8章 「スタティックメッシュを配置する」から勉強していきます!

  • ブラシをブロッキングボリュームに変換する
     [レベル]パネルで[PNStage01_BG]をダブルクリックし、「現在のレベル」に設定
      ↓
     ビューポートまたは[ワールドアウトライナ]パネルで[PlatformBrush]を選択し、[詳細]パネルの[Actor]カテゴリで[Convert Actor]をクリックし、サブメニューから[BlookingVolume]を指定

上記の操作で[PlatformBrush]が、「見えないコリジョン」である「ブロッキングボリューム」に変換されます。
床は姿を消したが、緑で示されてるナビゲーションメッシュの範囲は変化していないので、目には見えないものの「ゲームの床」として機能していることがわかります。

  • ブロッキングボリュームの内側にメッシュを敷き詰める
     [レベル]パネルで[PNStage01_SM]をダブルクリックして、「現在のレベル」に設定([PNStage01_GB]の右横にある南京錠のアイコンをクリックして、鍵をかけると、[PNStage01_GB]をうっかり操作してしまう心配なく、[PNStage01_SM]の編集ができます)
      ↓
     キーボードショートカット[P]を押して一旦ナビメッシュの表示を消します
      ↓
     コンテンツブラウザに移動し、インポートした床アセットをビューポートにドラッグ&ドロップし、三面図をうまく使って、ブロッキングボリュームの左下端に合わせる
      ↓
     床材を複製移動させます。[移動ツール]アイコンをクリックするか、キーボードショートカット[W]を押して、移動ツールに切り替え、[Alt]キーを押しながらドラッグします
      ↓
     [Ctrl]キーを押しながら、選択されてないアクタを選択し、[Alt]キーを押しながらドラッグすると、複数のアクタを複製移動させることができます
      ↓
     [Shift]キーを押しながらドラッグすると、移動させているアクタをカメラが追従します。([Alt]と同時押しでも可)
      ↓
     残りは上面図で作業します。ドラッグで矩形選択ができるマーキー機能を使って、端の4つの床材を選択します
      ↓
     [Alt]キーを押しながら移動させるコピー移動を繰り返して、端まで配置します

  • メッシュを回転させる
     [回転ツール]アイコンをクリックするか、ショートカット[E]キーを押して、回転ツールに切り替える
      ↓
     アクタを選択し、回転ウィジェットをドラッグし、ヨー回転をかける
      ↓
     たくさんのアクタをまとめて回転させるには、マーキーを使用します
     (余計なアクタを選択しないように、[ワールドアウトライナ]パネルで、[RecastNavMesh-Default]の左横にある目玉アイコンをクリックして、エディタ上非表示にします)
      ↓
     上面図でドラッグして、スタート地点付近の床材を一括選択します([PNStage01_GB]はロック中のため、マーキーの範囲に[PNStage01_GB]のアクタが含まれていても選択されません)
      ↓
     複数選択した状態で回転ウィジェットをドラッグすると、選択したアクタすべてをひとつのピボットで回転させていまうので、[詳細]パネルの[トランスフォーム]→[回転]で角度を入力して回転させます
      ↓
     [ワールドアウトライナ]で、[RecastNavMesh-Default]の目玉アイコンをクリックして、再び可視状態にします
      ↓
     ショートカット[P]キーで、ナビメッシュの状況を確認し、特に破壊された感触がなければここまでの作業は完了です
     (再び[P]キーを押して、ナビメッシュを非表示しておきましょう)

今日はここで失礼させていただきます!

次回は

8章の続き「フォルダ機能を使う」

から勉強します!!

[UE4]プロトタイピングについてお勉強 Part5

今日からはUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトの第8章 「初めてのレベルストリーム」から勉強していきます!

※レベルストリーミング・・・UE4にあるゲームプレイ中に、まだ読み込んでいないエリアを裏読みする機能。(広いエリアをサブレベルに分割して、少しづつ読み込みながらゲームプレイを展開していく事が可能)

  • サブレベルを追加する
     メニューバーで[ウィンドウ]→[レベル]と操作し、[レベル]ウィンドウを表示
      ↓
     新しいサブレベルを作り追加するために、[レベル]パネルで[レベル]をクリックし、サブメニューから[新規作成]を選択
      ↓
    [新規レベル]のダイアログが開いたら、[コンテンツ]→[Maps]→[Stage01]のパスに[PNStage01_GB_SM]という名前のサブレベルを追加([レベル]ウィンドウの「レベル」に新規作成した2つのレベルが[バーシスタントレベル]の子階層として追加されているはずです)

  • アクタをレベル間で移動させる
     ※移動の結果をわかりやすくするために、サブレベルに所属しているアクタ数を可視化する設定を行います
      [レベル]パネルの右下にある「表示オプション」をクリックし、サブメニューの[アクタ数を表示]にチェックをいれます。

 [ワールドアウトライナ]パネルに切り替えて、[AtmosphericFog]から[SlopeBrush]までを一括選択
  ↓
 [レベル]パネルに切り替え[PNStage01_GB]を右クリックし、[選択アクタをこのレベルへ移動]を選択
  ↓
 [PNStage01_GB]のアクタ数が増えていれば、アクタの移動に成功していることになります

  • ストリームメソッド
     [プレイ]ボタンを押してゲームを実行すると、エディット中に存在したメッシュがすべて消え、真っ暗な画面が表示され、[レベル]パネルを見てみると、エディット中は左脇に開眼アイコンがついてたはずですが、まぶたを閉じたアイコンに変わっています。これは、目を閉じたアイコンのサブレベルが”読み込まれていない”ことを示します。

 この原因を解決するため、サブレベルが常時ロードされた状態になるように、設定を変更します。

 [レベル]パネルで、サブレベルの[PNStage01_GB]を右クリックし、サブメニューから[ストリーミング方法を変更]→[常にロード済み]を選択
  ↓
 同じくサブレベル[PNStage01_SM]のストリーミング方法を[常にロード済み]に切り替えます

[プレイ]ボタンを押してテストプレイすると、きちんと背景が表示されているはずです。

 
 レベルストリーミング機能は、もともとは広大な広大なレベルを分割読みするための機能なので、サブレベルごとに、裏読み(ストリーミング)を開始するタイミングを設定することが可能です(設定は2種類あり、「常にロード済み」と スクリプトでタイミングを指定する ものがあります)

次回は

8章「スタティックメッシュを配置する」

から勉強します!

[UE4]プロトタイピングについてお勉強 Part4

今日からはUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトの第8章 「メッシング」を複数回に分けて勉強していきます!

メッシングの要点と準備

 メッシングとは・・・グレーボックスのBSPブラシやテストアセットを、本番のメッシュで置き換える工程

  • メッシングによるゲームの破壊
     -本番のアセットはグレーボックスのシンプルな形状のものとは比べ物にならないほど複雑な形をしているので、置き換えを行うとかなりの確率でゲームを破壊してしまう

 -グレーボックスと形状の違う本番のアセットに置き換えることは、ゲームマップが編集されたことと同じことで、ゲームプレイへの影響は避けられない

 -AIで遊ぶゲームは、ちょっと道が狭くなる・広くなる、段差ができると言った地形の変化で振る舞いが変わるので、グレーボックスで確率した遊びと、敵の動きが変わってしまい、特にゲームが破壊されやすい

 -AIによるゲーム破壊を防ぐ為、メッシングの前後でナビメッシュを一切変化させないことが理想的

 -ゲームの破壊を防ぐ方法として、グレーボックスをメッシングの下敷きとして使用して後、”削除”せず”不可視化”し空間に残しておくというアプローチがある。この場合、キャラとの衝突は”不可視の壁”側(UE4では”ブロッキングボリューム”など)で取るようにする

 -レイヒットやラグドールを含む物理のコリジョンは”不可視の壁”と”背景メッシュ”側でうまく分担する必要がある
 ※レイヒット・・・キャストしたレイの当たり判定 
 ※ラグドール・・・当たったら吹っ飛ぶやつ(雑)
 

  • メッシングとレギュレーション
     -大抵のプロジェクトではお金もなく、時間もないので、アセットを複数のマップで共通して使用したいと考えており、時間もないためグレーボクシングの最中に並行してアセットの制作に着手しているので、強力なレギュレーションが必要

  • ナビメッシュ境界線ボリュームの配置
     -[モード]パネルが[配置]モードになっていることを確認し、[モード]パネル[ボリューム]→[Nav Mesh Bounds Volume]をビューポート上にドラッグ&ドロップする
      ↓
     -[Nav Mesh Bounds Volume]の位置や大きさを変更する

※ビューポートの[表示]ボタンをクリックして、サブメニューの[Navigation]を選択して、ナビメッシュの可視/不可視を切り替えられる(キーボードショートカットの[P]キーでも可能)

  • 天球とフォグを配置する
     -[ワールドアウトライナ]パネルで、[Directional Light]アクタを選択
      ↓
     -[詳細]パネル、[Light]→[Atmoshere Sun Light]にチェックを入れる
      ↓
     -[モード]パネルから、[ビジュルアルエフェクト]→[大気フォグ]をビューポートにドラッグ&ドロップ
      ↓
     -[エンジンコンテンツ]内のボーナスアセットの天球アクタを配置
    ※[エンジンコンテンツ]は初期状態では、アセットツリーには表示されていません。コンテンツブラウザ右下の表示オプションで[エンジンのコンテンツを表示]にチェックを入れてください。
      ↓
     -[エンジン コンテンツ]フォルダを選択し、検索欄に「Sky」などと打ち絞り込み、[BP_Sky_Sphere]をビューポートにドラッグ&ドロップ
      ↓
     -[BP_Sky_Sphere]を選択し、詳細パネル[Default]→[Directional Light Actor]プロパティにシーン中の[Directional Light]を指定
    ※この操作により、現在の[Directional Light]のピッチ角を太陽の高さに見立て、天球の時刻が設定され、青空が広がるようになる

次回は

8章「初めてのレベルストリーム」

から勉強します!

[UE4]プロトタイピングについてお勉強 Part3

今日はUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトの第7章 「さまざまなアセットの指定方法」と「コンテンツブラウザとアセット管理」を勉強します!

さまざまなアセットの指定方法

  • 矢印アイコンによる指定
    コンテンツブラウザ内のスタティックメッシュをダブルクリックし、スタティックメッシュエディタを開く
     ↓
    レベルエディタのウィンドウに戻り、コンテンツブラウザでマテリアルを選択
     ↓
    スタティックメッシュエディタに戻り、「エレメント」の矢印ボタンをクリックしてマテリアルを割り当て

  • ドラッグ&ドロップによる指定
    スタティックメッシュをダブルクリックして、スタティックメッシュエディタを開く
     ↓
    「デュアルモニタ環境」・・・スタティックメッシュエディタのウィンドウをレベルエディタとは違うモニタに移動させる
    「シングルモニタ環境」・・・ツールバー[ウィンドウ]→[コンテンツブラウザ]→[コンテンツブラウザ2]で新しいコンテンツブラウザを開き、スタティックメッシュエディタの左下にドッキングさせる
     ↓
    マテリアルのスタティックメッシュをスタティックメッシュエディタの[LOD0]→[エレメント]へドラッグ&ドロップして、マテリアルを適用

  • 参照文字列による指定
    ※アセット参照文字列-コンテンツブラウザで取得できるファイルパスのような文字列

    スタティックメッシュをダブルクリックしてスタティックメッシュエディタを開く
     ↓
    アセット参照文字列をコピー
     ↓
    [LOD0]→[エレメント]の設定欄をクリックして「貼り付け」を選択

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

  • アセットの移動とコピー
    コンテンツブラウザ上で対象のアセットを移動先のフォルダのドラッグ&ドロップする
     ↓
    サブメニューが開き、移動かコピーか尋ねられるので選択する([Esc]キーで操作をキャンセルする事もできる)

  • アセットの名前変更
    -コンテンツブラウザ上で選択中のアセットの名前をもう一度クリック
    -コンテンツブラウザ上でアセットを右クリックし、コンテキストメニューから[名前変更]を選択
    -コンテンツブラウザ上でアセットを選択し、[F2]キーを押す

  • アセットの削除
     -コンテンツブラウザ上でアセットを右クリックし、コンテキストメニューから[削除]を選択
     -コンテンツブラウザ上でアセットを選択し、[Delete]キーを押す

今日はここまで勉強しました!
次回は

8章 メッシング

から勉強します!
 

[UE4]プロトタイピングについてお勉強 Part2

今日はUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトの「第7章 独自のアセットをインポートする」の続きから勉強します!

基本的なインポートオプション

  • FBXインポートオプションの解説
     [Mesh]-[Import as Skeletal]
      チェックを入れるとボーンが入ってないFBXをスケルタルメッシュとしてインポートする
     [Mesh]-[Auto Generate Collision]
      コリジョンを自動生成する
     [Mesh]-[Import Normal Method]
      法線をFBXからインポートするか、再計算するか
     [Transform]-[Import Translation]
      モデルの原点をずらすオフセット量を設定
     [Transform]-[Import Rotation]
      モデルの回転させるオフセット量を設定
     [Transform]-[Import Uniform Scale]
      モデルのインポート時のサイズを倍率で指定
     [Material]-[Import Materials]
      FBXインポート時にマテリアル情報が見つかれば、マテリアルを自動作成・メッシュへ貼り付けする
     [Material]-[Import Textures]
      FBXに含まれているテクスチャパスに画像ファイルがあればインポートする

  • メッシュのスケーリング調整
     「1ユニットを1センチとする」基準があるので、スケーリングを調整する

  • メッシュのピボットの調整と再インポート
     詳細パネルで設定を変更し再インポートすることでモデルを削除せずにインポート設定を変更できる

  • 複数ファイルの一括インポート
     ファイル選択時に複数選択する
     コンテンツブラウザに複数ファイルorフォルダをドラッグ&ドロップ

  • アセットの保存
     保存したいアセットのサムネイル上で右クリックし保存を選択
     メニューバー[ファイル]-[すべて保存] (未保存のアセット・レベルが一括保存される)
     コンテンツブラウザのツールバーで[すべて保存]をクリック、未保存のアセットがリストアップされたダイアログが表示されるので、保存しないものはチェックを外し、[選択内容を保存]をクリック

コリジョンをつける

  • スタティックメッシュエディタ
     ひとつアセットを詳細に閲覧・編集することができる
     「メニューバー」
      コリジョンを設定したり削除する機能はここからアクセスする
     「ツールバー」
      ほとんどがビューオプションの切り替えボタン
     「ビューポート」
      プレビューのためのビューポート
      レベルエディタの3Dビューと同じ操作
     「詳細パネル」
      スタティックメッシュに関する詳細の設定がリストされている
      マテリアルの割り当てや、インポート設定の修正を行うことができる

  • DCCツールでコリジョンをつける
     Mayaなどの外部DCCツールでコリジョン用メッシュを作るときに命名規則に基づいて名前をつけておくとインポート時に認識して自動的にコリジョンにしてくれる
     [UCX_]凸型のコリジョン形状
     [UBX_]ボックス型のコリジョン形状
     [USP_]スフィア型のコリジョン形状
     ※DCCツールでコリジョンをつける場合はほとんどの場合が[UCX_]を使う場合

  • シンプルなコリジョンを追加する
     ソースアセット側にコリジョンがついていない場合スタティックメッシュエディタ上でコリジョンをつけることができる
     スタティックメッシュエディタを開く→ツールバーの[コリジョン]を有効化→メニューバーの[コリジョン]-コリジョンの種類を選択
     ビューポート上で[移動][回転][スケーリング]のツールを使って調整可能

  • コリジョン生成機能
     「プリミティブなコリジョン」
      [球体][カプセル][ボックス]の3つの形状がある
      指定した形状で完全に覆うようにしてコリジョン形状を作る
      スタティックメッシュのフォルムに最も近い形状を選択しないと大きな余白が生まれるが、シンプルな形状のため負荷は軽量
     「K-DOPコリジョン」
      指定した面数のコリジョンメッシュを生成
      面数が多いほどフォルムを正確に捉えるが、負荷も高くなる
      指定した軸の向きから見たフォルムを引き延ばしてコリジョンを生成するため、少ない面でも特徴を捉えられる
     「自動凸包コリジョン」
      [オートコンベックスコリジョン]は、凸包コリジョンを作る
      細かさは[マックスハル][マックスハル(頂点)]で調整できるが、細かくすると負荷も高くなる

今回はここまで勉強しました!
次回は7章のアセットの指定方法・アセット管理、8章のメッシングについて勉強していきます!!
 
 

 

[UE4]プロトタイピングについてお勉強

今回もUnreal Engine 4で極めるゲーム開発:サンプルデータと動画で学ぶUE4ゲーム制作プロジェクトを使用して勉強します!

今回からはプロトタイピングについて勉強していこうと思います。
今日は

第6章 グレーボクシング

第7章 独自のアセットをインポートする(途中まで)

を勉強しました!

第6章 グレーボクシング

グレーボクシングとは?
プロトタイプ用のアセットを使って、ゲームのすべての要素を完成させる試行錯誤し、面白さを確定させる工程

BSP(Binary Space Partitioning)
3D創世期に、3Dマップを扱う為に使われた手法で、現在も直接マップの試作をできるので、多くのゲームエンジンでサポートされている。

フォルダ・レベルの作成
BSPでレベルをデザインする

  • ボックスブラシで床を配置
  • ライトを配置して視界を確保する
    ※ここまではUnityとほぼ同じ
  • プレイヤースタート地点を設置する
  • 加算ブラシと減算ブラシ
     加算はブラシの範囲にオブジェクトを作成、減算はブラシの範囲削除
  • ジオメトリの編集
     面や辺、頂点を編集できる(面の押し出しはローカル座標でのみ機能する)
  • シミュレート
     プレイヤーキャラなしでゲームを開始するモード

第7章 独自のアセットをインポートする

UE4のコンテンツパイプライン
 3DモデルはFBX2014以降、テクスチャはTGA,PNG,JPGなどのメジャーな形式のものが使用できる
初めてのインポートとマテリアル作成

  • フォルダを準備する
  • テクスチャをインポートする
  • FBXファイルからスタティックメッシュインポートする
     FBXインポートオプションで
     Meshカテゴリ
      Import as Skeletal
      Generate Collision
     Materialカテゴリ
      Import Materials
      Import Textures
     のチェックを外す
  • テクスチャからマテリアルを作成する
     インポートしたテクスチャを右クリックし、マテリアルを作成を選択
     作成されたマテリアルアセットを右クリックして、保存を選択し、アセットを保存
  • スタティックメッシュにマテリアルを割り当てる
     スタティックメッシュをダブルクリックして、スタティックメッシュエディタを開く
     LOD0のエレメントプロパティにマテリアルを割り当てる

次回は

第7章 独自のアセットをインポートする

の続きから勉強していきます!