ARMAシリーズ エディット専用スレ Vol.10
■ このスレッドは過去ログ倉庫に格納されています
ヘリをflyInHeightで1000mとかに指定すると 高確率でウェイポイントの途中でヘリが傾いてスピンし続ける なんなんすかこれ 本スレは落ちてるが、そもそも機能していないので問題はない >>298 ウェイポイントの高度設定が0のままとか? ArmA3、しょっちゅう落ちて画面は真っ暗、PC自体操作不能になる。なんでだろう >>301 何を作ってるのか分からないけど、 自分で書いた記述のどこかに バグがあるんじゃないの。 面倒だと思うけど全文を読み直してみたら >>300 高度設定入れてみましたがダメでした。 ちなみにウェイポイントが遠いとよく現象が出ます。 >>301 そんなのARMAやってたら日常茶飯事だから MOD全部外せば直る 最近Arma3を購入したArma2既プレイ者(シングルのみ)なんですが 2に比べて3の敵兵の防御硬すぎませんか。銃弾4発くらい耐えるじゃないですか キャンペーンでも硬いしエディットでも硬くて、ユニットのHealth/Armor欄のメーターを減らすと最初から出血した状態になってしまうし 皆さんはどうしてますか? >>305 エディタで弄るなら相手のボディーアーマーを無くして代わりにチェストリグとかベルトなどを装備させるとかいいかもね CSATは服の防御が硬いからあまり効果が無いかもしれないが あとは死ぬまで撃ち続けるしかない >>303 OFPの頃からある現象じゃね WP近くにトリガ置いてヘリと結んでヘリがトリガに入ったらスイッチ起動させてそのwp飛ばす、でやれると思う >>308 相当な遅レスだけど現代のぼでーあーまーでも 7.62x51を50mで耐える位の性能出せるらしいから そういうもんだと割り切ってしまうのも。 タンカーとか商船(動かないオブジェクト)って需要ある? UH-1のローター折り畳めるバージョンのMODってなかった? >>315 VBSS訓練ごっこしたいので非常に俺得 擬似塹壕はモデルでできる 地形編集でやるならMESHを細かくしないとそれっぽくならんよ。 そしてAI兵士が塹壕戦を理解するか怪しい。 地形編集は分かるけどモデルでできるってどういうこと? あーあれか Arma2にそんなモデルあったな確か あれを隙間なく配置してけば疑似塹壕が作れるのか 自己解決してしまってすまん >>321 ありがとう。 AIについては、銃座につかせたいので問題なし。 植生をそのままで地形を大規模に盛り上げるオブジェクトがあれば不自然な塹壕もある程度隠せるんだけどな〜 AIがその上を普通に通過できるのかわからんけど。 車両の車内視点だと爆発音が全くきこえなくなってしまう IEDとか待ち伏せとか、音がきこえないと戦闘開始しても淡白な感じ トリガーで音を鳴らす以外になにか解決策はないものか… AIがRPG等のAT武器を対人に積極的に使うようにするにはどうすればええんや… >>327 AIに対人RPG使わせるMODがどこかにあったと思う スクリプトで実行させるんだったらselectWeaponとdoFire使えば出来るかも >>328 modの方は本編のRPG42だかなんだか限定だった気がするなぁ スクリプトの方試してみる。ありがとうございました https://youtu.be/CxgUwsjHCyU この動画みたいに兵士を密集させたいので、attachToを試しに使ってみました。一応くっついてはくれるのですが、移動時の違和感がすごいのです。 フォーメーションを新たに定義することは可能でしょうか? Dta\bin.pbo\config.binの中に設定があったからできるんじゃない >>331 みつかりました!ありがとうございました! ユニットがダメージを受けた時、武器を捨てて投降するスプリクトを作りたいのですが上手くいきません _surrenderon = false; _Target1 = _this select 0; _EHDammaged = _Target1 addEventHandler ["Hit", { removeAllWeapons _Target1; _Target1 action ["Surrender", _Target1]; hint "damaged"; _surrenderon = true; }]; と組んでみたのですがヒントは出てもターゲットが降伏してくれない状態になってしまいます どこが間違っているのかエラー文すら出ないのでさっぱりなのですが、どうすればいいでしょうか? 自己解決 イベントハンドラー内でスクリプトを書くときはもう一回オブジェクトとかを定義しなおさなきゃいけなかったのか こんな感じ?最後投げやりですまんけど Target fnc_release_weapon_onhit={ private[ ミス Target fnc_release_weapon_onhit={ private["_surrenderon", "_EHDammaged"]; params["_Target1"]; _surrenderon = false; _EHDammaged = _Target1 addEventHandler [ "Hit", { params["_Target1", "_causedby", "_damage"]; if( _damage > 0.7 && {_causedby != _Target1}) then{//70%以上のダメージを受けてかつ落下ダメージでないなら removeAllWeapons _Target1; _Target1 action ["Surrender", _Target1]; _surrenderon = true; }; } ]; // //_surrenderonの値を監視してtrueになったらremoveEventHandler["Hit", EHDammaged]となるようなスクリプトを書く //トリガー使えば多分できる // }; >>335 >>336 ありがとうございます! paramコマンドがあればイベントハンドラー内でもそのまま変数が使えるんですね いろいろ試してみます arma3で今見ている人の肩に手を乗せて一緒に歩くのってどうやったら綺麗に作れますか? 今のところaddActionで手を前に突き出すアニメーションを再生させてattachToでくっつけています でも肩に手が乗らないし、相手の動きに合わせて足も動かないです どうすれば綺麗に追従してくれるようになるんでしょうか? >>340 もう解決しているor諦めた かもしれないけど、 そもそもそんなアニメの定義があるのでしょうか。、 何かのミッションで、実現されてるなら、解凍して分析すればいいと思います。 youtube等にそのシーンがあったとかなら、、、手段を聞くしかないのかな。 RHSのユニットにIRレーザーを強制的に使わせたいんだけど、enableIRLasers が作動しなくて困った 何かいい方法あるかな? 解決しないかもしれないけど、onEachFrameとかで毎フレームごとにenableIRLasersを実行してみる RHS側がスクリプトで無効にしている場合はこれで直せるかもしれない 駄目だったらRHSのpboを全て展開して(関係ありそうなのが分かるならそれだけ)、何かのエディタで全部IRレーザー関連のキーワードで検索を掛ける 原因が運よく見つかればラッキーだけどかなり大変 この場合RHSを書き換える以外に解決法がなければ署名には注意する必要がある >>343 ありがとうございます バニラ環境で試してみた所、バニラでもenableIRLasersが作動しなかったのでどうやらArma本体での問題のようです とりあえず常に警戒状態にすることで対処します、ありがとうございました enableIRLasersをtrueにしても、AIがCOMBATモードじゃなければ付けてくれないんですね フラッシュライトのほうは強制的に付けられるのに不便ですね Feedback Trackerでも上がってたりしそうですね 3つ以上のウェイポイントのWaypoint Activationの動きがよくわからないんだけど、○-○-○ってやると2つくらい達成されたら次のウェイポイントに向かう奴が出ちゃう 3つ以上の部隊を同期させて動かすのは不可能ですか? それぞれ全部をシンクロで繋がないとだめなんじゃないかな ○-○-○じゃなくて ..○ / \ ○---○ みたいな トリガーで管理しちゃったほうが手っ取り早そうだけど >>348 なるほど、全部を繋ぐわけですか ちなみにトリガでのウェイポイント管理ってどうやるのがセオリーですか? ウェイポイントのon activationに「flg1=true」とかやっといてトリガのconditionに「flg1 && flg2 && flg3」ってやるくらいしか思いつかない >>349 それでいいんじゃないかな 自分もそのやり方でよくやってる on activationでflg1に1を足していってconditionに「flg1>=3」とかやると変数の数が減って管理しやすいかも? 海上のAAV7にJSDFMODの自衛隊員クルーと隊員を搭乗させるにはどうすればいいでしょうか? 隊員は泳いで乗せる手もあるのですがクルーを最初から運転/砲手/指揮席に乗せる方法はないでしょうか? すみません this MoveInDriver "hitohito"; とエディタで入力すると Missing ; とエラーが出ます なぜでしょうか? >>352 " が付いているからでは? this MoveInDriver hitohito; でできると思うけど 特定のユニット(Gerdmanと名付けた警官)をBLUEFORに陣営変更することは可能でしょうか? BLUEFORのユニットを置きます GerdmanからgrouptoでBLUEFORのユニットとグループを組ませます BLUEFORのユニットのProbability of Presence (存在確率)を0%にします そうするとGerdmanがBLUEFORとして扱われます >>356 ありがとうございます 施設警備などで警官が欲しかったので >>357 まったくその通りです 恥ずかしい 通じるかどうかはべつとして guard man だと思うが。。。 moduleのspawn aiで沸いたaiにwaypointを与えるにはどうすればいいですか moduleのexpressionの欄で沸かせたgroupを引数にできるから そこにaddWaypointでwaypoint作っていく ブートキャンプみたいに 左右に移動する的を設置するにはどのようにすればいいのでしょうかが? Arma3で降伏させるにはどうすればいいでしょうか? ミッション開始時点で頭の後ろで手を組んでいる状態にしたいです 2では降伏アンビエントモジュールがありましたが3では見当たりません 捕虜ユニットのinit欄に removeallweapons this; this playmove 欠けた 捕虜ユニットのinit欄に removeallweapons this; this playmove "AmovPercMstpSsurWnonDnon" ; this disableAI "anim" ありがとうございます SetCaptiveではだめだったんですがなぜでしょうか setcaptiveはAIに感知されないように設定するためのものだったはず これを入力しないとAIが捕虜に容赦なく弾をブチ込む eden enhanced入れればチェック項目があって一発よ ものすごく初歩的な質問でごめんなさい arma2のころにあったトリガーのタイプにあるスイッチ? っていうのがarma3でなくなってしまったのですが代わりに何か使うのでしょうか? それとアーセナルを開けるようにするコマンドってなんでしたっけ・・・ >>363 亀レスですまんが、移動する的は用意されていないのでスクリプトを書く必要がある private _vel=(vectorNormalized (AGLToASL (的の名前 modelToWorld[1, 0, 0])) ) vectorMultiply 0.02; 的の名前 setVariable[ private _vel=(vectorNormalized (AGLToASL (的の名前 modelToWorld[1, 0, 0])) ) vectorMultiply 0.1; 的の名前 setVariable["velocity", _vel]; ["適当なID", "onEachFrame", { 的の名前 setPosASL ((getPosASL 的の名前) vectorAdd (的の名前 getVariable "velocity")); }] call BIS_fnc_addStackedEventHandler; >>371 のスクリプトはミスってるので無視してくれ こう書けば毎フレームごとに的が右に0.1m動いてくれる(ちょっと速いかも) あとは弾が当たった時に的を後ろに傾けるようにすればそれっぽくなるはず 連投スマソ >>372 の1行目、オブジェクトの位置が[0,0,0]の時以外でおかしくなるよ こう書けばどこでも右に動くようになる private _vel=private _vel=(vectorNormalized( (AGLToASL (的の名前 modelToWorld[1, 0, 0])) vectorDiff (getPosASL 的の名前) )) vectorMultiply 0.1; >>374 名前変更されてたんですか・・・ありがとうございます エディタに配置した四角形や楕円のシェイプ内に限定したランダム座標を取得するにはどうしたらいいのでしょう? 四角形はgetMarkerPosやgetMarkerSizeで書けた(回転にも対応できた)。 でもEllipse(楕円)がよくわからないorz 円なら簡単だけど。 もしかしてそういうコマンドがありますか? 案1 1. getMarkerPosでマーカーの位置を取得 2. getMarkerSizeでマーカーの横幅と縦幅を取得(多分楕円の長辺の長さと短辺の長さが取得できるはず) 3. マーカーの位置にcreateTriggerでトリガーを作る 4. そのトリガーに対してsetTriggerAreaでマーカーの横幅縦幅を使って楕円のエリアを作る(isRectangle=falseにする) 5. 楕円を囲む矩形の座標値の範囲内で乱数を2つ(x座標とy座標の値)生成 6. 生成した乱数と作成したトリガーをinAreaに渡して、trueが返ってきたら楕円の中に入ってる→7へ/falseが返ってくるなら楕円の外→5に戻る 7. 生成した乱数をgetTerrainHeightASLに渡してz座標の値を取得 案2 1. getMarkerPosでマーカーの位置を取得 2. getMarkerSizeでマーカーの横幅と縦幅を取得(多分楕円の長辺の長さと短辺の長さが取得できるはず) 3. 楕円を囲む矩形の座標値の範囲内で乱数を2つ(x座標とy座標の値)生成 4. >>378 の方法で楕円内にあるか判定、楕円内なら5へ/そうじゃないなら4へ 5. 生成した乱数をgetTerrainHeightASLに渡してz座標の値を取得 案3 1. この面倒なことを簡単にやってくれるコマンドを探す >>379 マジサンクスです。 なるほど、楕円入るまで繰り返すのは割りと楽そうですね! 案3が一番魅力的だけどw ttp://2sen.dip.jp/cgi-bin/upgun/up1/source/up3450.zip トリガーのテストをしてるのですが、どうもうまくいかないです。 プレイヤーの目の前のトリガーに入ったらhintが出るようにしたいです。 飛行機が飛んでますが、これはウェイポイントのテストためです。 目的地まで行くとちゃんと反応してるのがわかります。 添付してますのでよろしくお願いいたします。 トリガーの「アクティブ化」の項目を設定したらちゃんとできました。 昨日はこの「アクティブ化」の欄が全然反応しなかったんだけどな。たまたまかな? スレ汚しすみませんm(_ _)m 失礼します。 Operation Flash Point(ARMA CWA)のヘリ輸送についての質問です。 現在ミッションを作成しており、その内容が「敵基地を攻撃しに行った味方部隊が反撃にあい全滅したため、基地に待機していたプレイヤー小隊が敵基地に報復へむかう」というもので、プレイヤー小隊は敵基地までヘリで移動します。 このとき基地に待機しているEmpty常態のヘリ客室にプレイヤー小隊が、ヘリの乗員として他グループのPilot 2名が乗り込み、離陸させたいのですが、異なる2つのグループを1つのヘリに乗せることができません。 そこでヘリの乗員は前もって搭乗させておき、そこにプレイヤー小隊をGet inさせたのですが、今度は離陸してくれません。 Get inとLoadをシンクロさせて空中待機しているヘリに搭乗させる方法は知っているのですが、ミッションの雰囲気を高めるためにどうしても地上待機状態のもに搭乗、離陸させたいです。。。 拙い質問で申し訳ありません。。。どうかご教示ください。。。 >>383 着陸のさせ方が分からんかったが ひとまず違うグループを搭乗させて離陸させる所までできた 1. まず適当なNameを付けたヘリをEmptyから設置 2. ヘリのパイロットのInitにこれを書く this assignAsDriver ヘリのName; [this] orderGetIn true; 3. 搭乗するグループのどれか1人のInitにこれを書く {_x assignAsCargo ヘリの名前;} forEach (units group this); (units group this) allowGetIn true; 4. 搭乗するグループに対してGET INのウェイポイントをヘリ付近に置く 5. ヘリのパイロットに対して(なんでもいいが)TALKのウェイポイントをヘリ付近に置く 6. 置いたウェイポイントをシンクロする 7. ヘリのパイロットに対してMOVEのウェイポイントを行きたい場所に置く いまBohemiaInteractiveのコマンド一覧(https://community.bistudio.com/wiki/Category:ArmA:_Scripting_Commands )を見ながらMissionEditを試行錯誤しているのですが "crew"(https://community.bistudio.com/wiki/crew )のDescriptionに”Returns the crew (both dead and alive) of the given vehicle.”とありますが、この場合のreturnとはどういう意味でしょうか? >>384さん ありがとうございます! いまの作業が終わり次第試作してみますね!! >>385 crewコマンドで取得できるものがthe crew (both dead and alive) of the given vehicle.という意味 運転手に1人と後部座席に2人が乗っているtank1というトラックにcrewコマンドを使うと _crews_of_track1 = crew track1; この_crews_of_track1が配列になってるってこと 中身は具体的にはこんな感じ [運転手のオブジェクト, 1人目の乗組員のオブジェクト, 2人目の乗組員のオブジェクト,] >>386 さん なるほど、そうすると例えば 「兵員輸送中、市街地上空で乗員が死亡してしまった(乗客は無事)」 という状況を作りたい時には、市街地上空のMoveのinitialisation欄に (乗員を表す任意の文字列) = crew (ヘリを表す任意の文字列); (乗員を表す任意の文字列) setDamage 1; を記入、となるのでしょうか? >>387 すいません、WayPointにInitialisation欄はないですね。。。 市街地上空を覆うようにしてトリガーを Activation:Anybody/present Condition:(ヘリを表す任意の文字列) in thislist On activation:(乗員を表す任意の文字列) = crew (ヘリを表す任意の文字列); (乗員を表す任意の文字列) setDamage 1; としてみたのですが”Invalid number in expression”と表示されてしまい上手くいきませんでした。 >>384 さん、ありがとうございます。乗員とパイロットがそれぞれ搭乗出来ました。 自分なりにスクリプトを解釈してみたのですが this assignAsDriver ヘリのName; [this] orderGetIn true; ⇒この人はヘリの操縦士として指定されますよ; この人は搭乗指示を出しますよ; {_x assignAsCargo ヘリの名前;} forEach (units group this); (units group this) allowGetIn true; ⇒_xはヘリの乗客として指定されますよ、ただし_xとはこのグループの各員のことですよ; このグループの各員は搭乗を許可されますよ; という感じでしょうか。 試しにグループのGetInとパイロットのTalkのSynchronizeを解除したところ、パイロットのみが搭乗しました。 ですから"(units group this) allowGetIn true"は 「このグループの各員は(パイロットがGetInしたら)搭乗を許可されますよ;」という条件付きの文だとわかりました。 それならGetInをTalkとではなく、なにか他のトリガーとSynchronizeさせれば、条件を変えられるのではないかと考えました そこで試しに「特定のユニットが破壊されたら起動する」というトリガーとSynchronizeさせてみましたが、ユニットが破壊されてもグループは搭乗しませんでした。 >>386 さん、スレVol.2の173さんを参照しながら試行錯誤してみたところ解決しました。 市街地にトリガーを配置、HeliAに上空を通過させる。 Activation: anybody/present Condition: HeliA in thislist On Condition: "_x setdamage 0" forEach crew HeliA でいけました。どうもありがとうございます。 >>386 さん crewは乗員だけでなく乗客も含むのですね、勘違いしてました。すいません。 >>389 おおよそその解釈で合っています Synchronizeだけ解釈が間違っているので説明します OFPの動作がよく分かっていないので私も間違っているかもしれないですが ・離陸しようとしているヘリに味方グループは乗り込む指示を出せません ・逆に離陸しようとしていなければ指示を出せます ・パイロットはMOVEのウェイポイントが設定されると離陸しようとする つまり味方グループのGET INが完了するまでパイロットにMOVEのウェイポイントを設定しなければいいということです そこで登場するのがSynchronizeです GET INとTALKをシンクロしているのは ・ヘリに乗り込むことを完了する ・TALKを完了する(無意味ですぐ完了するがorderGetInでヘリには乗り込む) これらの完了を同期するためです 同期するのでパイロットは味方グループがヘリに乗り込むのを待機することができます >>392 さん、なるほど、搭乗部隊がGetIn指示を出してからパイロットが乗り込むようにしてあるのですか、逆ですね。 パイロットと増援部隊がヘリに乗り込んで来てくれるようにしてみました。 http://ux.getuploader.com/OFP_edit/download/1/Reinforce-test.zip 👀 Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) ウェイポイントで質問です。 エディタ上のウェイポイント設定で「アクティブ時」のところにコードを書くことによって、任意の処理を実行できますよね。 これを同じことをスクリプトでやりたいのですが、よくわかりませんでした。 https://community.bistudio.com/wiki/Category:Command_Group:_Waypoints ↑を見ても「アクティブ時にどうこうする」というコマンドが無い感じです。 エディタでできることはスクリプトでもできるはずだと思ってたのですが。 なおsetWaypointScriptコマンドは実行したいスクリプトファイルを指定するだけなので、エディタの「アクティブ時」とはちょっと違うと思います。 どなたか分かる方がおられたらヘルプミー Statementでしたか! 声明とか発言って意味なんですね。英語力0の私には難しい このコマンドでチャレンジしてみます。 ありがとうでした! すいません、Vol.5 172さんによる「他グループユニット同士を縦列行進させる」スクリプトで _ldr = _this select 0 _chsm1 = _this select 1 #Status ?(not(alive _ldr)) : goto "EndScript" ?(not(alive _chsm1)) : goto "EndScript" _dis1 = _ldr distance _chsm1 ?(_dis1 >= 2) : goto "Return" ?(_dis1 < 2) : goto "Wait" #Return _lpos = getPos _ldr _lposx = _lpos select 0 _lposy = _lpos select 1 _chsm1 move _lpos ~1 goto "Status" #Wait ~1 goto "Status" #EndScript Exit というものがあるのですが _ldr = _this select 0 _chsm1 = _this select 1 とはそれぞれどういう意味でしょうか? 自作ミッションに組み込ませていただこうと思うのですが、_this部分に何を代入すれば良いのかわかりません。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる