diff --git a/book/SUMMARY.md b/book/SUMMARY.md index d6239fb..f1d166f 100644 --- a/book/SUMMARY.md +++ b/book/SUMMARY.md @@ -16,8 +16,10 @@ * [アニメーションを作成する](gas/07_anim.md) * [control rig sample](crs/README.md) * [CRでキャラクターを動かす](crs/01_character.md) + * [ボスを作る](crs/02_boss.md) * [city sample](city/README.md) * [惑星形式のmapを作る](city/01_remove.md) + * [橋を作る](city/02_bridge.md) * [json blueprint utilities](json/README.md) * [apiから情報を取得する](json/01_varest.md) * [pixel streaming](pixel/README.md) @@ -26,4 +28,5 @@ * [superhero fligth animations](plan/01_flying.md) * [ultra dynamic sky](plan/02_uds.md) * [ocean waves](plan/03_ocean.md) + * [nice interaction system](plan/04_item.md) * [end](end/README.md) diff --git a/book/city/01_remove.md b/book/city/01_remove.md index 5530fb4..88264b1 100644 --- a/book/city/01_remove.md +++ b/book/city/01_remove.md @@ -12,6 +12,8 @@ game engineのmapは基本的に平面で作られています。どこまで行 ## ocean wavesで惑星の海を作る +[ocean waves](https://www.unrealengine.com/marketplace/ja/product/ocean-waves) + 必要なものを`/Content/OceanWaves/Levels/EarthSizedOceanPlanet`からcopyして持ってきましょう。 - `BP_EarthSizedSphericalMesh` @@ -26,6 +28,8 @@ game engineのmapは基本的に平面で作られています。どこまで行 ## ultra dynamic skyで天候と惑星を作る +[ultra dynamic sky](https://docs.google.com/document/d/1xAr0Hd3mY7Mp0g0waKLUvJaddUPaVxEeRoEEFXctCE0/) + 1. `/Content/UltraDynamicSky/Blueprints/Ultra_Dynamic_Sky`を開きます。 2. そこに地球と月と太陽のBPを入れます。各自が用意してください。なお、地球は`SkyAtmosphere`の下に置いてください。 > 名前は 地球(BP_Earth), 月(BP_Moon), 太陽(BP_Sun) としておきます。 diff --git a/book/city/02_bridge.md b/book/city/02_bridge.md new file mode 100644 index 0000000..d9718c3 --- /dev/null +++ b/book/city/02_bridge.md @@ -0,0 +1,9 @@ +# 橋を作る + +[automotive bridge scene](https://www.fab.com/ja/listings/a472df9d-9179-4743-8d41-335f9ef55546) + +1. `/Content/AutomotiveBridgeScene/Blueprints/BP_CurvedBridge`, `BP_StraightBridge`を開きます。これをつなぎ合わせていくことで橋を作ります。 +2. Lampが動きませんので、選択した上で`Static Mesh`を`city sample`に入っている`/Content/Prop/Kit_StreetLamp_C/Mesh/streetLampC`と入れ替えます。 +3. 私はベンチのところを`traversable(トラバーサブル)`するためにGASの`/Content/LevelPrototyping/LevelBlock_Traversable`を入れています。Base Materialを`/Content/Characters/Echo/Materials/M_hide`にして透明にします。 + +![](../img/0003.png) diff --git a/book/city/README.md b/book/city/README.md index 32e8d33..20995ab 100644 --- a/book/city/README.md +++ b/book/city/README.md @@ -2,3 +2,4 @@ [city sample](https://www.unrealengine.com/marketplace/ja/product/city-sample) +ニューヨーク(NY)をモデルに都市が作られています。人と自動車が動いています。自動車は乗ることや破壊することができます。 diff --git a/book/crs/02_boss.md b/book/crs/02_boss.md new file mode 100644 index 0000000..64afb1b --- /dev/null +++ b/book/crs/02_boss.md @@ -0,0 +1,85 @@ +# ボスを作る + +敵(enemy)やボス(boss)には必要なものが多いです。動きや攻撃パターン、エフェクト、ステータスやドロップアイテム、ゲージ表示、BGMなどが必要になります。場合によっては演出も必要です。 + + + +bossは`/Content/ControlRig/Characters/Mech`を元に作ります。 + +## 動きを作る + +まずABPを作成し、基本的なAnimGraphを作成します。 + +projectにはsampleのABPがあるはずですからAnimGraphに`idle`, `jump`, `run`などが揃っているをcopyします。 + +[![](../img/0004.png)](../img/0004.png) + +ここでは`AnimGraph -> Locomotion -> Idle`を編集します。 + +動きはABPの`Look At`が使えます。boneを指定するとPlayerに追従します。 + +`[Mech_Idle] --> [Look At](Bone to Modify:cannon_01) --> Output Animation Pose` + +[![](../img/0006.png)](../img/0006.png) + +## 攻撃を作る + +私は最初に購入したassetの[space frontier stations & ships](https://docs.google.com/document/d/1p5MY13cpTlVtqP7sCQpAoE_k5VHklmndZ4cHeBy105Y/edit?tab=t.0#heading=h.nx19nrsdk37u)を使いました。なお、購入はおすすめしません。長いので以降は`space station`とします。 + +ここからはassetの解説になります。しかし、基本的な考え方については変わりません。まずは考え方を紹介します。 + +1. ターゲットをロック +2. ダメージ処理 + +ターゲット(target)をロック(lock)できるようなシステムは大抵、攻撃頻度やダメージ、コリジョンなど基本設定ができるようになっています。`epic games`が提供するassetや無料のassetでも同じです。そういった物を見つけてbossのBPに組み込みます。 + +ただし、ダメージ処理、例えば、HP管理や倒した倒された処理は自分で書く必要があるかもしれません。 + +### 最初に触ったassetが影響を与える + +ここからは少し昔の話をします。基本的には読み飛ばしてください。 + +ueで最初に始めたのがこのasset(space ship)を使ったゲーム作りでした。当時は何もわからずに手探りで自分のモデルを表示して遊んでいました。宇宙空間に自分のモデルを表示したときは本当に嬉しくて感動でした。 + +当時は`superhero flight animations`という空を飛ぶためassetも購入して同時に使っていましたが、今でもその影響は残っています。 + +その人のゲーム作りは最初に触ったassetが強く影響を与えるのだと思います。 + +### space stationの基本構造 + +1. `/Content/SpaceStation/Blueprints/Weapons`で各武器のタイプを選べます。ここでは`BP_TurretGatling`を開きます。 +2. `/Content/SpaceStation/Blueprints/Weapons/BP_TurretGatling(Self)`の詳細から`Weapon -> Shooting Delay:1`にして`Turret -> Turret Aiming Speed:150`にします。これは発射速度とターゲットに合わせる速度の設定です。 +3. `/Content/SpaceStation/Blueprints/Weapons/Parent/DT_WeaponTypes`を開きます。ここで弾丸の音(sound)やエフェクト(effect)を設定します。 +4. 最後に`/Content/Blueprints/CBP_SandboxCharacter(Self)`の詳細で`actor(アクタ) -> Tags[0] -> Allow Shooting`を追加します。これでPlayerがターゲットにロックされるようになります。なお、`Tags[1] -> ShootingTarget`を追加するとPlayerから銃撃できます。こちらは使いません。 +5. あとは`/Content/SpaceStation/Blueprints/Weapons/BP_TurretGatling`をmapに置いてください。 + +### ダメージ処理 + +damage(ダメージ)の処理を書きます。 + +`/Content/Blueprints/CBP_SandboxCharacter`で`Event Any Damage`を追加します。これでdamageを受けますが、hpを用意してそれが0になったときゲームオーバー(gameover)する処理を書いたりします。 + + + +これはGame Ability System(GAS)を使うと便利です。 + +https://dev.epicgames.com/documentation/ja-jp/unreal-engine/gameplay-ability-system-for-unreal-engine + +## HPゲージの表示 + +`widget`で`ProgressBar`を作ります。まず`BP_Mech`にbox collisionを入れて、そこに入ると`boss active`になります。`true`ならwidgetを表示する仕組みです。 + +ProgressBarは`0.0 -> 1.0`なので注意してください。`HP_Current`から`HP_Max`を割り算します。 + + + +## 撃破処理 + +bossを撃破するまでの処理を書きます。 + +damageを受けて0になると消滅し、ドロップアイテムを落とします。消滅時はniagaraでeffectを再生します。damageを受けたときも同じです。 + +ドロップアイテムは`nice interaction system`というassetを使用しています。これは`E`を押すとアイテム(item)が取得できるものです。 + + + diff --git a/book/crs/README.md b/book/crs/README.md index 22d4be8..c3726d9 100644 --- a/book/crs/README.md +++ b/book/crs/README.md @@ -2,3 +2,5 @@ [control rig sample](https://www.fab.com/ja/listings/2ce3fe44-9ee6-4fa7-99fc-b9424a402386) +`control rig sample`では人間以外のcharacterを動かすことができます。 + diff --git a/book/default/00_asset.md b/book/default/00_asset.md index 5d1ab0c..545ea71 100644 --- a/book/default/00_asset.md +++ b/book/default/00_asset.md @@ -4,7 +4,7 @@ ゲームは無料のassetだけでも作れます。しかし、時間やクオリティを向上させたい場合は有料のassetを使いましょう。 -本書の一部では有料assetの使い方を解説します。 +本書の一部では有料assetの使い方を解説します。[sale](https://www.fab.com/ja/channels/unreal-engine?ui_filter_price=1&ui_filter_is_discounted=1&is_discounted=1)中のものを探しましょう。 ## asset @@ -31,6 +31,7 @@ |[superhero flight animations](https://www.fab.com/ja/listings/41185c19-5191-4153-8293-8cc9901efa95)|20241217|空を飛ぶ| |[ultra dynamic sky](https://docs.google.com/document/d/1xAr0Hd3mY7Mp0g0waKLUvJaddUPaVxEeRoEEFXctCE0/)|20250203|空や天候を自動化| |[ocean waves](https://www.unrealengine.com/marketplace/ja/product/ocean-waves)|20240923|惑星の海を作る| +|[nice interaction system](https://www.fab.com/ja/listings/63b61e4a-dc11-4ee0-a6b1-f4860bd29198)|20250206|アイテムを取得する| |[magicalanimset](https://www.fab.com/ja/listings/a63386b8-7cad-42cd-8b81-a9de147e1f08)|20241222|少女の戦闘アニメーション| ## link diff --git a/book/gas/07_anim.md b/book/gas/07_anim.md index f41eb01..e61b85e 100644 --- a/book/gas/07_anim.md +++ b/book/gas/07_anim.md @@ -1,11 +1,16 @@ -# アニメーションを作成適用する +# アニメーションを作成する control rigからも作成できます。しかし、購入したものを使うのが一番です。 +[magicalanimset](https://www.fab.com/ja/listings/a63386b8-7cad-42cd-8b81-a9de147e1f08) + 無料でやるなら`.fbx`, `.vrma`などから作成します。 - https://www.mixamo.com/ - https://booth.pm/ja/items/5512385 - https://github.com/BandaiNamcoResearchInc/Bandai-Namco-Research-Motiondataset +## control rigから作る + +再生して録画ボタンを押すと作れます。 diff --git a/book/gas/README.md b/book/gas/README.md index e4b467a..8f4ce49 100644 --- a/book/gas/README.md +++ b/book/gas/README.md @@ -4,7 +4,7 @@ [G]ame [A]nimation [S]ampleでGASと略すことがあります。 -なお、[G]ame [A]birity [S]ystemもGASなので紛らわしいです。 +なお、[G]ame [A]bility [S]ystemもGASなので紛らわしいです。 まずはこれを使ってキャラクター(character)を動かしてみましょう。 diff --git a/book/img/0003.png b/book/img/0003.png new file mode 100644 index 0000000..e8ee7f7 Binary files /dev/null and b/book/img/0003.png differ diff --git a/book/img/0004.png b/book/img/0004.png new file mode 100644 index 0000000..14ab09a Binary files /dev/null and b/book/img/0004.png differ diff --git a/book/img/0005.png b/book/img/0005.png new file mode 100644 index 0000000..5a89cb8 Binary files /dev/null and b/book/img/0005.png differ diff --git a/book/img/0006.png b/book/img/0006.png new file mode 100644 index 0000000..73d062f Binary files /dev/null and b/book/img/0006.png differ diff --git a/book/pixel/01_server.md b/book/pixel/01_server.md index 5e580ba..7779ea3 100644 --- a/book/pixel/01_server.md +++ b/book/pixel/01_server.md @@ -2,3 +2,4 @@ pcのdisplay(ディスプレイ)が必要になる。画面の電源もつけておく必要があります。 + diff --git a/book/plan/04_item.md b/book/plan/04_item.md new file mode 100644 index 0000000..02695fc --- /dev/null +++ b/book/plan/04_item.md @@ -0,0 +1,5 @@ +# nice interaction system + +[nice interaction system](https://www.fab.com/ja/listings/63b61e4a-dc11-4ee0-a6b1-f4860bd29198) + +