投稿

12月, 2018の投稿を表示しています

ネームエントリー

イメージ
書くネタが無くなって更新頻度もだいぶ減ってしまいましたが、今作っているRPGでネームエントリーの処理を作ってみたので記事にしてみます。 ざっくりどんな流れの処理かは  こちら  を見てみてください。 やっていることは キャラクターのアクターにオーバーラップしてイベントを開始 ↓ 文字送りをしていき、仕込んでいたスクリプトからネームエントリーを起動 ↓ カーソルを表示し、文字(ネーム)入力 ↓ チェックボックスをクリックするとネームエントリーをフェードアウト ↓ カーソルを消してイベントを続行 とこんな感じで動いています。 まずネームエントリー部分について ネームエントリーはWidgetで作っています。 テキストボックスとチェックボックスを こんな感じに作って、これらの詳細よりOnTextCommittedやOnCheckStateChangedをにビューにしておき テキストボックスの方の詳細/イベントOnTextCommitted Widgetのイベントグラフで出てきた2つのノードに こんな感じに ・テキストボックスの方には入力されたテキストを表示 ・チェックボックスの方にはインスタンスに作っておいたMyNameという変数に入力されたテキストを代入するようにします。(CastInstanceは独自マクロです) で、ネームエントリーが始まったらWidget上でマウスやキーボードが使えるようにするために イベントConstrustノードに マウスカーソル表示 と インプットモードをこのUIのみに絞る ノードを繋げます。 これでWidgetが表示されると同時にマウスカーソルが表示され、文字入力しても裏で動いているゲームが操作できちゃったりしないようにできます。 ネームエントリーが終わってチェックボックスを押されたら上に書いたOnCheckStateChangedのMyNameに代入した後ろに こんな感じで マウスカーソルをオフ にさせて インプットモードをゲームだけにする とカーソルが消えてゲームが再開できるようになります。 これ、ShowMouseCursorのオンオフだけだとオフった時に1クリックしないとゲーム操作に移ら

パッケージ化

パッケージ化ってだいたい最初は失敗しますよね。 そしてエラーログの意味がよくわからなくて絶望する。 ググっても日本語の情報があんまりなくて英語のアンサーハブをなんとか読んで、解決することもあればしないこともあり、これは無理なんじゃないか?と思ってるとなぜかパッケージ化成功とか… というわけで今回は今作っているゲームのα版パッケージ化でつまずいたところを書いていきます。(もう2か月前のことかー) パッケージ化について書いてあるサイトを参考に(皆さんありがとうございます!) 容量圧縮方法を試みながらおもむろにパッケージ化してみる。 ↓ 失敗! ですよねー。 エラーログにディレクトリー名が長いからアカンと出てる。 わかりやすいエラーで助かった!と思いマケプレで買ったローディングシステムのやつのフォルダ名とかをリネームしてみる。 ↓ 失敗! というか、なんかさっきリネームしたフォルダとリネームしてないフォルダが両方あるんですが…、大丈夫なんでしょうか?? そうこうしているうちに、なんか消したはずのフォルダが出てきたり、そこに入れてないはずのファイルが入ってたり入ってなかったり、どんどん泥沼にはまっていって… ダメだ…、このプロジェクト、破棄しよう… 仕切り直し。 バックアップからクローンを作成してパッケージ最初からやり直し。 ディレクトリ名が長いのは C:\Users\XXXX\Documents\Unreal Projects にプロジェクト作ってるため、出だしから既に長いので、もっと浅いディレクトリにプロジェクトを作ることにしました。 さておもむろにパッケージ化 ↓ 失敗! ですよねー。 さっきも出てたかもしれないエラー。 [Script/Engine.RecastNavMesh]found in the DefaultEngine.ini file.This class has been moved.Plaese rename that section to[/Script/NavigationSystem.RecastNaviMesh] だと? 英語だ…(あたりまえ) 絶望しつつググってみるとアンサーハブにあった! 英語だ…(あたりまえ)