Tumgik
m150mmmm · 3 years
Text
ベセゲーモッダーでも分かる!ValheimMOD、最低限の作り方 3.建築物編
武器編まで読んだ前提で書いているので結構省略してます https://m150mmmm.tumblr.com/post/650623209753968640
unityを起動 stone_wallで検索してでてきたプレハブstone_wall_1x1をduplicateする コピーされたstone_wall_1x2を適当な作ったフォルダ(SamplePiece)につっこむ
Tumblr media
コピーしたstone_wall_1x2を選択し、それのhierarchyのnew,worm,broken以下のstone_highかlowを選択 右側のメニューからShaderからstandardを選択
Tumblr media
worm,brokenの見た目を見たい場合、右側メニュー一番上のチェックボックス たぶん、worm,brokenはダメージが入っている状態の見た目用 stone_wall_1x2をてきとうにリネーム(SamplePiece001) SamplePiece001の右側メニューのBox Clliderが当たり判定、適当に値を変えて好きなサイズにする(今回は同じサイズのcubeを追加するのでスルー)
Tumblr media
SamplePiece001にぶら下がっているたくさんの_snappointはその名の通りスナップする場所、好きな位置に右側メニューでいい感じにする(今回は同じサイズのcubeを追加するのでスルー)
Tumblr media
Blenderの作業
武器と同じようにstone_hgihをfbxに出力 いい感じにblenderでモデルを作る 今回はマイクラの土みたいなのを追加する
Tumblr media
Unityへ戻る
作ったfbx、テクスチャ、アイコンをunityにドロップ stone_matで検索して石のmaterialをduplicateして持ってくる そのmaterialを使って武器の時と同じようにmaterialを設定
Tumblr media
SamplePiece001のnew, worn, brokenのstone_high,lowにfbxをドラッグドロップ 以下の画像みたいな感じにする
Tumblr media
high,lowは多分近距離描画用と遠距離描画用だと思うがその辺をどこで指定しているのかは分からなかった (今回はダメージが入っている状態でも近距離でも遠距離でも全部同じ見た目で)
各stone_high,lowのもともとも見た目を消す stone_high,lowをそれぞれ選んで、右側mesh Filter, Materialというところを meshはnoneを指定、materialはsizeを0にする これを、new,worm,brokenのstone_high,lowの6か所でおこなう
Tumblr media
通常よりもたくさん積めるようにする場合 右側メニューmaterialtypeというのをironにする もっとたくさん積めるようにする方法は現状分からなかった
Tumblr media
他のステータスは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起動
Tumblr media Tumblr media
さっきmaterialtypeというのをironにした効果で鉄の柱と同じだけ積めるようになっている
Tumblr media
以上です。 最終的な成果物はhttps://github.com/m150mmmm/valheimModCodeSamples/blob/main/Piece1/ においてあるdllです
0 notes
m150mmmm · 3 years
Text
ベセゲーモッダーでも分かる!ValheimMOD、最低限の作り方 2.武器編
https://m150mmmm.tumblr.com/post/650602856065449985
の続き
ベセゲーモッダーでも分かる!ValheimMOD、最低限の作り方 2.武器編
unityを起動する
検索ボックスにswordironと入力(打撃系の武器を作る場合はメイスとかを検索)
Tumblr media
ピンク色のswordironを選択 texが表示されていないので表示する edit=>project setting graphics=> deferredのセレクトボックスをbuilt in shaderに変更して閉じる
Tumblr media
左サイドバーのviking_swordを選択 shaderのセレクトボックスからstandardをセレクト
Tumblr media
これでテクスチャが表示される
左下からscrips=>assembly_valheimフォルダを開く
Tumblr media
#とついてるアイコンがたくさんあるフォルダが開いたら右クリック=> create=>assembly definition フォルダ名と同じassembly_valheimという名前を付ける
Tumblr media
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の+をクリック 追加されたリストの右側の丸をクリックして
Tumblr media
出てきたウィンドウでassembly_guiutilsを追加
+をクリックして追加されたリストの右側の丸をクリックしてassembly_utilsを追加 と繰り返して assembly_guiutils assembly_utils assembly_steamworks assembly_postprocessing assembly_lux assembly_sunshafts assembly_simplemeshcombine assembly_googleanalytics を追加する
Tumblr media
そのあと別のアイテムをクリックすると出てくる小さいポップアップはapplyする
Tumblr media
上メニューwindow=> package managerをクリック
Tumblr media
Asset bundle browserを探して選択してインストール
Tumblr media
package managerを閉じる 上メニューwindowのリストにAsset bundle browserがなかったらunityを再起動する
Tumblr media
ここから新しい武器を作っていく
新しい鉄の剣のためのフォルダを作成する 左下のassetsフォルダで右クリック=> create =>folder 任意の名前を付ける(今回はSampleSwordFolder)(大文字小文字も判別されるので注意する)
Tumblr media
さっきテクスチャが表示できるようにしたswordironを選択した状態で edit=>duplicate swordiron1というのが増える 複製されたswordiron1をさっき作ったSampleSwordFolderフォルダにドラッグアンドロップ
Tumblr media
SampleSwordFolderに移動してswordiron1を任意の名前に変更(今回はSampleSword)(大文字小文字も判別されるので注意する)
SampleSwordを選択し 右下のasset labels のassetbundleのセレクトからnewを選択 任意の名前を付ける(今回はsamplesword)(入力後enter押下)
Tumblr media
メッシュのエクスポートをする unity 上メニューwindow=>package manager 開いたwindow右上でfbxで検索 出てきたfbx exporter をインストール
Tumblr media
SampleSwordをクリック 左上のツリーViking_Sword(1)を右クリック => export to fbx
Tumblr media
出てきたwindowのexport pathを好きなディレクトリに変更 Export Formatをbinaryに変更 export押下
Tumblr media
blenderでモデルを用意する
blenderを開く(私はまだ2.79を使ってます)
import=>fbxで今出力したViking_Sword (1).fbxをインポート
Tumblr media
それを参考にいい感じにモデルをつくる
今回は前に作ったゴブリンさんの剣をそのまんま使う(https://www.nexusmods.com/skyrimspecialedition/mods/29632)
Tumblr media
importした参考にするfbxのスケールが1になっていないので作ったモデルも同じように合わせる
fbxでexport
Tumblr media
テクスチャ
テクスチャなどの画像を用意する
必要なのは
ディフューズマップ
金属部分とそれ以外を分ける白黒2値のマップ(白が金属)
メニューで使うアイコン用の64*64の透過png
これらを好きなソフトで作る
Tumblr media
unity に戻る
SampleSwordFolderのフォルダ内に3枚の画像をドロップ
Tumblr media
Materialの設定
検索ボックスでweaponsで検索 weapons1という玉(material)を選択edit=>duplicate 複製されたweapons2をSampleSwordFolderに移動 好きな名前に変えておく(今回はsampleSwordMaterial)
Tumblr media
そのmaterialをクリックし右側メニューmainmapsというところのalbedo, metalicにさっきインポートした画像を選択 (それ以外の細かい設定はよくわからない誰か調べて)
Tumblr media Tumblr media
アイコン画像の設定
アイコンの画像をクリック
texture typeのセレクトをsprite(2D and UI)にする
Tumblr media
メッシュを変更する blanderから出力したSampleSwordFolderにドロップ それをクリックし右側のメニュー、materialタブを選択 on demand remapというところ material 001の右側の丸をクリック さっき設定したmaterial(sampleSwordMaterial)を探し選択 applyをクリック
Tumblr media
そのモデルをExampleSwordのViking_Sword(1)と同じ階層にドロップ 回転とかが合ってない場合blenderで出力し直す 元のViking_Sword(1)を右クリック=>deleteで消す
Tumblr media
アイコンの指定 左上ツリーのSampleSword選択 右側メニューをスクロールしていってItem Drop/Item Data/Shared/Iconsを開く そこのelement0の丸をクリックしてさっきインポートした画像を選択
Tumblr media
アイテムの名前やステータスを設定していく 右側のItemData/Shared/Name、ItemData/Shared/Descriptionがそれぞれ名前と説明文だが 国際化のためにここには直接名前や説明文を書かれていない 代わりに$item_sword_iron、$item_sword_iron_descriptionとあるので好きな名前をつける (今回は$sample_sword_name_id、$sample_sword_desc_id)
Tumblr media
次にステータス weightやdamagesというところを修正して好きな強さにする(各項目が何を表すのか詳細はそのうち書きます)
Tumblr media
※ここでひげよしさんが解決法を見つけたエフェクトがピンクになる問題を解決する(あとで書きます)
https://publish.twitter.com/?query=https%3A%2F%2Ftwitter.com%2FHIGEYOSI360%2Fstatus%2F1390477395442892801&widget=Tweet
ファイルを出力する 上メニューwindow=> Asset bundle browser
Tumblr media
出てきたウィンドウのsampleswordをクリックしてbuildタブに移動してbuildをクリック
Tumblr media
output path (AssetBundles\StandaloneWindows)のフォルダ(プロジェクトルートから相対パス)に移動してsamplesword(拡張子なし)というファイルがあることを確認する
Tumblr media
ここからvisualStudioの作業
vsを起動する 新しいプロジェクトの作成
Tumblr media
言語をC#に変更 クラスライブラリ(.net freamwork)C#クラスライブラリ(.dll)を作成するためのプロジェクトです を選択
Tumblr media
次へ押下 プロジェクト名に任意の名前をつける(今回はSampleSword) フレームワークが.net framework4.7.2になっていることを確認 作成押下
Tumblr media
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で右クリック=>エクスプローラでフォルダを開く
Tumblr media
さっきコピペした.csがあるフォルダが開くのでそこにLibsフォルダを作成
Tumblr media
***\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の右側に参照というのは増えるのでそれを右クリック=>参照の追加
Tumblr media
出てきたポップアップの右下の参照をクリック
Tumblr media
さっき作ったlibsフォルダを開いて8ファイルを選択して追加 OK押下
Tumblr media
これでClass1.csのコード中の赤い下線のエラーが消えている筈なので確認する
Unityの成果物を持ってくる
さっきunityからbuildしたフォルダのsampleswordをClass1.csがあるフォルダにコピー ソリューションエクスプローラのSampleSwordで右クリック=>追加=>既存の項目 sampleswordを選択(フィルタをすべてのファイルに変更してから) ソリューションエクスプローラのexampleswordをクリック 右下のビルドアクションを埋め込みリソースに変更(これでsampleswordがdllに含まれるらしい)
Tumblr media
ついにビルド!
上メニュー ビルド=>SampleSwordのビルド
Tumblr media
***\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 のコードをコピペ
これで国際化は完了です 他の言語にも対応する場合同じようにやってください
完成!
これで成果物はすべてそろいました 成果物は以下のようになります
Tumblr media
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 反応が無い場合ここまでの工程で何かミスしています
Tumblr media
入手して装備したり攻撃したり修理したりアイテムをドロップしたりして動作確認してください その際ログを確認してみてください 赤い文字の���ラーが出まくっていたらここまでの工程で何かをミスしています
Tumblr media
問題なければ完成です
最初に書きましたが私は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がそのまま表示されてしまいます(スクショはスペイン語で起動) なのでなるべく全言語入れてあげた方がいいと思います
Tumblr media
1 note · View note
m150mmmm · 3 years
Text
ベセゲーモッダーでも分かる!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/
Tumblr media
.netだけチェックしてインストール
Tumblr media
終わったら起動
アカウント作成は後で行うでOK
○ILSpyをdl
https://marketplace.visualstudio.com/items?itemName=SharpDevelopTeam.ILSpy
Tumblr media
ILSpy.AddIn_7.0.0.6488.vsix実行
VS community 2019にチェックがあることを確認してインストール
○Vortexをdl
https://www.nexusmods.com/site/mods/1
容量的にnexusmodsのアカウントが必要
Tumblr media
インストールして起動してログイン
サイドバーからGameをクリック
Tumblr media
検索boxでvalheimを検索
valheimをクリック
Tumblr media
出てきたポップアップから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/
Tumblr media
マニュアルDLして解凍
BepInExPack_Valheimフォルダ内のファイルをコピー
***\SteamApps\common\Valheimにペースト
Tumblr media
uTinyRipperをdl
https://sourceforge.net/projects/utinyripper/
Tumblr media
これを好きなディレクトリに解凍
Unity Hubをdl
https://unity3d.com/get-unity/download
Tumblr media
Unity 2019.4.20をdl
https://unity3d.com/get-unity/download/archive
2019タブを選ぶ
Tumblr media
好きなDL方法でDL
Tumblr media
Unity Hubを起動してunityIdを取得してサインイン
uTinyRipper.exeを実行
drag&dropfiles/folders hereという画面が表示される
***\SteamApps\common\Valheimをそこにドロップ
Tumblr media
画面真ん中のExportを押下、pjを保存するディレクトリを選択(今後このフォルダが作業フォルダになるのでその辺を考慮した場所にしてください)(保存にかなり時間がかかる)
Export is finishedと表示されたらエクスポート終了
exportの時間がくっそ長いのでこのフォルダごとバックアップしておくといいらしいです
unityHubを起動
リストに追加押下
Tumblr media
さっきexportしたフォルダのvalheimフォルダを選択
リストに追加されたvalheimのunityのverを2019.4.20に変更
Tumblr media
プロジェクト名のところをクリック
出てきたポップアップの確認を押下
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
Tumblr media
DLしたzipの中のJotunn.dll
を**\SteamApps\common\Valheim\BepInEx \plugins にコピー
HookGenPatcherをDL
https://valheim.thunderstore.io/package/ValheimModding/HookGenPatcher/
Tumblr media
DLしたzipの中のpatchersフォルダと、configフォルダを**\SteamApps\common\Valheim\BepInExにコピー
Tumblr media
BepInExPack for Valheim、 Jötunn, the Valheim Library 、HookGenPatcherはmodを入れるユーザー側のvalheimにもインストールが必要な前提MODになります
武器編へ続く
https://m150mmmm.tumblr.com/post/650623209753968640
2 notes · View notes