備忘録のような

趣味グラマによる個人的な見解、備忘

UE4 メッシュの回転軸、中心点 を変える方法

開閉ドアを実装するときなどで、Y軸を動かすと全体が動き失敗したりすると思うのですが(実体験)
そういうときは、回転軸の位置を調整してあげることで解決します。

やり方

それでやり方なのですが、簡単で
ビューポートに設置した調整したいメッシュをクリックして、デフォのEキーなどを押して
回転軸を出して、中心の白いポイントをマウスホイールを押して(中クリックとかいうアレ)移動させることでできます。


↓参考になりました
www.youtube.com


以上です。

開閉ドアの作り方も覚えていたらいつかやります。

月100pv 気づいたら超えてました

タイトル通り月100pv 超えていました!

こんなしょうもないブログにアクセスしていただき嬉しく思います!

 

うおおおおおおおおおやったあああああああ(周りから見ると少ないんだろうけど

UE4 スターターらいパック リッスンサーバーでのオンラインマルチ対応 更新11/17

サードパーソンサンプルの4.17で作成されたスターターパック的なのです

ゲームでよく使うようなシステムテンプレを随時更新していきます。
連続でこんなながったるい記事をかけられる秘訣は、
この前ごちうさ映画で一発でシャロちゃんが当たったからです!!
f:id:rai06:20171117020441j:plain


……
………

~~~~~~~~~~~~~~~~~~~~~~~

注意 分かりやすくはしていますが、変数の作り方などが理解できている
初心者だけど基本が分かった人向けです。

回復ダメージゲームオーバー処理付きHPゲージ?HPバー?

ヒットポイントの実装の例
f:id:rai06:20171114182040p:plain
UMGフォルダを作成して、ウィジェットブループリントを
右クリで作成します。(例ではHealthBar)
次に作成したUMGを開きProgressBarを検索し、配置します。
そしてPersent値のバインディングを作成します。
f:id:rai06:20171114182405p:plain
次に、Float型の変数を作成、コンパイルをしてHP最大値となる1.0を値に埋め込みます。

  1. インスタンス編集可
  2. スポーン時に公開

にチェックを入れて、Get で Return Valueに繋げます
f:id:rai06:20171114182658p:plain
次にレベルブループリントなどから、BPを開き
f:id:rai06:20171114183032p:plain
変数を作成していきます。

  1. 作成したUMG名の変数型を選択します ( castobj
  2. 次、現在のHPを入れる変数で Float型で作成します ( Health

あとは、画像通り配置すれば完成です。
f:id:rai06:20171114183632p:plain
f:id:rai06:20171114183644p:plain
お疲れ様です。足りてない処理は、回復していくと最大値を超えて増えてしまうところで
回復処理に最大値以上の場合、最大値に置き換えるなどにして実装すると綺麗かと思います

~~ 11/17 ~~

回復処理の微修正というか追加
f:id:rai06:20171116183037p:plain
MaxHealthという変数をFloat型で作成して、コンパイルをし、値を1.0にする。
あとは、画像通り
f:id:rai06:20171116183022p:plain
あと一応
f:id:rai06:20171116183041p:plain
で最大値をいじるとき簡単に変数二つの値を変えるだけでできるようになります

(BeginPlay で変数の値を ゲットMaxHealth → セットHealth で値を読み込ませるとMaxだけで可能になるというのを
実装忘れしたなと思う僕であった)

メインメニューの実装

わりかし重要なメニューを実装していきます。
f:id:rai06:20171116185408p:plain
UMGフォルダ内にMainMenuフォルダを作成します。
次に、MainGameMenuというウィジェット(ユーザーインターフェイスウィジェットプリントのこと)を作成

f:id:rai06:20171116185423p:plain
次に先ほど作ったMainGameMenuを開き、Vertical Box を配置して、
Vertical Box のアンカーを中心にあるものを選択します。

f:id:rai06:20171116185437p:plain
次にスロットパラメーターの値で、
位置 X | -250 ( サイズXの半分の値)
位置 Y | 0 (アンカーで設定してる為)
サイズX | 500(見た目)
サイズY | 380 (見た目)
にします。

f:id:rai06:20171116190207p:plain
次に、Uniで出てくるUniform Grid PanelをVertical Box内に設置して
Sizeを自動からフィルにします。

(画像を置きまくると表示スピード低下でSEOなんちゃらしちゃうんである程度テキストのみ)
f:id:rai06:20171116190716p:plain
次、Uni にButton を三ついれてアライメントを両方伸ばします、そして、
ButtonのRowを上から0、1、2と設定します

次、各ボタンにTextを設置して、上から
シングルプレイ
オンラインプレイ
ゲームを終了する
としました。

次、シングルプレイのイベント、OnClickedを作成してください
Clickedイベントに OpenLevelを作り繋ぎ LevelNameをThirdPersonExampleMap(サードパーソンのデフォ名)にして完了。
次、ゲームを終了するのワンクリイベを作成してください
イベントに、QuitGameを作成し繋ぎ、一旦メインメニューが完成です。(オンラインはちょい長いので次項目)
f:id:rai06:20171116192119p:plain
ですが、肝心の表示処理忘れてるので作っていきます。

メイン画面に戻り、ファイル→新規レベル→空のレベルを作成
レベルBP(ブループリント→レベルブループリントのこと)を開いてください。
イベントTickは今回いらないので無駄処理のTickを削除して、
BeginPlayにいつもの、CreateWidget(ウィジェットを作成)→受け箱の変数→Add to Viewportを作成
CreateWidgetのClassには、先ほど作ったMainGameMenuを選択でok

表示はできましたが、マウスを表示する処理を忘れていました(←天然美少女と思い込んでいる陰)

……
Get PlayerControllerを作り、Valueからのみ出てくる Set Show Mouse Cursorを作り繋ぎ、カーソル変数にチェックを入れます

Add to Viewport→チェックを入れたSet Show Mouse Cursor→Set Input Mode UI Onry を作り繋げて、 Targetを 先ほどの Get Player Controllerに繋げて
コンパイルで完了
f:id:rai06:20171116194402p:plain

と、いきたいとこですがUI Onlyにしてしまっているので、修正とこのメインメニューをゲーム開始時最初に読み込むようにしていきます。
メイン画面に戻り、現在のレベルを保存をクリックして、保先を、UMG→MainMenuにしてMemuMapとして保存します。
次、ThirdPersonBP→Mapsにある、ThirdPersonExampleMapをダブルクリックして読み込みます。
レベルBPを開き、以下の画像のように Game Onlyにします。
f:id:rai06:20171116194835p:plain

この項目最後!
メイン画面の上にある設定→プロジェクト設定… を開きます(レベルBPの隣のやつ)
プロジェクト欄のマップ&モードを開き、DefaultMaps欄の両方にMenuMapを選択して終わりです!

オンライン化

このパックでここが知りたい人が多いのではないのか的な勝手な妄想をしつつ(自分がそうだった)
やっていきます
作っていく上で、今回AdvancedSessionsというプラグインを使用していくので、
プラグインの導入からやっていきます。
Advanced Sessions Plugin - Unreal Engine Forums
ここから4.17のプラグインをリンクの一覧にあるGoogleDriveから右上のダウンロードボタンを押してダウンロードします。
解凍して、中に二つファイルがあるかと思いますがAdvancedSessionsの方がプラグインです。(もう一つの方は使ったことないけど名前から察するにサンプルなので見ておくといいかもデスね)
次、プロジェクトフォルダにPluginsフォルダを作成して、Advancedsessionsをドラッグ&ドロップします。(分からなければ前回の記事を参考に)
プロジェクトを開いていていたら、一度閉じ再度起動します。
導入は終わりで、
次に メイン画面から設定→Pluginsを開き 
Online Subsystemにチェックを入れて有効化してプロジェクトを閉じます。
次に、プロジェクトフォルダにあるConfig→DefaultEngine.iniを開き
最下部に、以下の内容を追加して保存してください

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

もう一度プロジェクトを開き、準備は完了です。

開き終わったら、MainGameMenuのオンラインプレイボタンのOnClickedイベを作ります。
次にカスタムイベントを二つ作り名前を
CreateServer
JoinServer

とします。
そして、Integer型の変数を作り名前を、CurrentIndexとします。
f:id:rai06:20171117011259p:plain
次に、カスタムイベントの中身を作っていきます(ちょっと長いので画像で)

  • CreateServer

f:id:rai06:20171117011458p:plain

  • JoinServer

f:id:rai06:20171117011538p:plain
f:id:rai06:20171117011543p:plain

最後に、先ほど作ったクリックイベントとJoinServerを繋ぎ
完成です!
f:id:rai06:20171117011723p:plain

仕様は、オンラインプレイをクリックで、空いてあるサーバーがなければ作ってそこへ参加、
サーバーがあり空いていれば参加 を自動で分けます。


構造、仕組みは画像内のコメントを参考に、
一応流れは、クリックイベントでJoinが呼び出され、
Find Session Advancedでサーバーを探し、ForEachLoopで一つ一つ参加できるか
総当たり(イメージ悪いけど)して、入れなければ次、最後までなければサーバーを作る。
最初から無ければ検索後、同じくサーバーを作る処理を行う。


AdvancedSessions使うほどだったのか怪しいが
一先ず完成
11/17現在は以上お疲れ様でした!
ライセンスは、AdvancedSessionsが大丈夫であれば
ゲーム配布としてなら大丈夫ですが、ブループリントの共有などの場合、このブログURLを張っていただくと嬉しいです。


~~~~~~~~~~~~~~~~~~~~~~~

プロジェクトのダウンロードをしたい方は、下のURLからお願いします。(プラグインは抜いてあるので各自導入お願いします。)
11/17更新版
http://bit.ly/2z6Lv7Z

パスワードはサイトとZIPどちらも、
Ue4RaiPack
です。


時々更新していきます。
分からないところや、希望があればコメントまたは、TwitterのDMやリプなどで分かる限りの返事します。
twitter.com

UE4で毎回引っかかってるようなことのメモ羅列

Version 4.17です 11/14更新

自分がいつも忘れて模索するので
同じように困っている人にもお役に立てればなと、随時更新していこうと思います
+ショートカットとかも



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

//BluePrint(BP) AND UMG

UMGの表示優先順位設定が見つからない(ZOrder,Z-index)

f:id:rai06:20171113202704p:plain
Canvas Panelが親でないと表示されない?ようです。(多分違う)
他のやり方で設定するにはUMGを優先度ごとに分けて呼び出す際のviewportのオプションから指定するなどです

ThirdPersonCharacterのmeshが見つからない

f:id:rai06:20171113222254p:plain
のようにキャラクターBPから編集するとmeshが選択できます

BP、UMGで編集中の(選択中)ファイルを指定するには

self というノードを使えばできます
また、自分は is とかで検索をかけてます(いっぱい引っかかるときもあるので臨機応変にw)

UMGの要素、オブジェクトを非表示にするにはどうすれば

f:id:rai06:20171113231456p:plain
Set Visibility
というノードを使用すると表示、非表示ができます。
Visible | 表示
Collapsed | 要素ごと持っていき場所を確保できる(場が空きになり非表示になる) …?(という認識してやってきた)
Hidden | 要素はそのまま非表示
…あとは使った事無いので分かりません

背景をブラーかかったものにしたい(磨りガラス)

f:id:rai06:20171113232449p:plain
BackgroundBlur を置き、Appearance にある、 Blur Strength でブラーの度合いをいじるとできる
imageでmaterialを使ってとかでも実装できそうな予感




//メイン画面

編集中の画面位置の保存(ブックマーク)

Ctrl+0~9または、▼から開いて設定する

ブックマークしたところに飛びたい

ブックマークナンバーの数字がショートカットになっています。
Ctrl+>hoge   hogeに当たる数字

コマンドを入力、使用したい

f:id:rai06:20171113225007p:plain
ウィンドウ→デベロッパーツール→アウトプットログ をクリック
コンソールコマンドを入力する と日本語だとかいてあるテキストボックスに入力すればok




//コマンド

英語にしたい、日本語に戻したい(言語変更)

ログに、 
英語 | culture=en
日本語 | culture=ja
etc.
で完了するとグリーンカラーでCmd: culture=ja のようなものが出力されてフォントファイルも読み込まれます

FPSを表示させたい

stat fps
で、表示できます。もう一度実行すると消えます

終了させたい

quit
でワンパンです。慣れるとこのコマンドを入力した方が早いことが多いので必須かも




//プラグイン(Plugins)

プラグインの導入方法

エンジンフォルダの、Pluginsに入れる
G:\Epic Games\Epic Games\UE_4.17\Engine\Plugins
自分の環境下ではこのようなディレクト
そしてメイン画面から、編集→Pluginsでマネージャを開き適用したいプラグインにチェックをいれてUE4を再起動
または、
導入したいプロジェクトのほげ~.uproject などがあるプロジェクトフォルダ内にPluginsフォルダを作成してそこに入れるといけます

Online Subsystem(デフォ)

steam系を使用するときに使ってます。
DefaultEngine.iniの編集も必要

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

docs.unrealengine.com

Steam系を使いたい(Advanced Sessions Plugin)

Steamのことならお任せあれのプラグイン
オンラインマルチ対戦とかも簡単に実装できたり、
Steamアイコン、名前などの取得が容易
Steam系でお世話になります。
ただ4.17だと?パッケージ後exeを開くとエラー吐きます??
forums.unrealengine.com




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

よく使いそうなテンプレ → (いつか作る)

【pubg】ポチンキなう 作りました

ポチンキなうというネタソフトを作ったんで宣伝とちょっち技術の仕組みっぽいの

(配布先urlはいっちばん下にあります)

 

後、タブレットからの投稿なんで文字列しかないです

 

では、このソフトは  名前 + ♯ポチンキなう  なんとかかんとか  と呟くソフトで

Ctrl + P でホットキー設定してるのでゲームしながらでもできたりします

 

…以上!w  

 

どうして作ったのかの経緯はただ単に降りた場所ツイートしたいなと

ただ最初は色々な街に対応しようと思っていて

いざ作ろうとvs起動した時怠いなと思いマトを絞ってポチンキにしてつくった

 

技術的なのは、coretweetと何処かのブログでホットキーのライブラリがあったんで

それを使ったくらいかな、 あんましすごいソフトではなくネタだから中身がうっすい

 

最後に、配布先urlからよければお使いをw

http://rai06.com/pochinki/index.html

CLIPSTUDIOで個人的に引っかかった点のまとめ

題名通りクリスタの引っかかった点と対策方法を記述します
また、下記のことは自分が直っただけなので
色々な原因があるでしょうから、必ずしも正解ではないです

それと動作状況は、
OS Windows10pro
CPU i7-4790
グラボ GTX 970
メモリ 32GB
SSD と HDD 複数個の数TB
+
ワコムのペンタブ

で雑ですがこんな感じ


カクつき

スペックが足りている上で、カクつく
原因は自分の場合は、
XBoxStatでした、(ググったら同じ原因の人がいてびびった)
対策は、XboxStatのプロセスを閉じスタートアップの無効にするか、アンインストール。
またこれは予想ですが、Win7までの対応のソフトを使用していた為に起こった現象だと思うので
Win7以下の人は直らないかもです、


追加した色を再起動後保守できない、素材の追加ができない

これは自分の場合は色々と模索しましたが、
原因は簡単で、バージョンにより、起こりえたものでした
詳しいバージョンは忘れてしまいましたが、1.○.□ の
最後の□に入る数字の簡単な修正のアップデートではなく、
メインアップデート、○に入る修正で、
アップデートをしていなかった為色の保守など一部動作が不安定になっていました。
とりあえず古いランチャー使っている方は、アプデしましょうw
ちなみにバージョンを変えると設定が戻るので、設定ファイルの一部を上書きして移行しましょう
ディレクトリゎ忘れてしまったw 確かドキュメント内に生成されたやつだった気が、
バージョン分けされています ググれば出るはずですw


ここからはこういった場合もあるだろうと予想してかいていきます
ウイルス対策ソフトの誤作動により色などの設定ファイルを上書きできなくされていたり、
削除されて起動時一々新規作成されている為データがなくなり読み込めなくなったりがありそう
これは対策ソフトによって手順が変わるので大まかに、設定先フォルダのウイルスチェックを無効にする、
または対策ソフトを変えちゃうとか

あとは、ユーザー名に日本語などの2バイト文字をしようしていて、
文字化けが起きディレクトリが狂って正常に保存できていなく保守など上手くいかない、
まあこれは自分が検証したとこと大丈夫そうですが、一応かいときました、
対策はこれといってないです、ユーザーアカウントを作り直す以外



以上です。
ネタ切れでここ一ヶ月更新できていませんでした。
すみません、
次は時間があれはなんかphpスクリプトの配布とか
需要のありそうなのを投稿していきたい(理想)
でもPUBGについてもかきたいのでこっちかきそう(現実)

プログラミング始める人の為の参考書の選び方&Go言語はじめました

前から気になってたgo言語を始めました
まあすぐにメインで使うようになるかわからないですが、
何れかPHP乃至Golangでいけるようになりたいな

ちなみに自分が購入したのはオライリーのジャパンの方で出版されてる「Go言語によるWebアプリケーション開発」という書籍ですね~


王道を行く、(yj)オライリーですな!

ここから特に自分の見解で、急遽本筋へと変貌した

プログラミング初心者の方がこんな厨二ブログ(にもなれていない)を閲覧されていないとは、
思いますが、一応、オライリーは正直最初から見るようなもんではないと思っています
いやだってさ、白黒ですやんw(自分は現在オライリーは二冊しかもっていないので必ずではないかもですが、、)

最初はカラー(できれば)であれですね~、記述ソースコードに背景色がある、ハイライトもあれば尚よし!
それに、かわいいマスコット的なのもあると割とモチベに繋がるのでそういうのがあるものを選ぶといいかな

ちなみに僕はやさしいCで始めましたね
やさCは分かりやすいのでプログラミング始めたいなって人におすすめです(ステマ
javapythonなど他言語やりたいなって人でも変数などの基礎がわかりやすいのでね

ただ、かわいい萌え萌えなマスコットきゅんがいましぇん、、(重要)


少しだらだらっと殴り書きしましたが、上記以外で最重要なことがあって、

勉強をする為に購入するのではなく、作りたいものがサンプルとしてあるものを選びましょう

あるあるらしいですが、基本的な書き方を覚えたあと、じゃあ実際どうやって作っていけばいいのか
わからない人になります

それに、何を作っているのかわからないでただロボットのようにかいていっても覚えられませんし

作りたいものをかくロボットになりましょうww

作り方を覚えればあとはこっちのもん
ググりながら開発していきましょうそれにIDEの自動補完という心強い味方もいます


とまあ頭が弱いので上から見たいになってごめんなさいorz

このポエムを公開してよろしいですか?
   [はい] いいえ