ベセゲーモッダーでも分かる!ValheimMOD、最低限の作り方 3.建築物編
武器編まで読んだ前提で書いているので結構省略してます
https://m150mmmm.tumblr.com/post/650623209753968640
unityを起動
stone_wallで検索してでてきたプレハブstone_wall_1x1をduplicateする
コピーされたstone_wall_1x2を適当な作ったフォルダ(SamplePiece)につっこむ
コピーしたstone_wall_1x2を選択し、それのhierarchyのnew,worm,broken以下のstone_highかlowを選択
右側のメニューからShaderからstandardを選択
worm,brokenの見た目を見たい場合、右側メニュー一番上のチェックボックス
たぶん、worm,brokenはダメージが入っている状態の見た目用
stone_wall_1x2をてきとうにリネーム(SamplePiece001)
SamplePiece001の右側メニューのBox Clliderが当たり判定、適当に値を変えて好きなサイズにする(今回は同じサイズのcubeを追加するのでスルー)
SamplePiece001にぶら下がっているたくさんの_snappointはその名の通りスナップする場所、好きな位置に右側メニューでいい感じにする(今回は同じサイズのcubeを追加するのでスルー)
Blenderの作業
武器と同じようにstone_hgihをfbxに出力
いい感じにblenderでモデルを作る
今回はマイクラの土みたいなのを追加する
Unityへ戻る
作ったfbx、テクスチャ、アイコンをunityにドロップ
stone_matで検索して石のmaterialをduplicateして持ってくる
そのmaterialを使って武器の時と同じようにmaterialを設定
SamplePiece001のnew, worn, brokenのstone_high,lowにfbxをドラッグドロップ
以下の画像みたいな感じにする
high,lowは多分近距離描画用と遠距離描画用だと思うがその辺をどこで指定しているのかは分からなかった
(今回はダメージが入っている状態でも近距離でも遠距離でも全部同じ見た目で)
各stone_high,lowのもともとも見た目を消す
stone_high,lowをそれぞれ選んで、右側mesh Filter, Materialというところを
meshはnoneを指定、materialはsizeを0にする
これを、new,worm,brokenのstone_high,lowの6か所でおこなう
通常よりもたくさん積めるようにする場合
右側メニューmaterialtypeというのをironにする
もっとたくさん積めるようにする方法は現状分からなかった
他のステータスはwood_poleあたりと見比べてみてください
他エフェクトがピンクになる件なども解決する
※ちなみにどうやってもエフェクトの見た目がおかしい場合、たいていvfxとsfxってくっついているのでsfxだけ残せば音だけするようになる
武器の時と同じように適当なAssetbundleを作ってエクスポート(今回はsamplecubeassetbundle)
ここからvisual studio
武器編の時と同じようにプロジェクトを作る
参照に入れるものも武器編と一緒
Class1.csにhttps://github.com/m150mmmm/valheimModCodeSamples/blob/main/Piece1/Piece.cs
をコピペ
AssetBundleName、TargetPrefabName、CraftingStationPrefabName、CraftingToolName、作成に必要なアイテムをあなたのものに合わせて修正
unityから出力されたファイルを武器編の時と同じよう埋め込みリソースにしてビルド
必要な国際化のjsonなどを武器編の時と同じように用意
所定のディレクトリにdllなどを置いてvalheim起動
さっきmaterialtypeというのをironにした効果で鉄の柱と同じだけ積めるようになっている
以上です。
最終的な成果物はhttps://github.com/m150mmmm/valheimModCodeSamples/blob/main/Piece1/
においてあるdllです
0 notes
ベセゲーモッダーでも分かる!ValheimMOD、最低限の作り方 2.武器編
https://m150mmmm.tumblr.com/post/650602856065449985
の続き
ベセゲーモッダーでも分かる!ValheimMOD、最低限の作り方 2.武器編
unityを起動する
検索ボックスにswordironと入力(打撃系の武器を作る場合はメイスとかを検索)
ピンク色のswordironを選択
texが表示されていないので表示する
edit=>project setting
graphics=> deferredのセレクトボックスをbuilt in shaderに変更して閉じる
左サイドバーのviking_swordを選択
shaderのセレクトボックスからstandardをセレクト
これでテクスチャが表示される
左下からscrips=>assembly_valheimフォルダを開く
#とついてるアイコンがたくさんあるフォルダが開いたら右クリック=> create=>assembly definition
フォルダ名と同じassembly_valheimという名前を付ける
scriptsフォルダ直下のフォルダすべてで右クリック=> create=>assembly definition
そのフォルダ名の名前を付ける
assembly_googleanalytics
assembly_guiutils
assembly_lux
assembly_postprocessing
assembly_simplemeshcombine
assembly_steamworks
assembly_sunshafts
assembly_utils
assembly_valheim
さっき作ったassembly_valheimというassembly definitionをクリック
右側サイドバーassembly definition referenceの+をクリック
追加されたリストの右側の丸をクリックして
出てきたウィンドウでassembly_guiutilsを追加
+をクリックして追加されたリストの右側の丸をクリックしてassembly_utilsを追加
と繰り返して
assembly_guiutils
assembly_utils
assembly_steamworks
assembly_postprocessing
assembly_lux
assembly_sunshafts
assembly_simplemeshcombine
assembly_googleanalytics
を追加する
そのあと別のアイテムをクリックすると出てくる小さいポップアップはapplyする
上メニューwindow=> package managerをクリック
Asset bundle browserを探して選択してインストール
package managerを閉じる
上メニューwindowのリストにAsset bundle browserがなかったらunityを再起動する
ここから新しい武器を作っていく
新しい鉄の剣のためのフォルダを作成する
左下のassetsフォルダで右クリック=> create =>folder
任意の名前を付ける(今回はSampleSwordFolder)(大文字小文字も判別されるので注意する)
さっきテクスチャが表示できるようにしたswordironを選択した状態で
edit=>duplicate
swordiron1というのが増える
複製されたswordiron1をさっき作ったSampleSwordFolderフォルダにドラッグアンドロップ
SampleSwordFolderに移動してswordiron1を任意の名前に変更(今回はSampleSword)(大文字小文字も判別されるので注意する)
SampleSwordを選択し
右下のasset labels のassetbundleのセレクトからnewを選択
任意の名前を付ける(今回はsamplesword)(入力後enter押下)
メッシュのエクスポートをする
unity 上メニューwindow=>package manager
開いたwindow右上でfbxで検索
出てきたfbx exporter をインストール
SampleSwordをクリック
左上のツリーViking_Sword(1)を右クリック => export to fbx
出てきたwindowのexport pathを好きなディレクトリに変更
Export Formatをbinaryに変更
export押下
blenderでモデルを用意する
blenderを開く(私はまだ2.79を使ってます)
import=>fbxで今出力したViking_Sword (1).fbxをインポート
それを参考にいい感じにモデルをつくる
今回は前に作ったゴブリンさんの剣をそのまんま使う(https://www.nexusmods.com/skyrimspecialedition/mods/29632)
importした参考にするfbxのスケールが1になっていないので作ったモデルも同じように合わせる
fbxでexport
テクスチャ
テクスチャなどの画像を用意する
必要なのは
ディフューズマップ
金属部分とそれ以外を分ける白黒2値のマップ(白が金属)
メニューで使うアイコン用の64*64の透過png
これらを好きなソフトで作る
unity に戻る
SampleSwordFolderのフォルダ内に3枚の画像をドロップ
Materialの設定
検索ボックスでweaponsで検索 weapons1という玉(material)を選択edit=>duplicate
複製されたweapons2をSampleSwordFolderに移動 好きな名前に変えておく(今回はsampleSwordMaterial)
そのmaterialをクリックし右側メニューmainmapsというところのalbedo, metalicにさっきインポートした画像を選択
(それ以外の細かい設定はよくわからない誰か調べて)
アイコン画像の設定
アイコンの画像をクリック
texture typeのセレクトをsprite(2D and UI)にする
メッシュを変更する
blanderから出力したSampleSwordFolderにドロップ
それをクリックし右側のメニュー、materialタブを選択
on demand remapというところ
material 001の右側の丸をクリック
さっき設定したmaterial(sampleSwordMaterial)を探し選択
applyをクリック
そのモデルをExampleSwordのViking_Sword(1)と同じ階層にドロップ
回転とかが合ってない場合blenderで出力し直す
元のViking_Sword(1)を右クリック=>deleteで消す
アイコンの指定
左上ツリーのSampleSword選択
右側メニューをスクロールしていってItem Drop/Item Data/Shared/Iconsを開く
そこのelement0の丸をクリックしてさっきインポートした画像を選択
アイテムの名前やステータスを設定していく
右側のItemData/Shared/Name、ItemData/Shared/Descriptionがそれぞれ名前と説明文だが
国際化のためにここには直接名前や説明文を書かれていない
代わりに$item_sword_iron、$item_sword_iron_descriptionとあるので好きな名前をつける
(今回は$sample_sword_name_id、$sample_sword_desc_id)
次にステータス
weightやdamagesというところを修正して好きな強さにする(各項目が何を表すのか詳細はそのうち書きます)
※ここでひげよしさんが解決法を見つけたエフェクトがピンクになる問題を解決する(あとで書きます)
https://publish.twitter.com/?query=https%3A%2F%2Ftwitter.com%2FHIGEYOSI360%2Fstatus%2F1390477395442892801&widget=Tweet
ファイルを出力する
上メニューwindow=> Asset bundle browser
出てきたウィンドウのsampleswordをクリックしてbuildタブに移動してbuildをクリック
output path (AssetBundles\StandaloneWindows)のフォルダ(プロジェクトルートから相対パス)に移動してsamplesword(拡張子なし)というファイルがあることを確認する
ここからvisualStudioの作業
vsを起動する
新しいプロジェクトの作成
言語をC#に変更
クラスライブラリ(.net freamwork)C#クラスライブラリ(.dll)を作成するためのプロジェクトです を選択
次へ押下
プロジェクト名に任意の名前をつける(今回はSampleSword)
フレームワークが.net framework4.7.2になっていることを確認
作成押下
class1.csを開き
https://github.com/m150mmmm/valheimModCodeSamples/blob/main/weapons1/Class1.cs
のコードをコピペする
以下の変数をあなたのつけた名前に合わせて修正する
namespace SampleSword
public const string PluginGUID
public const string PluginName
public const string PluginVersion
public const string AssetBundleName
public const string TargetPrefabName
public const string TargetItemNameId
public const string CraftingStationPrefabName
public const int CraftingStationLevel
それと必要素材というコメントの箇所
これらをコメントを参考に修正してください
他はソース中のコメントを見てみてください
あっちこっちに出ている赤い下線のエラーを消していく
ソリューションエクスプローラのSampleSwordで右クリック=>エクスプローラでフォルダを開く
さっきコピペした.csがあるフォルダが開くのでそこにLibsフォルダを作成
***\SteamApps\common\Valheim\BepInEx\core\0Harmony.dll
***\SteamApps\common\Valheim\BepInEx\core\BepInEx.dll
***\SteamApps\common\Valheim\valheim_Data\Managed\assembly_valheim.dll
***\SteamApps\common\Valheim\valheim_Data\Managed\assembly_utils.dll
***\SteamApps\common\Valheim\valheim_Data\Managed\UnityEngine.CoreModule.dll
***\SteamApps\common\Valheim\valheim_Data\Managed\UnityEngine.dll
***\SteamApps\common\Valheim\BepInEx\plugins\Jotunn.dll
C:\Program Files\Unity\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll
をそのLibsフォルダにコピー
vsの右側に参照というのは増えるのでそれを右クリック=>参照の追加
出てきたポップアップの右下の参照をクリック
さっき作ったlibsフォルダを開いて8ファイルを選択して追加
OK押下
これでClass1.csのコード中の赤い下線のエラーが消えている筈なので確認する
Unityの成果物を持ってくる
さっきunityからbuildしたフォルダのsampleswordをClass1.csがあるフォルダにコピー
ソリューションエクスプローラのSampleSwordで右クリック=>追加=>既存の項目
sampleswordを選択(フィルタをすべてのファイルに変更してから)
ソリューションエクスプローラのexampleswordをクリック
右下のビルドアクションを埋め込みリソースに変更(これでsampleswordがdllに含まれるらしい)
ついにビルド!
上メニュー ビルド=>SampleSwordのビルド
***\SteamApps\common\Valheim\BepInEx\pluginsを開きSampleSwordというフォルダを作る
Class1.csがあるフォルダからの相対パスでbin\DebugにSampleSword.dllというファイルができている
そのdllを***\SteamApps\common\Valheim\BepInEx\plugins\SampleSwordにコピー
国際化
***\SteamApps\common\Valheim\BepInEx\plugins\SampleSwordにAssetsというフォルダを作成
その中にTranslationsというフォルダを作成
その中にJapaneseというフォルダを作成
その中にjapanese.jsonというファイルを作成(新規作成=>テキストドキュメントを作成で.txtを作ってリネームでOK)
それをなんでもいいのでテキストエディタで開く
https://github.com/m150mmmm/valheimModCodeSamples/blob/main/weapons1/modFile/SampleSword/Assets/Translations/Japanese/japanese.json
のコードをコピペ
これはUnityでつけたアイテム名と説明文の日本語を指定しています
同じようにTranslationsフォルダにEnglishフォルダを作成しenglish.jsonを作る
https://github.com/m150mmmm/valheimModCodeSamples/blob/main/weapons1/modFile/SampleSword/Assets/Translations/English/english.json
のコードをコピペ
これで国際化は完了です
他の言語にも対応する場合同じようにやってください
完成!
これで成果物はすべてそろいました
成果物は以下のようになります
dllファイル*1、jsonファイル*国際化の数
配布する場合これらをまとめてzipにしてアップすればいいはずです
(アップする場合前提MODにBepInExPack for Valheim、 Jötunn, the Valheim Library 、HookGenPatcherを記載してください)
最終的成果物は以下にアップしてあります
https://github.com/m150mmmm/valheimModCodeSamples/tree/main/weapons1/modFile/SampleSword
WARNING! WARNING! WARNING!
!!!念のためワールドやキャラがぶっ壊れないようにセーブをバックアップしたり新しいデバッグ用のキャラ、ワールドを作って起動してください
!!!このチュートリアルで不利益損害が生じた場合でも私はその責任を一切負いません。
Valheimを起動
ログにエラーが出まくっていたらここまでの工程で何かをミスしています
起動してテスト用のワールドに入ったら
コンソールでアイテムを出すか、レシピに必要なアイテムを入手して作業台で作ってください
コンソールで出す場合、コンソールを有効化して
devcommands
spawn SampleSword
反応が無い場合ここまでの工程で何かミスしています
入手して装備したり攻撃したり修理したりアイテムをドロップしたりして動作確認してください
その際ログを確認してみてください
赤い文字の���ラーが出まくっていたらここまでの工程で何かをミスしています
問題なければ完成です
最初に書きましたが私はunityに触ったのは初めてなので何か間違えてる可能性があります
何か間違いがある場合twitterで教えてもらえると幸いです https://twitter.com/m150mmmm
またこの情報は2021年5月9日時点の情報でありゲーム自体アーリーアクセスなので色々今後変わる可能性が高いです
以上になります
既知の問題点 解決したら記事を修正します
アップグレードの素材の指定方法が分からない
nexusのpostで Koosemose さんがやり方を教えてくれました
https://www.nexusmods.com/valheim/mods/1196/?tab=posts
https://www.nexusmods.com/valheim/users/4042024
https://github.com/m150mmmm/valheimModCodeSamples/blob/main/weapons1/Class1.cs
のファイルをアップグレード素材について記載し更新しました(やり方聞いてからDOC読んだら普通に書いてあった)
国際化についての補足
今回は英語と日本語を指定しましたが、指定していない言語で起動すると以下のようにUnityでつけたIDがそのまま表示されてしまいます(スクショはスペイン語で起動)
なのでなるべく全言語入れてあげた方がいいと思います
1 note
·
View note
ベセゲーモッダーでも分かる!ValheimMOD、最低限の作り方 1.環境構築
ベセゲーモッダーでも分かる!ValheimMOD
最低限の作り方 1.環境構築
情報は2021年5月8日時点のものです
unityを初めてさわったので間違っている箇所が多々ある可能性あり
一度成功してからスクリーンショットを取るために再度画面を開いたりしているのでスクショの見た目が違ったりします
参考にしたURL(というか大半はこのチュートリアルを日本語にしてるだけ)
https://www.youtube.com/watch?v=p_gsFASlvRw&ab_channel=DickJustice
https://www.youtube.com/watch?v=yboYD-x4DVw&ab_channel=DickJustice
https://github.com/Valheim-Modding/Wiki/wiki
https://github.com/DickDangerJustice/ValheimMods/blob/master/ExampleSword/Setup.cs
○Visual Studio CommunityをDL
https://visualstudio.microsoft.com/ja/vs/community/
.netだけチェックしてインストール
終わったら起動
アカウント作成は後で行うでOK
○ILSpyをdl
https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy
ILSpy.AddIn_7.0.0.6488.vsix実行
VS community 2019にチェックがあることを確認してインストール
○Vortexをdl
https://www.nexusmods.com/site/mods/1
容量的にnexusmodsのアカウントが必要
インストールして起動してログイン
サイドバーからGameをクリック
検索boxでvalheimを検索
valheimをクリック
出てきたポップアップからdlをクリック
コンテニュークリック
selectFolderで***\SteamApps\common\Valheimになっていることを確認して選択
dl unstripped assembliesクリック
https://www.nexusmods.com/valheim/mods/15
が開く
右上あたりのvortexというbtnをクリックしdl
vortexを開きますか?=>開く
vortexのウインドウでサイドバーMODsをクリック
unstripped_managed.zipの左の水色のbtnクリック
disabledになったらbtnの▼からenabledにする
エクスプローラで***\SteamApps\common\Valheimを開く
フォルダがいくつか増えていることを確認
(この辺スクショ撮れませんでした https://www.youtube.com/watch?v=p_gsFASlvRw&ab_channel=DickJustice の2分あたりを参照してください)
○BepInExPack for Valheimをdl
https://valheim.thunderstore.io/package/denikson/BepInExPack_Valheim/
マニュアルDLして解凍
BepInExPack_Valheimフォルダ内のファイルをコピー
***\SteamApps\common\Valheimにペースト
uTinyRipperをdl
https://sourceforge.net/projects/utinyripper/
これを好きなディレクトリに解凍
Unity Hubをdl
https://unity3d.com/get-unity/download
Unity 2019.4.20をdl
https://unity3d.com/get-unity/download/archive
2019タブを選ぶ
好きなDL方法でDL
Unity Hubを起動してunityIdを取得してサインイン
uTinyRipper.exeを実行
drag&dropfiles/folders hereという画面が表示される
***\SteamApps\common\Valheimをそこにドロップ
画面真ん中のExportを押下、pjを保存するディレクトリを選択(今後このフォルダが作業フォルダになるのでその辺を考慮した場所にしてください)(保存にかなり時間がかかる)
Export is finishedと表示されたらエクスポート終了
exportの時間がくっそ長いのでこのフォルダごとバックアップしておくといいらしいです
unityHubを起動
リストに追加押下
さっきexportしたフォルダのvalheimフォルダを選択
リストに追加されたvalheimのunityのverを2019.4.20に変更
プロジェクト名のところをクリック
出てきたポップアップの確認を押下
unityEditorからのアクセスを許可(表示された場合)
かなり時間がかかる
終わるとunityが起動する
ValheimLibをDL
https://valheim.thunderstore.io/package/ValheimModding/ValheimLib/
DLしたzipのpluginsフォルダ内のValheimLibフォルダを**\SteamApps\common\Valheim\BepInEx\pluginsにコピー
https://twitter.com/XD_wizard さんの指摘でこのValheimLibは以下の Jötunn, the Valheim Library に統合されているそうです
※ValheimLibが前提になってるMODも結構ありそうなので記載は取り消し線にとどめて消しはしません
https://publish.twitter.com/?query=https%3A%2F%2Ftwitter.com%2FXD_wizard%2Fstatus%2F1390960348530835465&widget=Tweet
Jötunn, the Valheim LibraryをDL
https://www.nexusmods.com/valheim/mods/1138
DLしたzipの中のJotunn.dll
を**\SteamApps\common\Valheim\BepInEx \plugins にコピー
HookGenPatcherをDL
https://valheim.thunderstore.io/package/ValheimModding/HookGenPatcher/
DLしたzipの中のpatchersフォルダと、configフォルダを**\SteamApps\common\Valheim\BepInExにコピー
BepInExPack for Valheim、 Jötunn, the Valheim Library 、HookGenPatcherはmodを入れるユーザー側のvalheimにもインストールが必要な前提MODになります
武器編へ続く
https://m150mmmm.tumblr.com/post/650623209753968640
2 notes
·
View notes