新しく自分の作ったレベルでゲームができるように設定

新しく自分の作ったレベルでゲームができるように設定します。

まずはUE4エディタを起動しモバイルアプリでスターターパックあり(なしでもいいんですが、使えるものが多いのでありがいいかと…)

すると最初のレベルが表示されますが、これは今は使わないので「ルート」に新しいフォルダでも作って自分の作るコンテンツの名前にしてその中に「Blueprints」「Level(Map)」「Materials」「Sounds」「Textures」などわかり易い名前のフォルダを更に作ります。

まずは自分のLevelを作ります。

コンテンツブラウザ内のフォルダを開いてマウスの右クリックでメニューが出ますので「レベル」を選択して作成します。

こんな感じで何もないのでまず床など置いてみましょう。

「基本」「平面」をクリックして「平面」をドラッグしたままレベル(マップ)に置きます。右のアウトライナを見ると「Plane」が追加されてます。位置がメチャメチャなのでxyzとも0,0,0にしておきましょう。また大きさもデフォルトでは1mになってますので100mくらいにしておきましょう。(拡大縮小のところのxyを100でzは高さなのでそのまま)でも明かりがないのでまだ床も見えません。

次にライトを置いてみます。

「ライト」「ディレクショナリライト」をドラッグしてレベルにおきます。

すると床が見えました。

「編集」「プロジェクト設定」で「マップ&モード」で作成したレベルを設定すれば、エディタもゲームもこのレベルから始まります。

設定して一旦終了して再度エディタを起動すると作ったレベル(マップ)から始まります。

 

AWSのUbuntuのSSL化

AWSのubuntuを無料のSSL化ました。

https://wspri.dip.jp

でアクセスできます。

Let’s EncryptのSSL証明書を使っています。

 

設定は簡単です。まず、rootでSSHにログインしてコンソールに

apt -y install certbot

と入力します。これでClientのcertbotがインストールされます。

次に証明書を発行しましょう。

certbot certonly --webroot -w /var/www/html -d wspri.dip.jp

で、DdocumentRootとアクセスしたいドメイン名を指定します。すると問い合わせ可能なメアドを聞いてきますので入力します。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):

で、あとは利用許諾をするかしないかを選択して終わりです。が、おまけに財団に協力するかとか聞いてきます。

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
An unexpected error occurred:
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Please see the logfiles in /var/log/letsencrypt for more details.

IMPORTANT NOTES:
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.

僕は一度失敗したのでもう一回やり直しました。

あとは/etc/letsencrypt/live/ドメイン/の中にcert.pem、chain.pem、fullchain.pem、privkey.pemがありますので通常の手順で設定してApache2の再起動で終わりです。

vi /etc/apache2/sites-available/default-ssl.conf

SSLCertificateFile      /etc/letsencrypt/live/wspri.dip.jp/cert.pem
SSLCertificateKeyFile   /etc/letsencrypt/live/wspri.dip.jp/privkey.pem

SSLCertificateChainFile /etc/letsencrypt/live/wspri.dip.jp/chain.pem

尚証明書の更新は

certbot renew

のようです。

PHPマニュアル

簡易的にPHPスクリプトにセキュリティとしてパスワードをかける実装

<?php
//passwdを自分なりのpasswdにするんだよ
$pass = "passwd";
if(isset($_POST['pass'])&&$_POST['pass']==$pass){
        //postされてパスワードが$passと同じならばphpinfo()を出力
        phpinfo();
}else if(isset($_POST['pass'])&&$_POST['pass']!=$pass){
        //postされたがパスワードが違った場合はメッセージを表示
        echo ("Access is prohibited.");
}else{
        //postがされていない時はパスワードの入力フォームを表示
        echo ("<form method=\"POST\" action=\" $script_php \">\n
              Input Password<br><br>\n
              Password:<input type=\"password\" name=\"pass\">\n
              <input type=\"submit\" value=\"Input\">\n
        ");
}
?>

PHPマニュアル

つまったら検索

AWSインスタンスをインターネットで公開する

ログインしてインスタンスを作るまでは簡単な筈ですね。
まあ、僕は使っているモバイルノートがubuntuなのでubuntuにしています。アマゾンLinuxはアバウトでいいんですがセキュリティがちょっと心配なのでubuntuにしているのも理由のひとつです。

インスタンスが稼動するとこんな感じで「インスタンスの状態」がRunninngになります。

ただ、これだけではAWSネットワーク内にインスタンスがあるだけでwwwに公開されていません。自宅サーバの公開手順ではルータの設定でportをwww上に公開したようにAWSもportを公開する必要があります。

左側メニューの一番上の「EC2ダッシュボード」をクリックするとこのようなページが表示されます。

で、ここでは「6個のセキュリティグループ」をクリックして解放するportを追加します。

WSPRIはメール(受信)、WEB(ssl)、SSHを開放しています。

開放するportは「セキュリティグループの作成」で作成します。

開放するプロコトルを選択して「セキュリティグループ名」を適当につけて「説明」を入れます。

で、作成すると左メニューの「インスタンス」の<アクション<ネットワーキング<セキュリティグループの変更<で開放するportが選択できます。

これでApache2なりNginxなりPopServerなり公開できます。

でも、SMTPなどメールの送信にはAWSは使わない方がいいかも?なぜならほとんどが迷惑メール扱いにされちゃいます。

WSPRIでは送信にはGmailを使ってます。

サンダーバードなどの場合はそのままではsmtp.gmail.comにログインできないのでGmail設定の以下を変更します。(Googleアカウントでログインした上で)

送受信のテストをしてみましょう。送受信できるはず。

ちなみにApache2の設定もpostfix+Devecotの設定も特殊な方法はしていません。

またWSPRIはIeserverのDDNSを利用してます。

IPの設定はCrontabで以下を設定しています。(30分おきにIPをIeserverに送信しています)

10,40 * * * * /usr/bin/wget -O - 'https://ieserver.net/cgi-bin/dip.cgi?username=wspri&domain=dip.jp&password=*****&updatehost=1' > /dev/null

AWSではrootの初期状態ではパスワードの設定がないため必要な場合は以下を参考に設定します。

AWSでのrootパスワードの設定

Apache2、php、Mysql、wordpressその他のインストールと設定は以下を参照します。

ServerWorld

WordPress

 

viエディタの使い方

↑Linuxだとよく使うエディタの使い方

Unixコマンド

↑Unixのコマンドもよく使うんだよね

WSPRIについて

WSPRIはWEBサーバプログラミング研究所でしたが、特定のカテゴリにとらわれずUE4やサーバ関連の管理者の備忘録として情報を掲載していきます。
普段はあまり時間がないので応答が悪いですがその点はご理解ください。