LoginSignup
3
3

More than 3 years have passed since last update.

VPSでPerforceサーバーを立てて、UE4と連携

Last updated at Posted at 2019-12-01

使用環境
ConoHa VPSサービス
月額:900円プラン
メモリ:1GB
CPU:2Core
SSD:50GB
OS:CentOS Linux release 8.0(Core)

経緯
大学の授業でチームを組み(チームといっても二人だが)、ゲーム開発をすることになった。相方はデザイナで、自分がプログラマ、レベルデザイナ的な役割を考えている。UnrealEngine4(UE4)を利用して開発を進めることになったが、プロジェクトの共有ができないことに気づき、共同開発のためと、バージョン管理のためにもPerforceサーバーを準備しようと考えた。

Perforceを選んだ理由としては、ライセンス料が5名以下のユーザーの場合無料というのと、なんだか評判が良さげだったから。Twitterでゲーム開発者の方から、PerforceとPlasticを進められたのもある。(正直Subversionと悩んだ。Gitは好きだが、UE4との連携は容量制限もあり厳しいらしい。 <---追記 容量制限があるのはGithubでした。自分でサーバー立てるなら大丈夫。しかし、現在はUE4とGitの連携機能はベータ版らしい。)

ConoHaを選んだ理由としては、月額制であることと、一か月に満たない利用の場合は、利用した時間分のみで、安く済むことが大きい。
また、さくらインターネットは、利用したことがあったので、大変悩んだが、利用したことがないConoHaも利用してみたいと思った。

VPSを初めての利用者向けの漫画版のチュートリアルが両サービスともにあるが、さくらインターネットはステップアップがしやすいような内容となっており、少し難しくもあるが、充実していた。ConoHaは完全に初心者向けで、メジャーなコマンドの説明も記載されていた。また、その他の学習用記事については、さくらインターネットは数が膨大で、かつ、イベント情報も載っている。ただし、特定の目的がなければ、自分に合ったレベルの記事を見つけるのは難しそうであった。ConoHaは、さくらインターネットほどは多くないが、整然としていて、初心者にとっては順番に沿って記事を読んでいけば、簡単にステップアップできるようになっていた。

記事の方針
作業をすべて書く

CentOSのセットアップ

login:root
Password:(サーバー追加時に設定したパスワード)

// バージョン確認
# cat /etc/redhat-release

//アップデート
# yum update

//一般ユーザー作成とパスワード設定
# adduser (username)
# passwd (username)

// Ctrl+Dでログアウトし、作成したユーザーでログインする
//その後、rootに切り替え
$ su -
Password:(rootのパスワード)

// エディタをインストール(vimが使えるならそれでいい)
# yum install emacs -y

// sudoができるようにする。
# env EDITOR=emacs visudo
/*
(username)  ALL=(ALL)を追加する。
作業が終わったらCtrl+x-Ctrl+sで保存し、Ctrl+x-Ctrl+cでemacsから抜ける。
*/

// rootでログインできないようにする
# emacs /etc/ssh/sshd_config
/*
PermitRootLogin yesをPermitRootLoginに変更する。
Port 22 は、ssh接続で利用するポート番号の設定。好みによってウェルノウンポート以外に変更してもよい。仕方は22の部分を変更。
作業が終わったらCtrl+x-Ctrl+sで保存し、Ctrl+x-Ctrl+cでemacsから抜ける。
*/

//もしsshdのポート番号を変更したなら、firewallのsshの設定も変更しなければならない
// デフォルトのファイルをコピー。/usr/lib/firewalldの中身はデフォルトの設定なので変更はしない。
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
// コピー先を開き、ポート番号を22から変更先のポート番号に変更
# emacs /etc/firewalld/services/ssh.xml
// ファイアウォールの変更を適用
# firewall-cmd --reload

// sshdを再起動
# systemctl restart sshd.service

// IPアドレスを確認しておく
// ログアウトし、公開鍵認証のための設定を行う。
# ifconfig

ここからは、クライアント側の作業

// sshクライアントソフトを利用。pederosaやteraterm。WindowsならWSL、macならiTermなどでもいい。

$ cd
$ mkdir .ssh
$ cd .ssh
// sshに用いるカギを生成(2048bitがデフォだと思うから-bいらないかも)
$ ssh-keygen -f (ファイル名) -t rsa -b 2048
// サーバーに公開鍵を転送(ファイル名の後ろにpubがついているもの)
// もし、sshのポート番号を変更したなら、-pオプションを利用する。
$ ssh-copy-id -p (ポート番号) -i (ファイル名).pub (username)@(IPアドレス)
// configファイルを作成
$ emacs config
/*
Host (好きなサーバーの名前)
HostName (IPアドレス)
User (username)
IdentityFile ~/.ssh/(秘密鍵ファイル名->pubが付いてないほう)
Port (ポート番号を変更した人は、ポート番号を記載)
*/
(ssh接続を試す)
$ ssh (好きなサーバーの名前)

// 無事ログイン出来たら
// sshでパスワード認証をできなくする
$ sudo emacs /etc/ssh/sshd_config
/*
該当箇所を以下のように変更
PasswordAuthentication  no
ChallengeResponseAuthentication  no
UsePAM  yes
*/

Perforceのセットアップ

サーバーのセットアップ

// 公開鍵をインポート。
$ sudo rpm --import https://package.perforce.com/perforce.pubkey
// perforceのリポジトリを設定
$ sudo emacs /etc/yum.repos.d/perforce.repo
/*
以下をファイルに記述
[perforce]
name=Perforce
baseurl=http://package.perforce.com/yum/rhel/7/x86_64
enabled=1
gpgcheck=1
*/

//インストール
$ sudo yum install helix-p4d

// インタラクティブにPerforceサーバーを設定できるシェルスクリプトを実行
$ sudo /opt/perforce/sbin/configure-helix-p4d.sh
/*
(注意) 実行すると、いくつか質問されるが、基本的にデフォルトを選んでよいが、日本語を利用できるようにしたい人はunicode-modeをy(yes)と答える。また、スーパーユーザーのパスワードももちろん考えて入力する。
*/

/*
これで、サーバーの設定はいったん終わる。
しかし、自分はこの後、クライアント側からサーバーに接続しようとしたら、エラーが出た。
原因はファイアウォールで止められていたことにあった。
もし、同様のエラーが出るようだったら、次のことを試してみるといいかも。
*/

// ポートを開く
$ sudo firewall-cmd  --zone=public --add-port=1666/tcp --permanent
// 変更を反映させる
$ sudo firewall-cmd --reload
// 確認
$ sudo firewall-cmd --list-all

クライアントのセットアップ

  1. Helix Visual Client (P4V)からクライアントソフトをインストールする。

  2. P4Adminを開くと、Open Connectionと書かれたダイアログが出る。
    Server欄に、ssl:(サーバーのIPアドレス):1666
    User欄に、先ほどサーバー側で作ったユーザー名を入れる。(デフォルトで作成したなら、superというユーザーができてる)

  3. もしかしたら、Unicodeの設定にしている人は、ここで、サーバー接続時のエンコーディング方法を聞かれると思うので、その際はUTF-8にする。ちなみに、次のメインウィンドウのEdit->Preferenceから後からでも変更できる。

  4. ソフトのメインウィンドウが開くので、Homeタブの中のCreate new userから新しいユーザーを作成する。作成したら、今度はPermissionsタブに移動し、作成したユーザーの権限を設定する。設定するには、タブ内の表テーブルで表示されている部分から、superを参考に、作成すれば良い。Access Levelに関しては、write,admin程度のユーザーでいい。ただし、admin以上のアクセスレベルがなければ、次のタイプマップのファイルを開けないので、面倒な方は、adminでアクセスレベルを設定してしまったほうがいいかも。

  5. 次に、コマンドプロンプトを開いて、以下を入力する。

> p4 set P4USER=(先ほど作成したクライアントユーザー名)
> p4 set P4PORT=ssl:(サーバーのIPアドレス):1666
> p4 -P (設定したクライアントユーザーのパスワード) typemap

タイプマップが開くので、これは、とりあえずUE4公式ドキュメントに記載のものをコピペして、既存のものを上書きする(自分ははしたが、しなくてもいいかも?)。

// クライアントの情報を確認
> p4 info
// クライアントの環境変数を確認
> p4 set 

6. P4Vを起動し、表示されたダイアログに先ほどと同様に、サーバーのIPアドレスと、作成したユーザー名を入れる。またこの後、エンコーディングについては先ほどのP4Adminの時と同様に入力する。

7. viewドロップダウンから、Workspacesを開き、開いたワークスペースのタブで右クリックをし、New Workspaceオプションを選択する。ワークスペースを設定し、作成する。このとき、ワークスペースのrootは、もし、既存のプロジェクトを管理したいなら、そのフォルダを、もし、新規に始めるプロジェクトならどこでもいい。
また、下の画像のように、Workspace Mappingsを設定する。デフォルトの設定だと、//depot/...//Sample/depot/...となっていると思うが、後ろに付いているdepotを消す。spec~については、まだ未学習なので、自分は除いてしまった。とはいえ、今更ではあるが、参考リンクによると、ユーザーの編集フォームの履歴を追跡してくれるとあるので、あったほうがいいかも。後から追加もできるらしいので、まあよしとする。最後にOKを押す。

image.png

8. デポに追加するフォルダー、ファイルを聞かれるので、UE4公式ドキュメントのようにする。

9. そして、一番最後の作業として、UnrealEngine4を開き、Source Controlから、Perforceを選択し、各種項目を埋めて、設定を保存すれば、完了である。なお、Server欄はssl:(サーバーのIPアドレス):1666とし、ワークスペースは、すでにワークスペースを設定していれば、候補が表示されるので、そこから選択すれば良い。

最後に、今回は簡単にUE4とPerforceの連携について、自分なりにまとめてみたが、まだまだ、不十分なところがあるので、調べ次第変更していきます。

参考にしたサイト

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3